From 4d9d278c7d44ad4aae07b9a5a66da7eab0348583 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Fri, 6 Mar 2026 18:41:10 +0000
Subject: [PATCH 001/164] feat(api): add EARLY_DIRECT_DEPOSIT_FLOAT type to
financial accounts
---
.stats.yml | 8 +-
MIGRATION.md | 1 +
api.md | 14 ++
packages/mcp-server/src/code-tool-worker.ts | 4 +
packages/mcp-server/src/methods.ts | 24 +++
src/client.ts | 21 ++
src/resources/account-activity.ts | 16 +-
.../financial-accounts/financial-accounts.ts | 5 +-
.../statements/line-items.ts | 1 +
src/resources/holds.ts | 201 ++++++++++++++++++
src/resources/index.ts | 9 +
src/resources/payments.ts | 1 +
src/resources/shared.ts | 3 +-
tests/api-resources/holds.test.ts | 82 +++++++
14 files changed, 379 insertions(+), 11 deletions(-)
create mode 100644 src/resources/holds.ts
create mode 100644 tests/api-resources/holds.test.ts
diff --git a/.stats.yml b/.stats.yml
index 4f6a4f90..b95d916a 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
-configured_endpoints: 185
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-ee8607f0a2cdcaee420935050334a439db8dd097be83023fccdaf1d6f9a7de14.yml
-openapi_spec_hash: 0f21c68cdddb7c5bd99f42356d507393
-config_hash: fb5070d41fcabdedbc084b83964b592a
+configured_endpoints: 189
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-ee2b9f00d3a9e0000e25abc0774615d6ad3300ce17b2f094e71b0229a907760f.yml
+openapi_spec_hash: 01d2cbf4ac692dba2f3831462db929e4
+config_hash: a45e6da4e7b46db4ff6819d1dba5d815
diff --git a/MIGRATION.md b/MIGRATION.md
index eb3794cb..5268da86 100644
--- a/MIGRATION.md
+++ b/MIGRATION.md
@@ -147,6 +147,7 @@ client.example.list(undefined, { headers: { ... } });
- `client.managementOperations.list()`
- `client.fundingEvents.list()`
- `client.networkPrograms.list()`
+- `client.holds.list()`
- `client.accountActivity.list()`
- `client.transferLimits.list()`
diff --git a/api.md b/api.md
index 405a5437..940daefd 100644
--- a/api.md
+++ b/api.md
@@ -746,6 +746,20 @@ Methods:
- client.networkPrograms.retrieve(networkProgramToken) -> NetworkProgram
- client.networkPrograms.list({ ...params }) -> NetworkProgramsSinglePage
+# Holds
+
+Types:
+
+- Hold
+- HoldEvent
+
+Methods:
+
+- client.holds.create(financialAccountToken, { ...params }) -> Hold
+- client.holds.retrieve(holdToken) -> Hold
+- client.holds.list(financialAccountToken, { ...params }) -> HoldsCursorPage
+- client.holds.void(holdToken, { ...params }) -> Hold
+
# AccountActivity
Types:
diff --git a/packages/mcp-server/src/code-tool-worker.ts b/packages/mcp-server/src/code-tool-worker.ts
index 695e54ac..37936721 100644
--- a/packages/mcp-server/src/code-tool-worker.ts
+++ b/packages/mcp-server/src/code-tool-worker.ts
@@ -287,6 +287,10 @@ const fuse = new Fuse(
'client.fraud.transactions.retrieve',
'client.networkPrograms.list',
'client.networkPrograms.retrieve',
+ 'client.holds.create',
+ 'client.holds.list',
+ 'client.holds.retrieve',
+ 'client.holds.void',
'client.accountActivity.list',
'client.accountActivity.retrieveTransaction',
'client.transferLimits.list',
diff --git a/packages/mcp-server/src/methods.ts b/packages/mcp-server/src/methods.ts
index eb007c75..d1c6dbfe 100644
--- a/packages/mcp-server/src/methods.ts
+++ b/packages/mcp-server/src/methods.ts
@@ -1109,6 +1109,30 @@ export const sdkMethods: SdkMethod[] = [
httpMethod: 'get',
httpPath: '/v1/network_programs',
},
+ {
+ clientCallName: 'client.holds.create',
+ fullyQualifiedName: 'holds.create',
+ httpMethod: 'post',
+ httpPath: '/v1/financial_accounts/{financial_account_token}/holds',
+ },
+ {
+ clientCallName: 'client.holds.retrieve',
+ fullyQualifiedName: 'holds.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/holds/{hold_token}',
+ },
+ {
+ clientCallName: 'client.holds.list',
+ fullyQualifiedName: 'holds.list',
+ httpMethod: 'get',
+ httpPath: '/v1/financial_accounts/{financial_account_token}/holds',
+ },
+ {
+ clientCallName: 'client.holds.void',
+ fullyQualifiedName: 'holds.void',
+ httpMethod: 'post',
+ httpPath: '/v1/holds/{hold_token}/void',
+ },
{
clientCallName: 'client.accountActivity.list',
fullyQualifiedName: 'accountActivity.list',
diff --git a/src/client.ts b/src/client.ts
index c49a950f..692894af 100644
--- a/src/client.ts
+++ b/src/client.ts
@@ -106,6 +106,15 @@ import {
FundingEvents,
FundingEventsCursorPage,
} from './resources/funding-events';
+import {
+ Hold,
+ HoldCreateParams,
+ HoldEvent,
+ HoldListParams,
+ HoldVoidParams,
+ Holds,
+ HoldsCursorPage,
+} from './resources/holds';
import { InternalTransaction, InternalTransactionResource } from './resources/internal-transaction';
import {
ExternalResource,
@@ -1149,6 +1158,7 @@ export class Lithic {
fundingEvents: API.FundingEvents = new API.FundingEvents(this);
fraud: API.Fraud = new API.Fraud(this);
networkPrograms: API.NetworkPrograms = new API.NetworkPrograms(this);
+ holds: API.Holds = new API.Holds(this);
accountActivity: API.AccountActivity = new API.AccountActivity(this);
transferLimits: API.TransferLimits = new API.TransferLimits(this);
webhooks: API.Webhooks = new API.Webhooks(this);
@@ -1184,6 +1194,7 @@ Lithic.InternalTransactionResource = InternalTransactionResource;
Lithic.FundingEvents = FundingEvents;
Lithic.Fraud = Fraud;
Lithic.NetworkPrograms = NetworkPrograms;
+Lithic.Holds = Holds;
Lithic.AccountActivity = AccountActivity;
Lithic.TransferLimits = TransferLimits;
Lithic.Webhooks = Webhooks;
@@ -1503,6 +1514,16 @@ export declare namespace Lithic {
type NetworkProgramListParams as NetworkProgramListParams,
};
+ export {
+ Holds as Holds,
+ type Hold as Hold,
+ type HoldEvent as HoldEvent,
+ type HoldsCursorPage as HoldsCursorPage,
+ type HoldCreateParams as HoldCreateParams,
+ type HoldListParams as HoldListParams,
+ type HoldVoidParams as HoldVoidParams,
+ };
+
export {
AccountActivity as AccountActivity,
type WirePartyDetails as WirePartyDetails,
diff --git a/src/resources/account-activity.ts b/src/resources/account-activity.ts
index fba9ee6e..8467be3a 100644
--- a/src/resources/account-activity.ts
+++ b/src/resources/account-activity.ts
@@ -3,6 +3,7 @@
import { APIResource } from '../core/resource';
import * as BookTransfersAPI from './book-transfers';
import * as ExternalPaymentsAPI from './external-payments';
+import * as HoldsAPI from './holds';
import * as ManagementOperationsAPI from './management-operations';
import * as PaymentsAPI from './payments';
import * as Shared from './shared';
@@ -66,7 +67,8 @@ export interface WirePartyDetails {
* which transaction type is returned: INTERNAL returns FinancialTransaction,
* TRANSFER returns BookTransferTransaction, CARD returns CardTransaction, PAYMENT
* returns PaymentTransaction, EXTERNAL_PAYMENT returns ExternalPaymentResponse,
- * and MANAGEMENT_OPERATION returns ManagementOperationTransaction
+ * MANAGEMENT_OPERATION returns ManagementOperationTransaction, and HOLD returns
+ * HoldTransaction
*/
export type AccountActivityListResponse =
| AccountActivityListResponse.FinancialTransaction
@@ -74,7 +76,8 @@ export type AccountActivityListResponse =
| AccountActivityListResponse.CardTransaction
| PaymentsAPI.Payment
| ExternalPaymentsAPI.ExternalPayment
- | ManagementOperationsAPI.ManagementOperationTransaction;
+ | ManagementOperationsAPI.ManagementOperationTransaction
+ | HoldsAPI.Hold;
export namespace AccountActivityListResponse {
/**
@@ -109,6 +112,7 @@ export namespace AccountActivityListResponse {
| 'MANAGEMENT_FEE'
| 'MANAGEMENT_REWARD'
| 'MANAGEMENT_DISBURSEMENT'
+ | 'HOLD'
| 'PROGRAM_FUNDING';
/**
@@ -203,7 +207,8 @@ export namespace AccountActivityListResponse {
* which transaction type is returned: INTERNAL returns FinancialTransaction,
* TRANSFER returns BookTransferTransaction, CARD returns CardTransaction, PAYMENT
* returns PaymentTransaction, EXTERNAL_PAYMENT returns ExternalPaymentResponse,
- * and MANAGEMENT_OPERATION returns ManagementOperationTransaction
+ * MANAGEMENT_OPERATION returns ManagementOperationTransaction, and HOLD returns
+ * HoldTransaction
*/
export type AccountActivityRetrieveTransactionResponse =
| AccountActivityRetrieveTransactionResponse.FinancialTransaction
@@ -211,7 +216,8 @@ export type AccountActivityRetrieveTransactionResponse =
| AccountActivityRetrieveTransactionResponse.CardTransaction
| PaymentsAPI.Payment
| ExternalPaymentsAPI.ExternalPayment
- | ManagementOperationsAPI.ManagementOperationTransaction;
+ | ManagementOperationsAPI.ManagementOperationTransaction
+ | HoldsAPI.Hold;
export namespace AccountActivityRetrieveTransactionResponse {
/**
@@ -246,6 +252,7 @@ export namespace AccountActivityRetrieveTransactionResponse {
| 'MANAGEMENT_FEE'
| 'MANAGEMENT_REWARD'
| 'MANAGEMENT_DISBURSEMENT'
+ | 'HOLD'
| 'PROGRAM_FUNDING';
/**
@@ -375,6 +382,7 @@ export interface AccountActivityListParams extends CursorPageParams {
| 'MANAGEMENT_FEE'
| 'MANAGEMENT_REWARD'
| 'MANAGEMENT_DISBURSEMENT'
+ | 'HOLD'
| 'PROGRAM_FUNDING';
/**
diff --git a/src/resources/financial-accounts/financial-accounts.ts b/src/resources/financial-accounts/financial-accounts.ts
index e6b0249d..354ea1e6 100644
--- a/src/resources/financial-accounts/financial-accounts.ts
+++ b/src/resources/financial-accounts/financial-accounts.ts
@@ -256,7 +256,8 @@ export interface FinancialAccount {
| 'SECURITY'
| 'PROGRAM_RECEIVABLES'
| 'COLLECTION'
- | 'PROGRAM_BANK_ACCOUNTS_PAYABLE';
+ | 'PROGRAM_BANK_ACCOUNTS_PAYABLE'
+ | 'EARLY_DIRECT_DEPOSIT_FLOAT';
updated: string;
@@ -540,7 +541,7 @@ export interface FinancialAccountListParams {
/**
* List financial accounts of a given type
*/
- type?: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY';
+ type?: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY' | 'EARLY_DIRECT_DEPOSIT_FLOAT';
}
export interface FinancialAccountRegisterAccountNumberParams {
diff --git a/src/resources/financial-accounts/statements/line-items.ts b/src/resources/financial-accounts/statements/line-items.ts
index 4ed54677..6238b9bb 100644
--- a/src/resources/financial-accounts/statements/line-items.ts
+++ b/src/resources/financial-accounts/statements/line-items.ts
@@ -79,6 +79,7 @@ export namespace StatementLineItems {
| 'MANAGEMENT_FEE'
| 'MANAGEMENT_REWARD'
| 'MANAGEMENT_DISBURSEMENT'
+ | 'HOLD'
| 'PROGRAM_FUNDING';
/**
diff --git a/src/resources/holds.ts b/src/resources/holds.ts
new file mode 100644
index 00000000..a251f0d9
--- /dev/null
+++ b/src/resources/holds.ts
@@ -0,0 +1,201 @@
+// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+import { APIResource } from '../core/resource';
+import { APIPromise } from '../core/api-promise';
+import { CursorPage, type CursorPageParams, PagePromise } from '../core/pagination';
+import { RequestOptions } from '../internal/request-options';
+import { path } from '../internal/utils/path';
+
+export class Holds extends APIResource {
+ /**
+ * Create a hold on a financial account. Holds reserve funds by moving them from
+ * available to pending balance. They can be resolved via settlement (linked to a
+ * payment or book transfer), voiding, or expiration.
+ */
+ create(financialAccountToken: string, body: HoldCreateParams, options?: RequestOptions): APIPromise {
+ return this._client.post(path`/v1/financial_accounts/${financialAccountToken}/holds`, {
+ body,
+ ...options,
+ });
+ }
+
+ /**
+ * Get hold by token.
+ */
+ retrieve(holdToken: string, options?: RequestOptions): APIPromise {
+ return this._client.get(path`/v1/holds/${holdToken}`, options);
+ }
+
+ /**
+ * List holds for a financial account.
+ */
+ list(
+ financialAccountToken: string,
+ query: HoldListParams | null | undefined = {},
+ options?: RequestOptions,
+ ): PagePromise {
+ return this._client.getAPIList(
+ path`/v1/financial_accounts/${financialAccountToken}/holds`,
+ CursorPage,
+ { query, ...options },
+ );
+ }
+
+ /**
+ * Void an active hold. This returns the held funds from pending back to available
+ * balance. Only holds in PENDING status can be voided.
+ */
+ void(holdToken: string, body: HoldVoidParams, options?: RequestOptions): APIPromise {
+ return this._client.post(path`/v1/holds/${holdToken}/void`, { body, ...options });
+ }
+}
+
+export type HoldsCursorPage = CursorPage;
+
+/**
+ * A hold transaction representing reserved funds on a financial account. Holds
+ * move funds from available to pending balance in anticipation of future payments.
+ * They can be resolved via settlement (linked to payment), manual release, or
+ * expiration.
+ */
+export interface Hold {
+ /**
+ * Unique identifier for the transaction
+ */
+ token: string;
+
+ /**
+ * ISO 8601 timestamp of when the transaction was created
+ */
+ created: string;
+
+ /**
+ * Status of a hold transaction
+ */
+ status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED';
+
+ /**
+ * ISO 8601 timestamp of when the transaction was last updated
+ */
+ updated: string;
+
+ currency?: string;
+
+ events?: Array;
+
+ /**
+ * When the hold will auto-expire if not resolved
+ */
+ expiration_datetime?: string | null;
+
+ /**
+ * HOLD - Hold Transaction
+ */
+ family?: 'HOLD';
+
+ financial_account_token?: string;
+
+ /**
+ * Current pending amount (0 when resolved)
+ */
+ pending_amount?: number;
+
+ result?: 'APPROVED' | 'DECLINED';
+
+ user_defined_id?: string | null;
+}
+
+/**
+ * Event representing a lifecycle change to a hold
+ */
+export interface HoldEvent {
+ token: string;
+
+ /**
+ * Amount in cents
+ */
+ amount: number;
+
+ created: string;
+
+ detailed_results: Array<'APPROVED' | 'INSUFFICIENT_FUNDS'>;
+
+ memo: string | null;
+
+ result: 'APPROVED' | 'DECLINED';
+
+ /**
+ * Transaction token of the payment that settled this hold (only populated for
+ * HOLD_SETTLED events)
+ */
+ settling_transaction_token: string | null;
+
+ /**
+ * Type of hold lifecycle event
+ */
+ type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED';
+}
+
+export interface HoldCreateParams {
+ /**
+ * Amount to hold in cents
+ */
+ amount: number;
+
+ /**
+ * Customer-provided token for idempotency. Becomes the hold token.
+ */
+ token?: string;
+
+ /**
+ * When the hold should auto-expire
+ */
+ expiration_datetime?: string;
+
+ /**
+ * Reason for the hold
+ */
+ memo?: string | null;
+
+ /**
+ * User-provided identifier for the hold
+ */
+ user_defined_id?: string;
+}
+
+export interface HoldListParams extends CursorPageParams {
+ /**
+ * Date string in RFC 3339 format. Only entries created after the specified time
+ * will be included. UTC time zone.
+ */
+ begin?: string;
+
+ /**
+ * Date string in RFC 3339 format. Only entries created before the specified time
+ * will be included. UTC time zone.
+ */
+ end?: string;
+
+ /**
+ * Hold status to filter by.
+ */
+ status?: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED';
+}
+
+export interface HoldVoidParams {
+ /**
+ * Reason for voiding the hold
+ */
+ memo?: string | null;
+}
+
+export declare namespace Holds {
+ export {
+ type Hold as Hold,
+ type HoldEvent as HoldEvent,
+ type HoldsCursorPage as HoldsCursorPage,
+ type HoldCreateParams as HoldCreateParams,
+ type HoldListParams as HoldListParams,
+ type HoldVoidParams as HoldVoidParams,
+ };
+}
diff --git a/src/resources/index.ts b/src/resources/index.ts
index 190f5182..929fe194 100644
--- a/src/resources/index.ts
+++ b/src/resources/index.ts
@@ -178,6 +178,15 @@ export {
type FundingEventListParams,
type FundingEventsCursorPage,
} from './funding-events';
+export {
+ Holds,
+ type Hold,
+ type HoldEvent,
+ type HoldCreateParams,
+ type HoldListParams,
+ type HoldVoidParams,
+ type HoldsCursorPage,
+} from './holds';
export { InternalTransactionResource, type InternalTransaction } from './internal-transaction';
export {
ManagementOperations,
diff --git a/src/resources/payments.ts b/src/resources/payments.ts
index 36f60559..a5800cb2 100644
--- a/src/resources/payments.ts
+++ b/src/resources/payments.ts
@@ -217,6 +217,7 @@ export interface Payment {
| 'MANAGEMENT_FEE'
| 'MANAGEMENT_REWARD'
| 'MANAGEMENT_DISBURSEMENT'
+ | 'HOLD'
| 'PROGRAM_FUNDING';
/**
diff --git a/src/resources/shared.ts b/src/resources/shared.ts
index 63e5d681..45b74346 100644
--- a/src/resources/shared.ts
+++ b/src/resources/shared.ts
@@ -303,7 +303,8 @@ export type InstanceFinancialAccountType =
| 'SECURITY'
| 'PROGRAM_RECEIVABLES'
| 'COLLECTION'
- | 'PROGRAM_BANK_ACCOUNTS_PAYABLE';
+ | 'PROGRAM_BANK_ACCOUNTS_PAYABLE'
+ | 'EARLY_DIRECT_DEPOSIT_FLOAT';
export interface Merchant {
/**
diff --git a/tests/api-resources/holds.test.ts b/tests/api-resources/holds.test.ts
new file mode 100644
index 00000000..8a4386c8
--- /dev/null
+++ b/tests/api-resources/holds.test.ts
@@ -0,0 +1,82 @@
+// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+import Lithic from 'lithic';
+
+const client = new Lithic({
+ apiKey: 'My Lithic API Key',
+ baseURL: process.env['TEST_API_BASE_URL'] ?? 'http://127.0.0.1:4010',
+});
+
+describe('resource holds', () => {
+ test('create: only required params', async () => {
+ const responsePromise = client.holds.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { amount: 1 });
+ const rawResponse = await responsePromise.asResponse();
+ expect(rawResponse).toBeInstanceOf(Response);
+ const response = await responsePromise;
+ expect(response).not.toBeInstanceOf(Response);
+ const dataAndResponse = await responsePromise.withResponse();
+ expect(dataAndResponse.data).toBe(response);
+ expect(dataAndResponse.response).toBe(rawResponse);
+ });
+
+ test('create: required and optional params', async () => {
+ const response = await client.holds.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {
+ amount: 1,
+ token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
+ expiration_datetime: '2019-12-27T18:11:19.117Z',
+ memo: 'memo',
+ user_defined_id: 'user_defined_id',
+ });
+ });
+
+ test('retrieve', async () => {
+ const responsePromise = client.holds.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
+ const rawResponse = await responsePromise.asResponse();
+ expect(rawResponse).toBeInstanceOf(Response);
+ const response = await responsePromise;
+ expect(response).not.toBeInstanceOf(Response);
+ const dataAndResponse = await responsePromise.withResponse();
+ expect(dataAndResponse.data).toBe(response);
+ expect(dataAndResponse.response).toBe(rawResponse);
+ });
+
+ test('list', async () => {
+ const responsePromise = client.holds.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
+ const rawResponse = await responsePromise.asResponse();
+ expect(rawResponse).toBeInstanceOf(Response);
+ const response = await responsePromise;
+ expect(response).not.toBeInstanceOf(Response);
+ const dataAndResponse = await responsePromise.withResponse();
+ expect(dataAndResponse.data).toBe(response);
+ expect(dataAndResponse.response).toBe(rawResponse);
+ });
+
+ test('list: request options and params are passed correctly', async () => {
+ // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
+ await expect(
+ client.holds.list(
+ '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
+ {
+ begin: '2019-12-27T18:11:19.117Z',
+ end: '2019-12-27T18:11:19.117Z',
+ ending_before: 'ending_before',
+ page_size: 1,
+ starting_after: 'starting_after',
+ status: 'PENDING',
+ },
+ { path: '/_stainless_unknown_path' },
+ ),
+ ).rejects.toThrow(Lithic.NotFoundError);
+ });
+
+ test('void', async () => {
+ const responsePromise = client.holds.void('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {});
+ const rawResponse = await responsePromise.asResponse();
+ expect(rawResponse).toBeInstanceOf(Response);
+ const response = await responsePromise;
+ expect(response).not.toBeInstanceOf(Response);
+ const dataAndResponse = await responsePromise.withResponse();
+ expect(dataAndResponse.data).toBe(response);
+ expect(dataAndResponse.response).toBe(rawResponse);
+ });
+});
From a2a81c1130ecffbad1cf5da1f6f4ca7282a7275c Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Sat, 7 Mar 2026 15:06:00 +0000
Subject: [PATCH 002/164] chore(mcp-server): improve instructions
---
.github/workflows/ci.yml | 12 +++++++++---
packages/mcp-server/src/docs-search-tool.ts | 3 ++-
packages/mcp-server/src/instructions.ts | 14 ++------------
src/client.ts | 5 +++--
4 files changed, 16 insertions(+), 18 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index caa48e49..4635677b 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -55,14 +55,18 @@ jobs:
run: ./scripts/build
- name: Get GitHub OIDC Token
- if: github.repository == 'stainless-sdks/lithic-typescript'
+ if: |-
+ github.repository == 'stainless-sdks/lithic-typescript' &&
+ !startsWith(github.ref, 'refs/heads/stl/')
id: github-oidc
uses: actions/github-script@v8
with:
script: core.setOutput('github_token', await core.getIDToken());
- name: Upload tarball
- if: github.repository == 'stainless-sdks/lithic-typescript'
+ if: |-
+ github.repository == 'stainless-sdks/lithic-typescript' &&
+ !startsWith(github.ref, 'refs/heads/stl/')
env:
URL: https://pkg.stainless.com/s
AUTH: ${{ steps.github-oidc.outputs.github_token }}
@@ -70,7 +74,9 @@ jobs:
run: ./scripts/utils/upload-artifact.sh
- name: Upload MCP Server tarball
- if: github.repository == 'stainless-sdks/lithic-typescript'
+ if: |-
+ github.repository == 'stainless-sdks/lithic-typescript' &&
+ !startsWith(github.ref, 'refs/heads/stl/')
env:
URL: https://pkg.stainless.com/s?subpackage=mcp-server
AUTH: ${{ steps.github-oidc.outputs.github_token }}
diff --git a/packages/mcp-server/src/docs-search-tool.ts b/packages/mcp-server/src/docs-search-tool.ts
index 0fa5587f..a3122cb9 100644
--- a/packages/mcp-server/src/docs-search-tool.ts
+++ b/packages/mcp-server/src/docs-search-tool.ts
@@ -13,7 +13,8 @@ export const metadata: Metadata = {
export const tool: Tool = {
name: 'search_docs',
- description: 'Search for documentation for how to use the client to interact with the API.',
+ description:
+ 'Search SDK documentation to find methods, parameters, and usage examples for interacting with the API. Use this before writing code when you need to discover the right approach.',
inputSchema: {
type: 'object',
properties: {
diff --git a/packages/mcp-server/src/instructions.ts b/packages/mcp-server/src/instructions.ts
index 2cfce0f5..93986caa 100644
--- a/packages/mcp-server/src/instructions.ts
+++ b/packages/mcp-server/src/instructions.ts
@@ -55,21 +55,11 @@ async function fetchLatestInstructions(stainlessApiKey: string | undefined): Pro
'Warning: failed to retrieve MCP server instructions. Proceeding with default instructions...',
);
- instructions = `
- This is the lithic MCP server. You will use Code Mode to help the user perform
- actions. You can use search_docs tool to learn about how to take action with this server. Then,
- you will write TypeScript code using the execute tool take action. It is CRITICAL that you be
- thoughtful and deliberate when executing code. Always try to entirely solve the problem in code
- block: it can be as long as you need to get the job done!
- `;
+ instructions =
+ '\n This is the lithic MCP server.\n\n Available tools:\n - search_docs: Search SDK documentation to find the right methods and parameters.\n - execute: Run TypeScript code against a pre-authenticated SDK client. Define an async run(client) function.\n\n Workflow:\n - If unsure about the API, call search_docs first.\n - Write complete solutions in a single execute call when possible. For large datasets, use API filters to narrow results or paginate within a single execute block.\n - If execute returns an error, read the error and fix your code rather than retrying the same approach.\n - Variables do not persist between execute calls. Return or log all data you need.\n - Individual HTTP requests to the API have a 30-second timeout. If a request times out, try a smaller query or add filters.\n - Code execution has a total timeout of approximately 5 minutes. If your code times out, simplify it or break it into smaller steps.\n ';
}
instructions ??= ((await response.json()) as { instructions: string }).instructions;
- instructions = `
- If needed, you can get the current time by executing Date.now().
-
- ${instructions}
- `;
return instructions;
}
diff --git a/src/client.ts b/src/client.ts
index 692894af..99127887 100644
--- a/src/client.ts
+++ b/src/client.ts
@@ -634,8 +634,9 @@ export class Lithic {
: new URL(baseURL + (baseURL.endsWith('/') && path.startsWith('/') ? path.slice(1) : path));
const defaultQuery = this.defaultQuery();
- if (!isEmptyObj(defaultQuery)) {
- query = { ...defaultQuery, ...query };
+ const pathQuery = Object.fromEntries(url.searchParams);
+ if (!isEmptyObj(defaultQuery) || !isEmptyObj(pathQuery)) {
+ query = { ...pathQuery, ...defaultQuery, ...query };
}
if (typeof query === 'object' && query && !Array.isArray(query)) {
From 0667e8d1e998217e7f01da14f4f09a14d61457d8 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 9 Mar 2026 16:10:38 +0000
Subject: [PATCH 003/164] feat(api): add typescript rule type, draft state
tracking to auth_rules v2
---
.stats.yml | 6 +-
api.md | 3 +
src/resources/auth-rules/auth-rules.ts | 6 +
src/resources/auth-rules/index.ts | 3 +
src/resources/auth-rules/v2/index.ts | 3 +
src/resources/auth-rules/v2/v2.ts | 347 +++++++++++++++++--------
6 files changed, 252 insertions(+), 116 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index b95d916a..31c05d97 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 189
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-ee2b9f00d3a9e0000e25abc0774615d6ad3300ce17b2f094e71b0229a907760f.yml
-openapi_spec_hash: 01d2cbf4ac692dba2f3831462db929e4
-config_hash: a45e6da4e7b46db4ff6819d1dba5d815
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-1e902917b2eae41d549957e790eb6b137969e451efe673815647deba330fe05a.yml
+openapi_spec_hash: 82cab06ce65462e60316939db630460a
+config_hash: 00b60697e692f86b5be297d939962921
diff --git a/api.md b/api.md
index 940daefd..d4a38110 100644
--- a/api.md
+++ b/api.md
@@ -96,6 +96,9 @@ Types:
- EventStream
- MerchantLockParameters
- ReportStats
+- RuleFeature
+- TypescriptCodeParameters
+- VelocityLimitFilters
- VelocityLimitParams
- VelocityLimitPeriod
- V2ListResultsResponse
diff --git a/src/resources/auth-rules/auth-rules.ts b/src/resources/auth-rules/auth-rules.ts
index 4d3b2a36..35716042 100644
--- a/src/resources/auth-rules/auth-rules.ts
+++ b/src/resources/auth-rules/auth-rules.ts
@@ -18,6 +18,8 @@ import {
EventStream,
MerchantLockParameters,
ReportStats,
+ RuleFeature,
+ TypescriptCodeParameters,
V2,
V2CreateParams,
V2DraftParams,
@@ -30,6 +32,7 @@ import {
V2RetrieveReportParams,
V2RetrieveReportResponse,
V2UpdateParams,
+ VelocityLimitFilters,
VelocityLimitParams,
VelocityLimitPeriod,
} from './v2/v2';
@@ -57,6 +60,9 @@ export declare namespace AuthRules {
type EventStream as EventStream,
type MerchantLockParameters as MerchantLockParameters,
type ReportStats as ReportStats,
+ type RuleFeature as RuleFeature,
+ type TypescriptCodeParameters as TypescriptCodeParameters,
+ type VelocityLimitFilters as VelocityLimitFilters,
type VelocityLimitParams as VelocityLimitParams,
type VelocityLimitPeriod as VelocityLimitPeriod,
type V2ListResultsResponse as V2ListResultsResponse,
diff --git a/src/resources/auth-rules/index.ts b/src/resources/auth-rules/index.ts
index 2e33e3c2..ede636bf 100644
--- a/src/resources/auth-rules/index.ts
+++ b/src/resources/auth-rules/index.ts
@@ -17,6 +17,9 @@ export {
type EventStream,
type MerchantLockParameters,
type ReportStats,
+ type RuleFeature,
+ type TypescriptCodeParameters,
+ type VelocityLimitFilters,
type VelocityLimitParams,
type VelocityLimitPeriod,
type V2ListResultsResponse,
diff --git a/src/resources/auth-rules/v2/index.ts b/src/resources/auth-rules/v2/index.ts
index f35dc3a5..bd6bd09c 100644
--- a/src/resources/auth-rules/v2/index.ts
+++ b/src/resources/auth-rules/v2/index.ts
@@ -23,6 +23,9 @@ export {
type EventStream,
type MerchantLockParameters,
type ReportStats,
+ type RuleFeature,
+ type TypescriptCodeParameters,
+ type VelocityLimitFilters,
type VelocityLimitParams,
type VelocityLimitPeriod,
type V2ListResultsResponse,
diff --git a/src/resources/auth-rules/v2/v2.ts b/src/resources/auth-rules/v2/v2.ts
index c096b249..80f2c427 100644
--- a/src/resources/auth-rules/v2/v2.ts
+++ b/src/resources/auth-rules/v2/v2.ts
@@ -207,8 +207,10 @@ export interface AuthRule {
* - `MERCHANT_LOCK`: AUTHORIZATION event stream.
* - `CONDITIONAL_ACTION`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION,
* ACH_CREDIT_RECEIPT, or ACH_DEBIT_RECEIPT event stream.
+ * - `TYPESCRIPT_CODE`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION,
+ * ACH_CREDIT_RECEIPT, or ACH_DEBIT_RECEIPT event stream.
*/
- type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION';
+ type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE';
/**
* Card tokens to which the Auth Rule does not apply.
@@ -228,7 +230,8 @@ export namespace AuthRule {
| V2API.Conditional3DSActionParameters
| V2API.ConditionalAuthorizationActionParameters
| V2API.ConditionalACHActionParameters
- | V2API.ConditionalTokenizationActionParameters;
+ | V2API.ConditionalTokenizationActionParameters
+ | V2API.TypescriptCodeParameters;
/**
* The version of the rule, this is incremented whenever the rule's parameters
@@ -238,6 +241,12 @@ export namespace AuthRule {
}
export interface DraftVersion {
+ /**
+ * An error message if the draft version failed compilation. Populated when `state`
+ * is `ERROR`, `null` otherwise.
+ */
+ error: string | null;
+
/**
* Parameters for the Auth Rule
*/
@@ -248,7 +257,22 @@ export namespace AuthRule {
| V2API.Conditional3DSActionParameters
| V2API.ConditionalAuthorizationActionParameters
| V2API.ConditionalACHActionParameters
- | V2API.ConditionalTokenizationActionParameters;
+ | V2API.ConditionalTokenizationActionParameters
+ | V2API.TypescriptCodeParameters;
+
+ /**
+ * The state of the draft version. Most rules are created synchronously and the
+ * state is immediately `SHADOWING`. Rules backed by TypeScript code are compiled
+ * asynchronously — the state starts as `PENDING` and transitions to `SHADOWING` on
+ * success or `ERROR` on failure.
+ *
+ * - `PENDING`: Compilation of the rule is in progress (TypeScript rules only).
+ * - `SHADOWING`: The draft version is ready and evaluating in shadow mode
+ * alongside the current active version. It can be promoted to the active
+ * version.
+ * - `ERROR`: Compilation of the rule failed. Check the `error` field for details.
+ */
+ state: 'PENDING' | 'SHADOWING' | 'ERROR';
/**
* The version of the rule, this is incremented whenever the rule's parameters
@@ -1253,6 +1277,192 @@ export namespace ReportStats {
}
}
+/**
+ * A feature made available to the rule. The `name` field is the variable name used
+ * in the rule function signature. The `type` field determines which data the
+ * feature provides to the rule at evaluation time.
+ *
+ * - `AUTHORIZATION`: The authorization request being evaluated. Only available for
+ * AUTHORIZATION event stream rules.
+ * - `AUTHENTICATION`: The 3DS authentication request being evaluated. Only
+ * available for THREE_DS_AUTHENTICATION event stream rules.
+ * - `TOKENIZATION`: The tokenization request being evaluated. Only available for
+ * TOKENIZATION event stream rules.
+ * - `ACH_RECEIPT`: The ACH receipt being evaluated. Only available for
+ * ACH_CREDIT_RECEIPT and ACH_DEBIT_RECEIPT event stream rules.
+ * - `CARD`: The card associated with the event. Available for AUTHORIZATION and
+ * THREE_DS_AUTHENTICATION event stream rules.
+ * - `ACCOUNT_HOLDER`: The account holder associated with the card. Available for
+ * THREE_DS_AUTHENTICATION event stream rules.
+ * - `IP_METADATA`: IP address metadata for the request. Available for
+ * THREE_DS_AUTHENTICATION event stream rules.
+ * - `SPEND_VELOCITY`: Spend velocity data for the card or account. Requires
+ * `scope`, `period`, and optionally `filters` to configure the velocity
+ * calculation. Available for AUTHORIZATION event stream rules.
+ */
+export type RuleFeature =
+ | RuleFeature.AuthorizationFeature
+ | RuleFeature.AuthenticationFeature
+ | RuleFeature.TokenizationFeature
+ | RuleFeature.ACHReceiptFeature
+ | RuleFeature.CardFeature
+ | RuleFeature.AccountHolderFeature
+ | RuleFeature.IPMetadataFeature
+ | RuleFeature.SpendVelocityFeature;
+
+export namespace RuleFeature {
+ export interface AuthorizationFeature {
+ type: 'AUTHORIZATION';
+
+ /**
+ * The variable name for this feature in the rule function signature
+ */
+ name?: string;
+ }
+
+ export interface AuthenticationFeature {
+ type: 'AUTHENTICATION';
+
+ /**
+ * The variable name for this feature in the rule function signature
+ */
+ name?: string;
+ }
+
+ export interface TokenizationFeature {
+ type: 'TOKENIZATION';
+
+ /**
+ * The variable name for this feature in the rule function signature
+ */
+ name?: string;
+ }
+
+ export interface ACHReceiptFeature {
+ type: 'ACH_RECEIPT';
+
+ /**
+ * The variable name for this feature in the rule function signature
+ */
+ name?: string;
+ }
+
+ export interface CardFeature {
+ type: 'CARD';
+
+ /**
+ * The variable name for this feature in the rule function signature
+ */
+ name?: string;
+ }
+
+ export interface AccountHolderFeature {
+ type: 'ACCOUNT_HOLDER';
+
+ /**
+ * The variable name for this feature in the rule function signature
+ */
+ name?: string;
+ }
+
+ export interface IPMetadataFeature {
+ type: 'IP_METADATA';
+
+ /**
+ * The variable name for this feature in the rule function signature
+ */
+ name?: string;
+ }
+
+ export interface SpendVelocityFeature {
+ /**
+ * Velocity over the current day since 00:00 / 12 AM in Eastern Time
+ */
+ period: V2API.VelocityLimitPeriod;
+
+ /**
+ * The scope the velocity is calculated for
+ */
+ scope: 'CARD' | 'ACCOUNT';
+
+ type: 'SPEND_VELOCITY';
+
+ filters?: V2API.VelocityLimitFilters;
+
+ /**
+ * The variable name for this feature in the rule function signature
+ */
+ name?: string;
+ }
+}
+
+/**
+ * Parameters for defining a TypeScript code rule
+ */
+export interface TypescriptCodeParameters {
+ /**
+ * The TypeScript source code of the rule. Must define a `rule()` function that
+ * accepts the declared features as positional arguments (in the same order as the
+ * `features` array) and returns an array of actions.
+ */
+ code: string;
+
+ /**
+ * Features available to the TypeScript code at evaluation time
+ */
+ features: Array;
+}
+
+export interface VelocityLimitFilters {
+ /**
+ * ISO-3166-1 alpha-3 Country Codes to exclude from the velocity calculation.
+ * Transactions matching any of the provided will be excluded from the calculated
+ * velocity.
+ */
+ exclude_countries?: Array | null;
+
+ /**
+ * Merchant Category Codes to exclude from the velocity calculation. Transactions
+ * matching this MCC will be excluded from the calculated velocity.
+ */
+ exclude_mccs?: Array | null;
+
+ /**
+ * ISO-3166-1 alpha-3 Country Codes to include in the velocity calculation.
+ * Transactions not matching any of the provided will not be included in the
+ * calculated velocity.
+ */
+ include_countries?: Array | null;
+
+ /**
+ * Merchant Category Codes to include in the velocity calculation. Transactions not
+ * matching this MCC will not be included in the calculated velocity.
+ */
+ include_mccs?: Array | null;
+
+ /**
+ * PAN entry modes to include in the velocity calculation. Transactions not
+ * matching any of the provided will not be included in the calculated velocity.
+ */
+ include_pan_entry_modes?: Array<
+ | 'AUTO_ENTRY'
+ | 'BAR_CODE'
+ | 'CONTACTLESS'
+ | 'CREDENTIAL_ON_FILE'
+ | 'ECOMMERCE'
+ | 'ERROR_KEYED'
+ | 'ERROR_MAGNETIC_STRIPE'
+ | 'ICC'
+ | 'KEY_ENTERED'
+ | 'MAGNETIC_STRIPE'
+ | 'MANUAL'
+ | 'OCR'
+ | 'SECURE_CARDLESS'
+ | 'UNSPECIFIED'
+ | 'UNKNOWN'
+ > | null;
+}
+
export interface VelocityLimitParams {
/**
* Velocity over the current day since 00:00 / 12 AM in Eastern Time
@@ -1264,7 +1474,7 @@ export interface VelocityLimitParams {
*/
scope: 'CARD' | 'ACCOUNT';
- filters?: VelocityLimitParams.Filters;
+ filters?: VelocityLimitFilters;
/**
* The maximum amount of spend velocity allowed in the period in minor units (the
@@ -1283,58 +1493,6 @@ export interface VelocityLimitParams {
limit_count?: number | null;
}
-export namespace VelocityLimitParams {
- export interface Filters {
- /**
- * ISO-3166-1 alpha-3 Country Codes to exclude from the velocity calculation.
- * Transactions matching any of the provided will be excluded from the calculated
- * velocity.
- */
- exclude_countries?: Array | null;
-
- /**
- * Merchant Category Codes to exclude from the velocity calculation. Transactions
- * matching this MCC will be excluded from the calculated velocity.
- */
- exclude_mccs?: Array | null;
-
- /**
- * ISO-3166-1 alpha-3 Country Codes to include in the velocity calculation.
- * Transactions not matching any of the provided will not be included in the
- * calculated velocity.
- */
- include_countries?: Array | null;
-
- /**
- * Merchant Category Codes to include in the velocity calculation. Transactions not
- * matching this MCC will not be included in the calculated velocity.
- */
- include_mccs?: Array | null;
-
- /**
- * PAN entry modes to include in the velocity calculation. Transactions not
- * matching any of the provided will not be included in the calculated velocity.
- */
- include_pan_entry_modes?: Array<
- | 'AUTO_ENTRY'
- | 'BAR_CODE'
- | 'CONTACTLESS'
- | 'CREDENTIAL_ON_FILE'
- | 'ECOMMERCE'
- | 'ERROR_KEYED'
- | 'ERROR_MAGNETIC_STRIPE'
- | 'ICC'
- | 'KEY_ENTERED'
- | 'MAGNETIC_STRIPE'
- | 'MANUAL'
- | 'OCR'
- | 'SECURE_CARDLESS'
- | 'UNSPECIFIED'
- | 'UNKNOWN'
- > | null;
- }
-}
-
/**
* Velocity over the current day since 00:00 / 12 AM in Eastern Time
*/
@@ -1870,7 +2028,7 @@ export interface V2RetrieveFeaturesResponse {
export namespace V2RetrieveFeaturesResponse {
export interface Feature {
- filters: Feature.Filters;
+ filters: V2API.VelocityLimitFilters;
/**
* Velocity over the current day since 00:00 / 12 AM in Eastern Time
@@ -1886,56 +2044,6 @@ export namespace V2RetrieveFeaturesResponse {
}
export namespace Feature {
- export interface Filters {
- /**
- * ISO-3166-1 alpha-3 Country Codes to exclude from the velocity calculation.
- * Transactions matching any of the provided will be excluded from the calculated
- * velocity.
- */
- exclude_countries?: Array | null;
-
- /**
- * Merchant Category Codes to exclude from the velocity calculation. Transactions
- * matching this MCC will be excluded from the calculated velocity.
- */
- exclude_mccs?: Array | null;
-
- /**
- * ISO-3166-1 alpha-3 Country Codes to include in the velocity calculation.
- * Transactions not matching any of the provided will not be included in the
- * calculated velocity.
- */
- include_countries?: Array | null;
-
- /**
- * Merchant Category Codes to include in the velocity calculation. Transactions not
- * matching this MCC will not be included in the calculated velocity.
- */
- include_mccs?: Array | null;
-
- /**
- * PAN entry modes to include in the velocity calculation. Transactions not
- * matching any of the provided will not be included in the calculated velocity.
- */
- include_pan_entry_modes?: Array<
- | 'AUTO_ENTRY'
- | 'BAR_CODE'
- | 'CONTACTLESS'
- | 'CREDENTIAL_ON_FILE'
- | 'ECOMMERCE'
- | 'ERROR_KEYED'
- | 'ERROR_MAGNETIC_STRIPE'
- | 'ICC'
- | 'KEY_ENTERED'
- | 'MAGNETIC_STRIPE'
- | 'MANUAL'
- | 'OCR'
- | 'SECURE_CARDLESS'
- | 'UNSPECIFIED'
- | 'UNKNOWN'
- > | null;
- }
-
export interface Value {
/**
* Amount (in cents) for the given Auth Rule that is used as input for calculating
@@ -2011,7 +2119,8 @@ export declare namespace V2CreateParams {
| Conditional3DSActionParameters
| ConditionalAuthorizationActionParameters
| ConditionalACHActionParameters
- | ConditionalTokenizationActionParameters;
+ | ConditionalTokenizationActionParameters
+ | TypescriptCodeParameters;
/**
* The type of Auth Rule. For certain rule types, this determines the event stream
@@ -2025,8 +2134,10 @@ export declare namespace V2CreateParams {
* - `MERCHANT_LOCK`: AUTHORIZATION event stream.
* - `CONDITIONAL_ACTION`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION,
* ACH_CREDIT_RECEIPT, or ACH_DEBIT_RECEIPT event stream.
+ * - `TYPESCRIPT_CODE`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION,
+ * ACH_CREDIT_RECEIPT, or ACH_DEBIT_RECEIPT event stream.
*/
- type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION';
+ type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE';
/**
* Account tokens to which the Auth Rule applies.
@@ -2065,7 +2176,8 @@ export declare namespace V2CreateParams {
| Conditional3DSActionParameters
| ConditionalAuthorizationActionParameters
| ConditionalACHActionParameters
- | ConditionalTokenizationActionParameters;
+ | ConditionalTokenizationActionParameters
+ | TypescriptCodeParameters;
/**
* The type of Auth Rule. For certain rule types, this determines the event stream
@@ -2079,8 +2191,10 @@ export declare namespace V2CreateParams {
* - `MERCHANT_LOCK`: AUTHORIZATION event stream.
* - `CONDITIONAL_ACTION`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION,
* ACH_CREDIT_RECEIPT, or ACH_DEBIT_RECEIPT event stream.
+ * - `TYPESCRIPT_CODE`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION,
+ * ACH_CREDIT_RECEIPT, or ACH_DEBIT_RECEIPT event stream.
*/
- type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION';
+ type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE';
/**
* The event stream during which the rule will be evaluated.
@@ -2104,7 +2218,8 @@ export declare namespace V2CreateParams {
| Conditional3DSActionParameters
| ConditionalAuthorizationActionParameters
| ConditionalACHActionParameters
- | ConditionalTokenizationActionParameters;
+ | ConditionalTokenizationActionParameters
+ | TypescriptCodeParameters;
/**
* Whether the Auth Rule applies to all authorizations on the card program.
@@ -2123,8 +2238,10 @@ export declare namespace V2CreateParams {
* - `MERCHANT_LOCK`: AUTHORIZATION event stream.
* - `CONDITIONAL_ACTION`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION,
* ACH_CREDIT_RECEIPT, or ACH_DEBIT_RECEIPT event stream.
+ * - `TYPESCRIPT_CODE`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION,
+ * ACH_CREDIT_RECEIPT, or ACH_DEBIT_RECEIPT event stream.
*/
- type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION';
+ type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE';
/**
* The event stream during which the rule will be evaluated.
@@ -2270,6 +2387,7 @@ export interface V2DraftParams {
| ConditionalAuthorizationActionParameters
| ConditionalACHActionParameters
| ConditionalTokenizationActionParameters
+ | TypescriptCodeParameters
| null;
}
@@ -2339,6 +2457,9 @@ export declare namespace V2 {
type EventStream as EventStream,
type MerchantLockParameters as MerchantLockParameters,
type ReportStats as ReportStats,
+ type RuleFeature as RuleFeature,
+ type TypescriptCodeParameters as TypescriptCodeParameters,
+ type VelocityLimitFilters as VelocityLimitFilters,
type VelocityLimitParams as VelocityLimitParams,
type VelocityLimitPeriod as VelocityLimitPeriod,
type V2ListResultsResponse as V2ListResultsResponse,
From 7cad31a75d1f80a2fbfccc0c3ddfaf0dda8dbcb4 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 9 Mar 2026 21:37:55 +0000
Subject: [PATCH 004/164] chore(internal): update dependencies to address
dependabot vulnerabilities
---
package.json | 11 +++++++++
packages/mcp-server/package.json | 15 +++++++-----
yarn.lock | 39 +++++---------------------------
3 files changed, 26 insertions(+), 39 deletions(-)
diff --git a/package.json b/package.json
index 07f2a8e9..3292a1c2 100644
--- a/package.json
+++ b/package.json
@@ -55,6 +55,17 @@
"bin": {
"lithic": "bin/cli"
},
+ "overrides": {
+ "minimatch": "^9.0.5"
+ },
+ "pnpm": {
+ "overrides": {
+ "minimatch": "^9.0.5"
+ }
+ },
+ "resolutions": {
+ "minimatch": "^9.0.5"
+ },
"exports": {
".": {
"import": "./dist/index.mjs",
diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json
index 5d4a8b47..a5a10ec9 100644
--- a/packages/mcp-server/package.json
+++ b/packages/mcp-server/package.json
@@ -26,13 +26,16 @@
"format": "prettier --write --cache --cache-strategy metadata . !dist",
"prepare": "npm run build",
"tsn": "ts-node -r tsconfig-paths/register",
- "lint": "eslint --ext ts,js .",
- "fix": "eslint --fix --ext ts,js ."
+ "lint": "eslint .",
+ "fix": "eslint --fix ."
},
"dependencies": {
"lithic": "file:../../dist/",
+ "ajv": "^8.18.0",
"@cloudflare/cabidela": "^0.2.4",
- "@modelcontextprotocol/sdk": "^1.26.0",
+ "@hono/node-server": "^1.19.10",
+ "@modelcontextprotocol/sdk": "^1.27.1",
+ "hono": "^4.12.4",
"@valtown/deno-http-worker": "^0.0.21",
"cookie-parser": "^1.4.6",
"cors": "^2.8.5",
@@ -62,9 +65,9 @@
"@types/yargs": "^17.0.8",
"@typescript-eslint/eslint-plugin": "8.31.1",
"@typescript-eslint/parser": "8.31.1",
- "eslint": "^8.49.0",
- "eslint-plugin-prettier": "^5.0.1",
- "eslint-plugin-unused-imports": "^3.0.0",
+ "eslint": "^9.39.1",
+ "eslint-plugin-prettier": "^5.4.1",
+ "eslint-plugin-unused-imports": "^4.1.4",
"jest": "^29.4.0",
"prettier": "^3.0.0",
"ts-jest": "^29.1.0",
diff --git a/yarn.lock b/yarn.lock
index 2dc54a9d..49adad97 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1224,15 +1224,7 @@ baseline-browser-mapping@^2.9.0:
resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.14.tgz#3b6af0bc032445bca04de58caa9a87cfe921cbb3"
integrity sha512-B0xUquLkiGLgHhpPBqvl7GWegWBUNuujQ6kXd/r1U38ElPT6Ok8KZ8e+FpUGEc2ZoRQUzq/aUnaKFc/svWUGSg==
-brace-expansion@^1.1.7:
- version "1.1.12"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843"
- integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==
- dependencies:
- balanced-match "^1.0.0"
- concat-map "0.0.1"
-
-brace-expansion@^2.0.1:
+brace-expansion@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7"
integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==
@@ -1400,11 +1392,6 @@ commander@^10.0.1:
resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06"
integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==
-concat-map@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
- integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
-
convert-source-map@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
@@ -2610,26 +2597,12 @@ mimic-fn@^2.1.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
-minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
- integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
- dependencies:
- brace-expansion "^1.1.7"
-
-minimatch@^5.0.1:
- version "5.1.6"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96"
- integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==
- dependencies:
- brace-expansion "^2.0.1"
-
-minimatch@^9.0.4:
- version "9.0.5"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
- integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
+minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2, minimatch@^5.0.1, minimatch@^9.0.4, minimatch@^9.0.5:
+ version "9.0.9"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.9.tgz#9b0cb9fcb78087f6fd7eababe2511c4d3d60574e"
+ integrity sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==
dependencies:
- brace-expansion "^2.0.1"
+ brace-expansion "^2.0.2"
minimist@^1.2.6:
version "1.2.6"
From 816375ff317576a710e619303d7712cb9187a246 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 10 Mar 2026 08:21:23 +0000
Subject: [PATCH 005/164] fix(api): Disable MCP server to fix TypeScript SDK
package publishing
---
.dockerignore | 59 -
.github/workflows/ci.yml | 20 +-
.github/workflows/publish-npm.yml | 20 +-
.gitignore | 3 +-
.prettierignore | 2 +-
.stats.yml | 2 +-
README.md | 9 -
eslint.config.mjs | 2 +-
packages/mcp-server/Dockerfile | 76 -
packages/mcp-server/README.md | 103 -
packages/mcp-server/build | 56 -
packages/mcp-server/jest.config.ts | 17 -
packages/mcp-server/manifest.json | 54 -
packages/mcp-server/package.json | 95 -
.../mcp-server/scripts/copy-bundle-files.cjs | 36 -
.../scripts/postprocess-dist-package-json.cjs | 12 -
packages/mcp-server/src/auth.ts | 33 -
packages/mcp-server/src/code-tool-paths.cts | 3 -
packages/mcp-server/src/code-tool-types.ts | 17 -
packages/mcp-server/src/code-tool-worker.ts | 461 --
packages/mcp-server/src/code-tool.ts | 388 --
packages/mcp-server/src/docs-search-tool.ts | 100 -
packages/mcp-server/src/http.ts | 159 -
packages/mcp-server/src/index.ts | 67 -
packages/mcp-server/src/instructions.ts | 65 -
packages/mcp-server/src/logger.ts | 28 -
packages/mcp-server/src/methods.ts | 1228 -----
packages/mcp-server/src/options.ts | 161 -
packages/mcp-server/src/server.ts | 190 -
packages/mcp-server/src/stdio.ts | 14 -
packages/mcp-server/src/types.ts | 123 -
packages/mcp-server/src/util.ts | 25 -
packages/mcp-server/tests/options.test.ts | 32 -
packages/mcp-server/tsc-multi.json | 7 -
packages/mcp-server/tsconfig.build.json | 18 -
packages/mcp-server/tsconfig.dist-src.json | 11 -
packages/mcp-server/tsconfig.json | 36 -
packages/mcp-server/yarn.lock | 4175 -----------------
release-please-config.json | 16 +-
scripts/build | 6 -
scripts/build-all | 5 -
scripts/publish-packages.ts | 102 -
scripts/utils/make-dist-package-json.cjs | 8 -
43 files changed, 9 insertions(+), 8035 deletions(-)
delete mode 100644 .dockerignore
delete mode 100644 packages/mcp-server/Dockerfile
delete mode 100644 packages/mcp-server/README.md
delete mode 100644 packages/mcp-server/build
delete mode 100644 packages/mcp-server/jest.config.ts
delete mode 100644 packages/mcp-server/manifest.json
delete mode 100644 packages/mcp-server/package.json
delete mode 100644 packages/mcp-server/scripts/copy-bundle-files.cjs
delete mode 100644 packages/mcp-server/scripts/postprocess-dist-package-json.cjs
delete mode 100644 packages/mcp-server/src/auth.ts
delete mode 100644 packages/mcp-server/src/code-tool-paths.cts
delete mode 100644 packages/mcp-server/src/code-tool-types.ts
delete mode 100644 packages/mcp-server/src/code-tool-worker.ts
delete mode 100644 packages/mcp-server/src/code-tool.ts
delete mode 100644 packages/mcp-server/src/docs-search-tool.ts
delete mode 100644 packages/mcp-server/src/http.ts
delete mode 100644 packages/mcp-server/src/index.ts
delete mode 100644 packages/mcp-server/src/instructions.ts
delete mode 100644 packages/mcp-server/src/logger.ts
delete mode 100644 packages/mcp-server/src/methods.ts
delete mode 100644 packages/mcp-server/src/options.ts
delete mode 100644 packages/mcp-server/src/server.ts
delete mode 100644 packages/mcp-server/src/stdio.ts
delete mode 100644 packages/mcp-server/src/types.ts
delete mode 100644 packages/mcp-server/src/util.ts
delete mode 100644 packages/mcp-server/tests/options.test.ts
delete mode 100644 packages/mcp-server/tsc-multi.json
delete mode 100644 packages/mcp-server/tsconfig.build.json
delete mode 100644 packages/mcp-server/tsconfig.dist-src.json
delete mode 100644 packages/mcp-server/tsconfig.json
delete mode 100644 packages/mcp-server/yarn.lock
delete mode 100755 scripts/build-all
delete mode 100644 scripts/publish-packages.ts
diff --git a/.dockerignore b/.dockerignore
deleted file mode 100644
index 12ff1e64..00000000
--- a/.dockerignore
+++ /dev/null
@@ -1,59 +0,0 @@
-# Dependencies
-node_modules/
-**/node_modules/
-
-# Build outputs
-dist/
-**/dist/
-
-# Git
-.git/
-.gitignore
-
-# CI/CD
-.github/
-.gitlab-ci.yml
-.travis.yml
-
-# IDE
-.vscode/
-.idea/
-*.swp
-*.swo
-*~
-
-# OS
-.DS_Store
-Thumbs.db
-
-# Testing
-test/
-tests/
-__tests__/
-*.test.js
-*.spec.js
-coverage/
-.nyc_output/
-
-# Logs
-*.log
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-
-# Environment
-.env
-.env.*
-
-# Temporary files
-*.tmp
-*.temp
-.cache/
-
-# Examples and scripts
-examples/
-bin/
-
-# Other packages (we only need mcp-server)
-packages/*/
-!packages/mcp-server/
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 4635677b..3620ece0 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -24,7 +24,7 @@ jobs:
- name: Set up Node
uses: actions/setup-node@v4
with:
- node-version: '22'
+ node-version: '20'
- name: Bootstrap
run: ./scripts/bootstrap
@@ -46,7 +46,7 @@ jobs:
- name: Set up Node
uses: actions/setup-node@v4
with:
- node-version: '22'
+ node-version: '20'
- name: Bootstrap
run: ./scripts/bootstrap
@@ -72,17 +72,6 @@ jobs:
AUTH: ${{ steps.github-oidc.outputs.github_token }}
SHA: ${{ github.sha }}
run: ./scripts/utils/upload-artifact.sh
-
- - name: Upload MCP Server tarball
- if: |-
- github.repository == 'stainless-sdks/lithic-typescript' &&
- !startsWith(github.ref, 'refs/heads/stl/')
- env:
- URL: https://pkg.stainless.com/s?subpackage=mcp-server
- AUTH: ${{ steps.github-oidc.outputs.github_token }}
- SHA: ${{ github.sha }}
- BASE_PATH: packages/mcp-server
- run: ./scripts/utils/upload-artifact.sh
test:
timeout-minutes: 10
name: test
@@ -94,14 +83,11 @@ jobs:
- name: Set up Node
uses: actions/setup-node@v4
with:
- node-version: '22'
+ node-version: '20'
- name: Bootstrap
run: ./scripts/bootstrap
- - name: Build
- run: ./scripts/build
-
- name: Run tests
run: ./scripts/test
examples:
diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml
index 0cb165d0..af640da0 100644
--- a/.github/workflows/publish-npm.yml
+++ b/.github/workflows/publish-npm.yml
@@ -4,10 +4,6 @@
name: Publish NPM
on:
workflow_dispatch:
- inputs:
- path:
- description: The path to run the release in, e.g. '.' or 'packages/mcp-server'
- required: true
release:
types: [published]
@@ -16,8 +12,6 @@ jobs:
publish:
name: publish
runs-on: ubuntu-latest
- permissions:
- contents: write
steps:
- uses: actions/checkout@v6
@@ -33,18 +27,6 @@ jobs:
- name: Publish to NPM
run: |
- if [ -n "${{ github.event.inputs.path }}" ]; then
- PATHS_RELEASED='[\"${{ github.event.inputs.path }}\"]'
- else
- PATHS_RELEASED='[\".\", \"packages/mcp-server\"]'
- fi
- yarn tsn scripts/publish-packages.ts "{ \"paths_released\": \"$PATHS_RELEASED\" }"
+ bash ./bin/publish-npm
env:
NPM_TOKEN: ${{ secrets.LITHIC_NPM_TOKEN || secrets.NPM_TOKEN }}
-
- - name: Upload MCP Server DXT GitHub release asset
- run: |
- gh release upload ${{ github.event.release.tag_name }} \
- packages/mcp-server/lithic_api.mcpb
- env:
- GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.gitignore b/.gitignore
index d62bea50..2412bb77 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,5 +8,4 @@ dist-deno
/*.tgz
.idea/
.eslintcache
-dist-bundle
-*.mcpb
+
diff --git a/.prettierignore b/.prettierignore
index 7cc13dd1..3548c5af 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -4,4 +4,4 @@ CHANGELOG.md
/deno
# don't format tsc output, will break source maps
-dist
+/dist
diff --git a/.stats.yml b/.stats.yml
index 31c05d97..4e2f0a05 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 189
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-1e902917b2eae41d549957e790eb6b137969e451efe673815647deba330fe05a.yml
openapi_spec_hash: 82cab06ce65462e60316939db630460a
-config_hash: 00b60697e692f86b5be297d939962921
+config_hash: 8799cfd589579f105ef8696a6d664c71
diff --git a/README.md b/README.md
index 9edf5372..92adf748 100644
--- a/README.md
+++ b/README.md
@@ -6,15 +6,6 @@ This library provides convenient access to the Lithic REST API from server-side
The REST API documentation can be found on [docs.lithic.com](https://docs.lithic.com). The full API of this library can be found in [api.md](api.md).
-## MCP Server
-
-Use the Lithic MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.
-
-[](https://cursor.com/en-US/install-mcp?name=lithic-mcp&config=eyJuYW1lIjoibGl0aGljLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2xpdGhpYy5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LWxpdGhpYy1hcGkta2V5IjoiTXkgTGl0aGljIEFQSSBLZXkifX0)
-[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22lithic-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Flithic.stlmcp.com%22%2C%22headers%22%3A%7B%22x-lithic-api-key%22%3A%22My%20Lithic%20API%20Key%22%7D%7D)
-
-> Note: You may need to set environment variables in your MCP client.
-
## Installation
```sh
diff --git a/eslint.config.mjs b/eslint.config.mjs
index 0b625a58..a0232c01 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -34,7 +34,7 @@ export default tseslint.config(
},
},
{
- files: ['tests/**', 'examples/**', 'packages/**'],
+ files: ['tests/**', 'examples/**'],
rules: {
'no-restricted-imports': 'off',
},
diff --git a/packages/mcp-server/Dockerfile b/packages/mcp-server/Dockerfile
deleted file mode 100644
index 9529570b..00000000
--- a/packages/mcp-server/Dockerfile
+++ /dev/null
@@ -1,76 +0,0 @@
-# Dockerfile for Lithic MCP Server
-#
-# This Dockerfile builds a Docker image for the MCP Server.
-#
-# To build the image locally:
-# docker build -f packages/mcp-server/Dockerfile -t lithic-mcp:local .
-#
-# To run the image:
-# docker run -i lithic-mcp:local [OPTIONS]
-#
-# Common options:
-# --tool= Include specific tools
-# --resource= Include tools for specific resources
-# --operation=read|write Filter by operation type
-# --client= Set client compatibility (e.g., claude, cursor)
-# --transport= Set transport type (stdio or http)
-#
-# For a full list of options:
-# docker run -i lithic-mcp:local --help
-#
-# Note: The MCP server uses stdio transport by default. Docker's -i flag
-# enables interactive mode, allowing the container to communicate over stdin/stdout.
-
-# Build stage
-FROM node:24-alpine AS builder
-
-# Install bash for build script
-RUN apk add --no-cache bash openssl
-
-# Set working directory
-WORKDIR /build
-
-# Copy entire repository
-COPY . .
-
-# Install all dependencies and build everything
-RUN yarn install --frozen-lockfile && \
- yarn build
-
-FROM denoland/deno:alpine-2.7.1
-
-# Install node and npm
-RUN apk add --no-cache nodejs npm
-
-ENV LD_LIBRARY_PATH=/usr/lib:/usr/local/lib
-
-# Add non-root user
-RUN addgroup -g 1001 -S nodejs && adduser -S nodejs -u 1001
-
-# Set working directory
-WORKDIR /app
-
-# Copy the built mcp-server dist directory
-COPY --from=builder /build/packages/mcp-server/dist ./
-
-# Copy node_modules from mcp-server (includes all production deps)
-COPY --from=builder /build/packages/mcp-server/node_modules ./node_modules
-
-# Copy the built lithic into node_modules
-COPY --from=builder /build/dist ./node_modules/lithic
-
-# Change ownership to nodejs user
-RUN chown -R nodejs:nodejs /app
-RUN chown -R nodejs:nodejs /deno-dir
-
-# Switch to non-root user
-USER nodejs
-
-# The MCP server uses stdio transport by default
-# No exposed ports needed for stdio communication
-
-# Set the entrypoint to the MCP server
-ENTRYPOINT ["node", "index.js"]
-
-# Allow passing arguments to the MCP server
-CMD []
diff --git a/packages/mcp-server/README.md b/packages/mcp-server/README.md
deleted file mode 100644
index eea95564..00000000
--- a/packages/mcp-server/README.md
+++ /dev/null
@@ -1,103 +0,0 @@
-# Lithic TypeScript MCP Server
-
-## Installation
-
-### Direct invocation
-
-You can run the MCP Server directly via `npx`:
-
-```sh
-export LITHIC_API_KEY="My Lithic API Key"
-export LITHIC_WEBHOOK_SECRET="My Webhook Secret"
-export LITHIC_ENVIRONMENT="production"
-npx -y lithic-mcp@latest
-```
-
-### Via MCP Client
-
-There is a partial list of existing clients at [modelcontextprotocol.io](https://modelcontextprotocol.io/clients). If you already
-have a client, consult their documentation to install the MCP server.
-
-For clients with a configuration JSON, it might look something like this:
-
-```json
-{
- "mcpServers": {
- "lithic_api": {
- "command": "npx",
- "args": ["-y", "lithic-mcp"],
- "env": {
- "LITHIC_API_KEY": "My Lithic API Key",
- "LITHIC_WEBHOOK_SECRET": "My Webhook Secret",
- "LITHIC_ENVIRONMENT": "production"
- }
- }
- }
-}
-```
-
-### Cursor
-
-If you use Cursor, you can install the MCP server by using the button below. You will need to set your environment variables
-in Cursor's `mcp.json`, which can be found in Cursor Settings > Tools & MCP > New MCP Server.
-
-[](https://cursor.com/en-US/install-mcp?name=lithic-mcp&config=eyJuYW1lIjoibGl0aGljLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2xpdGhpYy5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LWxpdGhpYy1hcGkta2V5IjoiTXkgTGl0aGljIEFQSSBLZXkifX0)
-
-### VS Code
-
-If you use MCP, you can install the MCP server by clicking the link below. You will need to set your environment variables
-in VS Code's `mcp.json`, which can be found via Command Palette > MCP: Open User Configuration.
-
-[Open VS Code](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22lithic-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Flithic.stlmcp.com%22%2C%22headers%22%3A%7B%22x-lithic-api-key%22%3A%22My%20Lithic%20API%20Key%22%7D%7D)
-
-### Claude Code
-
-If you use Claude Code, you can install the MCP server by running the command below in your terminal. You will need to set your
-environment variables in Claude Code's `.claude.json`, which can be found in your home directory.
-
-```
-claude mcp add lithic_mcp_api --header "x-lithic-api-key: My Lithic API Key" --transport http https://lithic.stlmcp.com
-```
-
-## Code Mode
-
-This MCP server is built on the "Code Mode" tool scheme. In this MCP Server,
-your agent will write code against the TypeScript SDK, which will then be executed in an
-isolated sandbox. To accomplish this, the server will expose two tools to your agent:
-
-- The first tool is a docs search tool, which can be used to generically query for
- documentation about your API/SDK.
-
-- The second tool is a code tool, where the agent can write code against the TypeScript SDK.
- The code will be executed in a sandbox environment without web or filesystem access. Then,
- anything the code returns or prints will be returned to the agent as the result of the
- tool call.
-
-Using this scheme, agents are capable of performing very complex tasks deterministically
-and repeatably.
-
-## Running remotely
-
-Launching the client with `--transport=http` launches the server as a remote server using Streamable HTTP transport. The `--port` setting can choose the port it will run on, and the `--socket` setting allows it to run on a Unix socket.
-
-Authorization and base URL can be provided via the following headers:
-| Header | Equivalent client option | Security scheme |
-| ------------------ | ------------------------ | --------------- |
-| `x-lithic-api-key` | `apiKey` | ApiKeyAuth |
-| `x-base-url` | `baseUrl` | n/a |
-
-A configuration JSON for this server might look like this, assuming the server is hosted at `http://localhost:3000`:
-
-```json
-{
- "mcpServers": {
- "lithic_api": {
- "url": "http://localhost:3000",
- "headers": {
- "x-lithic-api-key": "My Lithic API Key",
- "x-base-url": "https://sandbox.lithic.com"
- }
- }
- }
-}
-```
diff --git a/packages/mcp-server/build b/packages/mcp-server/build
deleted file mode 100644
index c98bc0ab..00000000
--- a/packages/mcp-server/build
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/usr/bin/env bash
-set -exuo pipefail
-
-rm -rf dist; mkdir dist
-
-# Copy src to dist/src and build from dist/src into dist, so that
-# the source map for index.js.map will refer to ./src/index.ts etc
-cp -rp src README.md dist
-
-for file in LICENSE; do
- if [ -e "../../${file}" ]; then cp "../../${file}" dist; fi
-done
-
-for file in CHANGELOG.md; do
- if [ -e "${file}" ]; then cp "${file}" dist; fi
-done
-
-# this converts the export map paths for the dist directory
-# and does a few other minor things
-PKG_JSON_PATH=../../packages/mcp-server/package.json node ../../scripts/utils/make-dist-package-json.cjs > dist/package.json
-
-# updates the `lithic` dependency to point to NPM
-node scripts/postprocess-dist-package-json.cjs
-
-# build to .js/.mjs/.d.ts files
-./node_modules/.bin/tsc-multi
-
-cp tsconfig.dist-src.json dist/src/tsconfig.json
-
-chmod +x dist/index.js
-
-DIST_PATH=./dist PKG_IMPORT_PATH=lithic-mcp/ node ../../scripts/utils/postprocess-files.cjs
-
-# mcp bundle
-rm -rf dist-bundle lithic_api.mcpb; mkdir dist-bundle
-
-# copy package.json
-PKG_JSON_PATH=../../packages/mcp-server/package.json node ../../scripts/utils/make-dist-package-json.cjs > dist-bundle/package.json
-
-# copy files
-node scripts/copy-bundle-files.cjs
-
-# install runtime deps
-cd dist-bundle
-npm install
-cd ..
-
-# pack bundle
-cp manifest.json dist-bundle
-
-npx mcpb pack dist-bundle lithic_api.mcpb
-
-npx mcpb sign lithic_api.mcpb --self-signed
-
-# clean up
-rm -rf dist-bundle
diff --git a/packages/mcp-server/jest.config.ts b/packages/mcp-server/jest.config.ts
deleted file mode 100644
index 3e9d5966..00000000
--- a/packages/mcp-server/jest.config.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import type { JestConfigWithTsJest } from 'ts-jest';
-
-const config: JestConfigWithTsJest = {
- preset: 'ts-jest/presets/default-esm',
- testEnvironment: 'node',
- transform: {
- '^.+\\.(t|j)sx?$': ['@swc/jest', { sourceMaps: 'inline' }],
- },
- moduleNameMapper: {
- '^lithic-mcp$': '/src/index.ts',
- '^lithic-mcp/(.*)$': '/src/$1',
- },
- modulePathIgnorePatterns: ['/dist/'],
- testPathIgnorePatterns: ['scripts'],
-};
-
-export default config;
diff --git a/packages/mcp-server/manifest.json b/packages/mcp-server/manifest.json
deleted file mode 100644
index 334377e5..00000000
--- a/packages/mcp-server/manifest.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "dxt_version": "0.2",
- "name": "lithic-mcp",
- "version": "0.131.0",
- "description": "The official MCP Server for the Lithic API",
- "author": {
- "name": "Lithic",
- "email": "sdk-feedback@lithic.com"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lithic-com/lithic-node.git"
- },
- "homepage": "https://github.com/lithic-com/lithic-node/tree/main/packages/mcp-server#readme",
- "documentation": "https://docs.lithic.com",
- "server": {
- "type": "node",
- "entry_point": "index.js",
- "mcp_config": {
- "command": "node",
- "args": [
- "${__dirname}/index.js"
- ],
- "env": {
- "LITHIC_API_KEY": "${user_config.LITHIC_API_KEY}",
- "LITHIC_WEBHOOK_SECRET": "${user_config.LITHIC_WEBHOOK_SECRET}"
- }
- }
- },
- "user_config": {
- "LITHIC_API_KEY": {
- "title": "api_key",
- "description": "",
- "required": true,
- "type": "string"
- },
- "LITHIC_WEBHOOK_SECRET": {
- "title": "webhook_secret",
- "description": "",
- "required": false,
- "type": "string"
- }
- },
- "tools": [],
- "tools_generated": true,
- "compatibility": {
- "runtimes": {
- "node": ">=18.0.0"
- }
- },
- "keywords": [
- "api"
- ]
-}
diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json
deleted file mode 100644
index a5a10ec9..00000000
--- a/packages/mcp-server/package.json
+++ /dev/null
@@ -1,95 +0,0 @@
-{
- "name": "lithic-mcp",
- "version": "0.131.0",
- "description": "The official MCP Server for the Lithic API",
- "author": "Lithic ",
- "types": "dist/index.d.ts",
- "main": "dist/index.js",
- "type": "commonjs",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lithic-com/lithic-node.git",
- "directory": "packages/mcp-server"
- },
- "homepage": "https://github.com/lithic-com/lithic-node/tree/main/packages/mcp-server#readme",
- "license": "Apache-2.0",
- "packageManager": "yarn@1.22.22",
- "private": false,
- "publishConfig": {
- "access": "public"
- },
- "scripts": {
- "test": "jest",
- "build": "bash ./build",
- "prepack": "echo 'to pack, run yarn build && (cd dist; yarn pack)' && exit 1",
- "prepublishOnly": "echo 'to publish, run yarn build && (cd dist; yarn publish)' && exit 1",
- "format": "prettier --write --cache --cache-strategy metadata . !dist",
- "prepare": "npm run build",
- "tsn": "ts-node -r tsconfig-paths/register",
- "lint": "eslint .",
- "fix": "eslint --fix ."
- },
- "dependencies": {
- "lithic": "file:../../dist/",
- "ajv": "^8.18.0",
- "@cloudflare/cabidela": "^0.2.4",
- "@hono/node-server": "^1.19.10",
- "@modelcontextprotocol/sdk": "^1.27.1",
- "hono": "^4.12.4",
- "@valtown/deno-http-worker": "^0.0.21",
- "cookie-parser": "^1.4.6",
- "cors": "^2.8.5",
- "express": "^5.1.0",
- "fuse.js": "^7.1.0",
- "jq-web": "https://github.com/stainless-api/jq-web/releases/download/v0.8.8/jq-web.tar.gz",
- "pino": "^10.3.1",
- "pino-http": "^11.0.0",
- "pino-pretty": "^13.1.3",
- "qs": "^6.14.1",
- "typescript": "5.8.3",
- "yargs": "^17.7.2",
- "zod": "^3.25.20",
- "zod-to-json-schema": "^3.24.5",
- "zod-validation-error": "^4.0.1"
- },
- "bin": {
- "mcp-server": "dist/index.js"
- },
- "devDependencies": {
- "@anthropic-ai/mcpb": "^2.1.2",
- "@types/cookie-parser": "^1.4.10",
- "@types/cors": "^2.8.19",
- "@types/express": "^5.0.3",
- "@types/jest": "^29.4.0",
- "@types/qs": "^6.14.0",
- "@types/yargs": "^17.0.8",
- "@typescript-eslint/eslint-plugin": "8.31.1",
- "@typescript-eslint/parser": "8.31.1",
- "eslint": "^9.39.1",
- "eslint-plugin-prettier": "^5.4.1",
- "eslint-plugin-unused-imports": "^4.1.4",
- "jest": "^29.4.0",
- "prettier": "^3.0.0",
- "ts-jest": "^29.1.0",
- "ts-morph": "^19.0.0",
- "ts-node": "^10.5.0",
- "tsc-multi": "https://github.com/stainless-api/tsc-multi/releases/download/v1.1.9/tsc-multi.tgz",
- "tsconfig-paths": "^4.0.0"
- },
- "imports": {
- "lithic-mcp": ".",
- "lithic-mcp/*": "./src/*"
- },
- "exports": {
- ".": {
- "require": "./dist/index.js",
- "default": "./dist/index.mjs"
- },
- "./*.mjs": "./dist/*.mjs",
- "./*.js": "./dist/*.js",
- "./*": {
- "require": "./dist/*.js",
- "default": "./dist/*.mjs"
- }
- }
-}
diff --git a/packages/mcp-server/scripts/copy-bundle-files.cjs b/packages/mcp-server/scripts/copy-bundle-files.cjs
deleted file mode 100644
index de1acd6f..00000000
--- a/packages/mcp-server/scripts/copy-bundle-files.cjs
+++ /dev/null
@@ -1,36 +0,0 @@
-const fs = require('fs');
-const path = require('path');
-const pkgJson = require('../dist-bundle/package.json');
-
-const distDir = path.resolve(__dirname, '..', 'dist');
-const distBundleDir = path.resolve(__dirname, '..', 'dist-bundle');
-const distBundlePkgJson = path.join(distBundleDir, 'package.json');
-
-async function* walk(dir) {
- for await (const d of await fs.promises.opendir(dir)) {
- const entry = path.join(dir, d.name);
- if (d.isDirectory()) yield* walk(entry);
- else if (d.isFile()) yield entry;
- }
-}
-
-async function copyFiles() {
- // copy runtime files
- for await (const file of walk(distDir)) {
- if (!/[cm]?js$/.test(file)) continue;
- const dest = path.join(distBundleDir, path.relative(distDir, file));
- await fs.promises.mkdir(path.dirname(dest), { recursive: true });
- await fs.promises.copyFile(file, dest);
- }
-
- // replace package.json reference with local reference
- for (const dep in pkgJson.dependencies) {
- if (dep === 'lithic') {
- pkgJson.dependencies[dep] = 'file:../../../dist/';
- }
- }
-
- await fs.promises.writeFile(distBundlePkgJson, JSON.stringify(pkgJson, null, 2));
-}
-
-copyFiles();
diff --git a/packages/mcp-server/scripts/postprocess-dist-package-json.cjs b/packages/mcp-server/scripts/postprocess-dist-package-json.cjs
deleted file mode 100644
index 8d898851..00000000
--- a/packages/mcp-server/scripts/postprocess-dist-package-json.cjs
+++ /dev/null
@@ -1,12 +0,0 @@
-const fs = require('fs');
-const pkgJson = require('../dist/package.json');
-const parentPkgJson = require('../../../package.json');
-
-for (const dep in pkgJson.dependencies) {
- // ensure we point to NPM instead of a local directory
- if (dep === 'lithic') {
- pkgJson.dependencies[dep] = '^' + parentPkgJson.version;
- }
-}
-
-fs.writeFileSync('dist/package.json', JSON.stringify(pkgJson, null, 2));
diff --git a/packages/mcp-server/src/auth.ts b/packages/mcp-server/src/auth.ts
deleted file mode 100644
index a460108f..00000000
--- a/packages/mcp-server/src/auth.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-import { IncomingMessage } from 'node:http';
-import { ClientOptions } from 'lithic';
-import { McpOptions } from './options';
-
-export const parseClientAuthHeaders = (req: IncomingMessage, required?: boolean): Partial => {
- const apiKey =
- Array.isArray(req.headers['x-lithic-api-key']) ?
- req.headers['x-lithic-api-key'][0]
- : req.headers['x-lithic-api-key'];
- return { apiKey };
-};
-
-export const parseBaseUrlHeader = (req: IncomingMessage): Record => {
- const baseUrl =
- Array.isArray(req.headers['x-base-url']) ? req.headers['x-base-url'][0] : req.headers['x-base-url'];
- return baseUrl ? { baseUrl } : {};
-};
-
-export const getStainlessApiKey = (req: IncomingMessage, mcpOptions: McpOptions): string | undefined => {
- // Try to get the key from the x-stainless-api-key header
- const headerKey =
- Array.isArray(req.headers['x-stainless-api-key']) ?
- req.headers['x-stainless-api-key'][0]
- : req.headers['x-stainless-api-key'];
- if (headerKey && typeof headerKey === 'string') {
- return headerKey;
- }
-
- // Fall back to value set in the mcpOptions (e.g. from environment variable), if provided
- return mcpOptions.stainlessApiKey;
-};
diff --git a/packages/mcp-server/src/code-tool-paths.cts b/packages/mcp-server/src/code-tool-paths.cts
deleted file mode 100644
index 15ce7f55..00000000
--- a/packages/mcp-server/src/code-tool-paths.cts
+++ /dev/null
@@ -1,3 +0,0 @@
-// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-export const workerPath = require.resolve('./code-tool-worker.mjs');
diff --git a/packages/mcp-server/src/code-tool-types.ts b/packages/mcp-server/src/code-tool-types.ts
deleted file mode 100644
index 4b944f3a..00000000
--- a/packages/mcp-server/src/code-tool-types.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-import { ClientOptions } from 'lithic';
-
-export type WorkerInput = {
- project_name: string;
- code: string;
- client_opts: ClientOptions;
- intent?: string | undefined;
-};
-
-export type WorkerOutput = {
- is_error: boolean;
- result: unknown | null;
- log_lines: string[];
- err_lines: string[];
-};
diff --git a/packages/mcp-server/src/code-tool-worker.ts b/packages/mcp-server/src/code-tool-worker.ts
deleted file mode 100644
index 37936721..00000000
--- a/packages/mcp-server/src/code-tool-worker.ts
+++ /dev/null
@@ -1,461 +0,0 @@
-// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-import path from 'node:path';
-import util from 'node:util';
-import Fuse from 'fuse.js';
-import ts from 'typescript';
-import { WorkerOutput } from './code-tool-types';
-import { Lithic, ClientOptions } from 'lithic';
-
-function getRunFunctionSource(code: string): {
- type: 'declaration' | 'expression';
- client: string | undefined;
- code: string;
-} | null {
- const sourceFile = ts.createSourceFile('code.ts', code, ts.ScriptTarget.Latest, true);
- const printer = ts.createPrinter();
-
- for (const statement of sourceFile.statements) {
- // Check for top-level function declarations
- if (ts.isFunctionDeclaration(statement)) {
- if (statement.name?.text === 'run') {
- return {
- type: 'declaration',
- client: statement.parameters[0]?.name.getText(),
- code: printer.printNode(ts.EmitHint.Unspecified, statement.body!, sourceFile),
- };
- }
- }
-
- // Check for variable declarations: const run = () => {} or const run = function() {}
- if (ts.isVariableStatement(statement)) {
- for (const declaration of statement.declarationList.declarations) {
- if (
- ts.isIdentifier(declaration.name) &&
- declaration.name.text === 'run' &&
- // Check if it's initialized with a function
- declaration.initializer &&
- (ts.isFunctionExpression(declaration.initializer) || ts.isArrowFunction(declaration.initializer))
- ) {
- return {
- type: 'expression',
- client: declaration.initializer.parameters[0]?.name.getText(),
- code: printer.printNode(ts.EmitHint.Unspecified, declaration.initializer, sourceFile),
- };
- }
- }
- }
- }
-
- return null;
-}
-
-function getTSDiagnostics(code: string): string[] {
- const functionSource = getRunFunctionSource(code)!;
- const codeWithImport = [
- 'import { Lithic } from "lithic";',
- functionSource.type === 'declaration' ?
- `async function run(${functionSource.client}: Lithic)`
- : `const run: (${functionSource.client}: Lithic) => Promise =`,
- functionSource.code,
- ].join('\n');
- const sourcePath = path.resolve('code.ts');
- const ast = ts.createSourceFile(sourcePath, codeWithImport, ts.ScriptTarget.Latest, true);
- const options = ts.getDefaultCompilerOptions();
- options.target = ts.ScriptTarget.Latest;
- options.module = ts.ModuleKind.NodeNext;
- options.moduleResolution = ts.ModuleResolutionKind.NodeNext;
- const host = ts.createCompilerHost(options, true);
- const newHost: typeof host = {
- ...host,
- getSourceFile: (...args) => {
- if (path.resolve(args[0]) === sourcePath) {
- return ast;
- }
- return host.getSourceFile(...args);
- },
- readFile: (...args) => {
- if (path.resolve(args[0]) === sourcePath) {
- return codeWithImport;
- }
- return host.readFile(...args);
- },
- fileExists: (...args) => {
- if (path.resolve(args[0]) === sourcePath) {
- return true;
- }
- return host.fileExists(...args);
- },
- };
- const program = ts.createProgram({
- options,
- rootNames: [sourcePath],
- host: newHost,
- });
- const diagnostics = ts.getPreEmitDiagnostics(program, ast);
- return diagnostics.map((d) => {
- const message = ts.flattenDiagnosticMessageText(d.messageText, '\n');
- if (!d.file || !d.start) return `- ${message}`;
- const { line: lineNumber } = ts.getLineAndCharacterOfPosition(d.file, d.start);
- const line = codeWithImport.split('\n').at(lineNumber)?.trim();
- return line ? `- ${message}\n ${line}` : `- ${message}`;
- });
-}
-
-const fuse = new Fuse(
- [
- 'client.apiStatus',
- 'client.accounts.list',
- 'client.accounts.retrieve',
- 'client.accounts.retrieveSpendLimits',
- 'client.accounts.update',
- 'client.accountHolders.create',
- 'client.accountHolders.list',
- 'client.accountHolders.listDocuments',
- 'client.accountHolders.retrieve',
- 'client.accountHolders.retrieveDocument',
- 'client.accountHolders.simulateEnrollmentDocumentReview',
- 'client.accountHolders.simulateEnrollmentReview',
- 'client.accountHolders.update',
- 'client.accountHolders.uploadDocument',
- 'client.accountHolders.entities.create',
- 'client.accountHolders.entities.delete',
- 'client.authRules.v2.create',
- 'client.authRules.v2.delete',
- 'client.authRules.v2.draft',
- 'client.authRules.v2.list',
- 'client.authRules.v2.listResults',
- 'client.authRules.v2.promote',
- 'client.authRules.v2.retrieve',
- 'client.authRules.v2.retrieveFeatures',
- 'client.authRules.v2.retrieveReport',
- 'client.authRules.v2.update',
- 'client.authRules.v2.backtests.create',
- 'client.authRules.v2.backtests.retrieve',
- 'client.authStreamEnrollment.retrieveSecret',
- 'client.authStreamEnrollment.rotateSecret',
- 'client.tokenizationDecisioning.retrieveSecret',
- 'client.tokenizationDecisioning.rotateSecret',
- 'client.tokenizations.activate',
- 'client.tokenizations.deactivate',
- 'client.tokenizations.list',
- 'client.tokenizations.pause',
- 'client.tokenizations.resendActivationCode',
- 'client.tokenizations.retrieve',
- 'client.tokenizations.simulate',
- 'client.tokenizations.unpause',
- 'client.tokenizations.updateDigitalCardArt',
- 'client.cards.convertPhysical',
- 'client.cards.create',
- 'client.cards.embed',
- 'client.cards.list',
- 'client.cards.provision',
- 'client.cards.reissue',
- 'client.cards.renew',
- 'client.cards.retrieve',
- 'client.cards.retrieveSpendLimits',
- 'client.cards.searchByPan',
- 'client.cards.update',
- 'client.cards.webProvision',
- 'client.cards.balances.list',
- 'client.cards.financialTransactions.list',
- 'client.cards.financialTransactions.retrieve',
- 'client.cardBulkOrders.create',
- 'client.cardBulkOrders.list',
- 'client.cardBulkOrders.retrieve',
- 'client.cardBulkOrders.update',
- 'client.balances.list',
- 'client.disputes.create',
- 'client.disputes.delete',
- 'client.disputes.deleteEvidence',
- 'client.disputes.initiateEvidenceUpload',
- 'client.disputes.list',
- 'client.disputes.listEvidences',
- 'client.disputes.retrieve',
- 'client.disputes.retrieveEvidence',
- 'client.disputes.update',
- 'client.disputesV2.list',
- 'client.disputesV2.retrieve',
- 'client.events.list',
- 'client.events.listAttempts',
- 'client.events.retrieve',
- 'client.events.subscriptions.create',
- 'client.events.subscriptions.delete',
- 'client.events.subscriptions.list',
- 'client.events.subscriptions.listAttempts',
- 'client.events.subscriptions.recover',
- 'client.events.subscriptions.replayMissing',
- 'client.events.subscriptions.retrieve',
- 'client.events.subscriptions.retrieveSecret',
- 'client.events.subscriptions.rotateSecret',
- 'client.events.subscriptions.sendSimulatedExample',
- 'client.events.subscriptions.update',
- 'client.events.eventSubscriptions.resend',
- 'client.transfers.create',
- 'client.financialAccounts.create',
- 'client.financialAccounts.list',
- 'client.financialAccounts.registerAccountNumber',
- 'client.financialAccounts.retrieve',
- 'client.financialAccounts.update',
- 'client.financialAccounts.updateStatus',
- 'client.financialAccounts.balances.list',
- 'client.financialAccounts.financialTransactions.list',
- 'client.financialAccounts.financialTransactions.retrieve',
- 'client.financialAccounts.creditConfiguration.retrieve',
- 'client.financialAccounts.creditConfiguration.update',
- 'client.financialAccounts.statements.list',
- 'client.financialAccounts.statements.retrieve',
- 'client.financialAccounts.statements.lineItems.list',
- 'client.financialAccounts.loanTapes.list',
- 'client.financialAccounts.loanTapes.retrieve',
- 'client.financialAccounts.loanTapeConfiguration.retrieve',
- 'client.financialAccounts.interestTierSchedule.create',
- 'client.financialAccounts.interestTierSchedule.delete',
- 'client.financialAccounts.interestTierSchedule.list',
- 'client.financialAccounts.interestTierSchedule.retrieve',
- 'client.financialAccounts.interestTierSchedule.update',
- 'client.transactions.expireAuthorization',
- 'client.transactions.list',
- 'client.transactions.retrieve',
- 'client.transactions.simulateAuthorization',
- 'client.transactions.simulateAuthorizationAdvice',
- 'client.transactions.simulateClearing',
- 'client.transactions.simulateCreditAuthorization',
- 'client.transactions.simulateCreditAuthorizationAdvice',
- 'client.transactions.simulateReturn',
- 'client.transactions.simulateReturnReversal',
- 'client.transactions.simulateVoid',
- 'client.transactions.enhancedCommercialData.retrieve',
- 'client.transactions.events.enhancedCommercialData.retrieve',
- 'client.responderEndpoints.checkStatus',
- 'client.responderEndpoints.create',
- 'client.responderEndpoints.delete',
- 'client.externalBankAccounts.create',
- 'client.externalBankAccounts.list',
- 'client.externalBankAccounts.retrieve',
- 'client.externalBankAccounts.retryMicroDeposits',
- 'client.externalBankAccounts.retryPrenote',
- 'client.externalBankAccounts.unpause',
- 'client.externalBankAccounts.update',
- 'client.externalBankAccounts.microDeposits.create',
- 'client.payments.create',
- 'client.payments.list',
- 'client.payments.retrieve',
- 'client.payments.retry',
- 'client.payments.return',
- 'client.payments.simulateAction',
- 'client.payments.simulateReceipt',
- 'client.payments.simulateRelease',
- 'client.payments.simulateReturn',
- 'client.threeDS.authentication.retrieve',
- 'client.threeDS.authentication.simulate',
- 'client.threeDS.authentication.simulateOtpEntry',
- 'client.threeDS.decisioning.challengeResponse',
- 'client.threeDS.decisioning.retrieveSecret',
- 'client.threeDS.decisioning.rotateSecret',
- 'client.reports.settlement.listDetails',
- 'client.reports.settlement.summary',
- 'client.reports.settlement.networkTotals.list',
- 'client.reports.settlement.networkTotals.retrieve',
- 'client.cardPrograms.list',
- 'client.cardPrograms.retrieve',
- 'client.digitalCardArt.list',
- 'client.digitalCardArt.retrieve',
- 'client.bookTransfers.create',
- 'client.bookTransfers.list',
- 'client.bookTransfers.retrieve',
- 'client.bookTransfers.retry',
- 'client.bookTransfers.reverse',
- 'client.creditProducts.extendedCredit.retrieve',
- 'client.creditProducts.primeRates.create',
- 'client.creditProducts.primeRates.retrieve',
- 'client.externalPayments.cancel',
- 'client.externalPayments.create',
- 'client.externalPayments.list',
- 'client.externalPayments.release',
- 'client.externalPayments.retrieve',
- 'client.externalPayments.reverse',
- 'client.externalPayments.settle',
- 'client.managementOperations.create',
- 'client.managementOperations.list',
- 'client.managementOperations.retrieve',
- 'client.managementOperations.reverse',
- 'client.fundingEvents.list',
- 'client.fundingEvents.retrieve',
- 'client.fundingEvents.retrieveDetails',
- 'client.fraud.transactions.report',
- 'client.fraud.transactions.retrieve',
- 'client.networkPrograms.list',
- 'client.networkPrograms.retrieve',
- 'client.holds.create',
- 'client.holds.list',
- 'client.holds.retrieve',
- 'client.holds.void',
- 'client.accountActivity.list',
- 'client.accountActivity.retrieveTransaction',
- 'client.transferLimits.list',
- 'client.webhooks.parsed',
- ],
- { threshold: 1, shouldSort: true },
-);
-
-function getMethodSuggestions(fullyQualifiedMethodName: string): string[] {
- return fuse
- .search(fullyQualifiedMethodName)
- .map(({ item }) => item)
- .slice(0, 5);
-}
-
-const proxyToObj = new WeakMap();
-const objToProxy = new WeakMap();
-
-type ClientProxyConfig = {
- path: string[];
- isBelievedBad?: boolean;
-};
-
-function makeSdkProxy(obj: T, { path, isBelievedBad = false }: ClientProxyConfig): T {
- let proxy: T = objToProxy.get(obj);
-
- if (!proxy) {
- proxy = new Proxy(obj, {
- get(target, prop, receiver) {
- const propPath = [...path, String(prop)];
- const value = Reflect.get(target, prop, receiver);
-
- if (isBelievedBad || (!(prop in target) && value === undefined)) {
- // If we're accessing a path that doesn't exist, it will probably eventually error.
- // Let's proxy it and mark it bad so that we can control the error message.
- // We proxy an empty class so that an invocation or construction attempt is possible.
- return makeSdkProxy(class {}, { path: propPath, isBelievedBad: true });
- }
-
- if (value !== null && (typeof value === 'object' || typeof value === 'function')) {
- return makeSdkProxy(value, { path: propPath, isBelievedBad });
- }
-
- return value;
- },
-
- apply(target, thisArg, args) {
- if (isBelievedBad || typeof target !== 'function') {
- const fullyQualifiedMethodName = path.join('.');
- const suggestions = getMethodSuggestions(fullyQualifiedMethodName);
- throw new Error(
- `${fullyQualifiedMethodName} is not a function. Did you mean: ${suggestions.join(', ')}`,
- );
- }
-
- return Reflect.apply(target, proxyToObj.get(thisArg) ?? thisArg, args);
- },
-
- construct(target, args, newTarget) {
- if (isBelievedBad || typeof target !== 'function') {
- const fullyQualifiedMethodName = path.join('.');
- const suggestions = getMethodSuggestions(fullyQualifiedMethodName);
- throw new Error(
- `${fullyQualifiedMethodName} is not a constructor. Did you mean: ${suggestions.join(', ')}`,
- );
- }
-
- return Reflect.construct(target, args, newTarget);
- },
- });
-
- objToProxy.set(obj, proxy);
- proxyToObj.set(proxy, obj);
- }
-
- return proxy;
-}
-
-function parseError(code: string, error: unknown): string | undefined {
- if (!(error instanceof Error)) return;
- const message = error.name ? `${error.name}: ${error.message}` : error.message;
- try {
- // Deno uses V8; the first ":LINE:COLUMN" is the top of stack.
- const lineNumber = error.stack?.match(/:([0-9]+):[0-9]+/)?.[1];
- // -1 for the zero-based indexing
- const line =
- lineNumber &&
- code
- .split('\n')
- .at(parseInt(lineNumber, 10) - 1)
- ?.trim();
- return line ? `${message}\n at line ${lineNumber}\n ${line}` : message;
- } catch {
- return message;
- }
-}
-
-const fetch = async (req: Request): Promise => {
- const { opts, code } = (await req.json()) as { opts: ClientOptions; code: string };
-
- const runFunctionSource = code ? getRunFunctionSource(code) : null;
- if (!runFunctionSource) {
- const message =
- code ?
- 'The code is missing a top-level `run` function.'
- : 'The code argument is missing. Provide one containing a top-level `run` function.';
- return Response.json(
- {
- is_error: true,
- result: `${message} Write code within this template:\n\n\`\`\`\nasync function run(client) {\n // Fill this out\n}\n\`\`\``,
- log_lines: [],
- err_lines: [],
- } satisfies WorkerOutput,
- { status: 400, statusText: 'Code execution error' },
- );
- }
-
- const diagnostics = getTSDiagnostics(code);
- if (diagnostics.length > 0) {
- return Response.json(
- {
- is_error: true,
- result: `The code contains TypeScript diagnostics:\n${diagnostics.join('\n')}`,
- log_lines: [],
- err_lines: [],
- } satisfies WorkerOutput,
- { status: 400, statusText: 'Code execution error' },
- );
- }
-
- const client = new Lithic({
- ...opts,
- });
-
- const log_lines: string[] = [];
- const err_lines: string[] = [];
- const console = {
- log: (...args: unknown[]) => {
- log_lines.push(util.format(...args));
- },
- error: (...args: unknown[]) => {
- err_lines.push(util.format(...args));
- },
- };
- try {
- let run_ = async (client: any) => {};
- eval(`${code}\nrun_ = run;`);
- const result = await run_(makeSdkProxy(client, { path: ['client'] }));
- return Response.json({
- is_error: false,
- result,
- log_lines,
- err_lines,
- } satisfies WorkerOutput);
- } catch (e) {
- return Response.json(
- {
- is_error: true,
- result: parseError(code, e),
- log_lines,
- err_lines,
- } satisfies WorkerOutput,
- { status: 400, statusText: 'Code execution error' },
- );
- }
-};
-
-export default { fetch };
diff --git a/packages/mcp-server/src/code-tool.ts b/packages/mcp-server/src/code-tool.ts
deleted file mode 100644
index fe4376e8..00000000
--- a/packages/mcp-server/src/code-tool.ts
+++ /dev/null
@@ -1,388 +0,0 @@
-// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-import fs from 'node:fs';
-import path from 'node:path';
-import url from 'node:url';
-import { newDenoHTTPWorker } from '@valtown/deno-http-worker';
-import { workerPath } from './code-tool-paths.cjs';
-import {
- ContentBlock,
- McpRequestContext,
- McpTool,
- Metadata,
- ToolCallResult,
- asErrorResult,
- asTextContentResult,
-} from './types';
-import { Tool } from '@modelcontextprotocol/sdk/types.js';
-import { readEnv, requireValue } from './util';
-import { WorkerInput, WorkerOutput } from './code-tool-types';
-import { getLogger } from './logger';
-import { SdkMethod } from './methods';
-import { McpCodeExecutionMode } from './options';
-import { ClientOptions } from 'lithic';
-
-const prompt = `Runs JavaScript code to interact with the Lithic API.
-
-You are a skilled TypeScript programmer writing code to interface with the service.
-Define an async function named "run" that takes a single parameter of an initialized SDK client and it will be run.
-For example:
-
-\`\`\`
-async function run(client) {
- const card = await client.cards.create({ type: 'SINGLE_USE' });
-
- console.log(card.token);
-}
-\`\`\`
-
-You will be returned anything that your function returns, plus the results of any console.log statements.
-Do not add try-catch blocks for single API calls. The tool will handle errors for you.
-Do not add comments unless necessary for generating better code.
-Code will run in a container, and cannot interact with the network outside of the given SDK client.
-Variables will not persist between calls, so make sure to return or log any data you might need later.
-Remember that you are writing TypeScript code, so you need to be careful with your types.
-Always type dynamic key-value stores explicitly as Record instead of {}.`;
-
-/**
- * A tool that runs code against a copy of the SDK.
- *
- * Instead of exposing every endpoint as its own tool, which uses up too many tokens for LLMs to use at once,
- * we expose a single tool that can be used to search for endpoints by name, resource, operation, or tag, and then
- * a generic endpoint that can be used to invoke any endpoint with the provided arguments.
- *
- * @param blockedMethods - The methods to block for code execution. Blocking is done by simple string
- * matching, so it is not secure against obfuscation. For stronger security, block in the downstream API
- * with limited API keys.
- * @param codeExecutionMode - Whether to execute code in a local Deno environment or in a remote
- * sandbox environment hosted by Stainless.
- */
-export function codeTool({
- blockedMethods,
- codeExecutionMode,
-}: {
- blockedMethods: SdkMethod[] | undefined;
- codeExecutionMode: McpCodeExecutionMode;
-}): McpTool {
- const metadata: Metadata = { resource: 'all', operation: 'write', tags: [] };
- const tool: Tool = {
- name: 'execute',
- description: prompt,
- inputSchema: {
- type: 'object',
- properties: {
- code: {
- type: 'string',
- description: 'Code to execute.',
- },
- intent: {
- type: 'string',
- description: 'Task you are trying to perform. Used for improving the service.',
- },
- },
- required: ['code'],
- },
- };
-
- const logger = getLogger();
-
- const handler = async ({
- reqContext,
- args,
- }: {
- reqContext: McpRequestContext;
- args: any;
- }): Promise => {
- const code = args.code as string;
- // Do very basic blocking of code that includes forbidden method names.
- //
- // WARNING: This is not secure against obfuscation and other evasion methods. If
- // stronger security blocks are required, then these should be enforced in the downstream
- // API (e.g., by having users call the MCP server with API keys with limited permissions).
- if (blockedMethods) {
- const blockedMatches = blockedMethods.filter((method) => code.includes(method.fullyQualifiedName));
- if (blockedMatches.length > 0) {
- return asErrorResult(
- `The following methods have been blocked by the MCP server and cannot be used in code execution: ${blockedMatches
- .map((m) => m.fullyQualifiedName)
- .join(', ')}`,
- );
- }
- }
-
- let result: ToolCallResult;
- const startTime = Date.now();
-
- if (codeExecutionMode === 'local') {
- logger.debug('Executing code in local Deno environment');
- result = await localDenoHandler({ reqContext, args });
- } else {
- logger.debug('Executing code in remote Stainless environment');
- result = await remoteStainlessHandler({ reqContext, args });
- }
-
- logger.info(
- {
- codeExecutionMode,
- durationMs: Date.now() - startTime,
- isError: result.isError,
- contentRows: result.content?.length ?? 0,
- },
- 'Got code tool execution result',
- );
- return result;
- };
-
- return { metadata, tool, handler };
-}
-
-const remoteStainlessHandler = async ({
- reqContext,
- args,
-}: {
- reqContext: McpRequestContext;
- args: any;
-}): Promise => {
- const code = args.code as string;
- const intent = args.intent as string | undefined;
- const client = reqContext.client;
-
- const codeModeEndpoint = readEnv('CODE_MODE_ENDPOINT_URL') ?? 'https://api.stainless.com/api/ai/code-tool';
-
- // Setting a Stainless API key authenticates requests to the code tool endpoint.
- const res = await fetch(codeModeEndpoint, {
- method: 'POST',
- headers: {
- ...(reqContext.stainlessApiKey && { Authorization: reqContext.stainlessApiKey }),
- 'Content-Type': 'application/json',
- 'x-stainless-mcp-client-envs': JSON.stringify({
- LITHIC_API_KEY: requireValue(
- readEnv('LITHIC_API_KEY') ?? client.apiKey,
- 'set LITHIC_API_KEY environment variable or provide apiKey client option',
- ),
- LITHIC_WEBHOOK_SECRET: readEnv('LITHIC_WEBHOOK_SECRET') ?? client.webhookSecret ?? undefined,
- LITHIC_BASE_URL:
- readEnv('LITHIC_BASE_URL') ?? readEnv('LITHIC_ENVIRONMENT') ?
- undefined
- : client.baseURL ?? undefined,
- }),
- },
- body: JSON.stringify({
- project_name: 'lithic',
- code,
- intent,
- client_opts: { environment: (readEnv('LITHIC_ENVIRONMENT') || undefined) as any },
- } satisfies WorkerInput),
- });
-
- if (!res.ok) {
- if (res.status === 404 && !reqContext.stainlessApiKey) {
- throw new Error(
- 'Could not access code tool for this project. You may need to provide a Stainless API key via the STAINLESS_API_KEY environment variable, the --stainless-api-key flag, or the x-stainless-api-key HTTP header.',
- );
- }
- throw new Error(
- `${res.status}: ${
- res.statusText
- } error when trying to contact Code Tool server. Details: ${await res.text()}`,
- );
- }
-
- const { is_error, result, log_lines, err_lines } = (await res.json()) as WorkerOutput;
- const hasLogs = log_lines.length > 0 || err_lines.length > 0;
- const output = {
- result,
- ...(log_lines.length > 0 && { log_lines }),
- ...(err_lines.length > 0 && { err_lines }),
- };
- if (is_error) {
- return asErrorResult(typeof result === 'string' && !hasLogs ? result : JSON.stringify(output, null, 2));
- }
- return asTextContentResult(output);
-};
-
-const localDenoHandler = async ({
- reqContext,
- args,
-}: {
- reqContext: McpRequestContext;
- args: unknown;
-}): Promise => {
- const client = reqContext.client;
- const baseURLHostname = new URL(client.baseURL).hostname;
- const { code } = args as { code: string };
-
- let denoPath: string;
-
- const packageRoot = path.resolve(path.dirname(workerPath), '..');
- const packageNodeModulesPath = path.resolve(packageRoot, 'node_modules');
-
- // Check if deno is in PATH
- const { execSync } = await import('node:child_process');
- try {
- execSync('command -v deno', { stdio: 'ignore' });
- denoPath = 'deno';
- } catch {
- try {
- // Use deno binary in node_modules if it's found
- const denoNodeModulesPath = path.resolve(packageNodeModulesPath, 'deno', 'bin.cjs');
- await fs.promises.access(denoNodeModulesPath, fs.constants.X_OK);
- denoPath = denoNodeModulesPath;
- } catch {
- return asErrorResult(
- 'Deno is required for code execution but was not found. ' +
- 'Install it from https://deno.land or run: npm install deno',
- );
- }
- }
-
- const allowReadPaths = [
- 'code-tool-worker.mjs',
- `${workerPath.replace(/([\/\\]node_modules)[\/\\].+$/, '$1')}/`,
- packageRoot,
- ];
-
- // Follow symlinks in node_modules to allow read access to workspace-linked packages
- try {
- const sdkPkgName = 'lithic';
- const sdkDir = path.resolve(packageNodeModulesPath, sdkPkgName);
- const realSdkDir = fs.realpathSync(sdkDir);
- if (realSdkDir !== sdkDir) {
- allowReadPaths.push(realSdkDir);
- }
- } catch {
- // Ignore if symlink resolution fails
- }
-
- const allowRead = allowReadPaths.join(',');
-
- const worker = await newDenoHTTPWorker(url.pathToFileURL(workerPath), {
- denoExecutable: denoPath,
- runFlags: [
- `--node-modules-dir=manual`,
- `--allow-read=${allowRead}`,
- `--allow-net=${baseURLHostname}`,
- // Allow environment variables because instantiating the client will try to read from them,
- // even though they are not set.
- '--allow-env',
- ],
- printOutput: true,
- spawnOptions: {
- cwd: path.dirname(workerPath),
- },
- });
-
- try {
- const resp = await new Promise((resolve, reject) => {
- worker.addEventListener('exit', (exitCode) => {
- reject(new Error(`Worker exited with code ${exitCode}`));
- });
-
- const opts: ClientOptions = {
- baseURL: client.baseURL,
- apiKey: client.apiKey,
- webhookSecret: client.webhookSecret,
- defaultHeaders: {
- 'X-Stainless-MCP': 'true',
- },
- };
-
- const req = worker.request(
- 'http://localhost',
- {
- headers: {
- 'content-type': 'application/json',
- },
- method: 'POST',
- },
- (resp) => {
- const body: Uint8Array[] = [];
- resp.on('error', (err) => {
- reject(err);
- });
- resp.on('data', (chunk) => {
- body.push(chunk);
- });
- resp.on('end', () => {
- resolve(
- new Response(Buffer.concat(body).toString(), {
- status: resp.statusCode ?? 200,
- headers: resp.headers as any,
- }),
- );
- });
- },
- );
-
- const body = JSON.stringify({
- opts,
- code,
- });
-
- req.write(body, (err) => {
- if (err != null) {
- reject(err);
- }
- });
-
- req.end();
- });
-
- if (resp.status === 200) {
- const { result, log_lines, err_lines } = (await resp.json()) as WorkerOutput;
- const returnOutput: ContentBlock | null =
- result == null ? null : (
- {
- type: 'text',
- text: typeof result === 'string' ? result : JSON.stringify(result),
- }
- );
- const logOutput: ContentBlock | null =
- log_lines.length === 0 ?
- null
- : {
- type: 'text',
- text: log_lines.join('\n'),
- };
- const errOutput: ContentBlock | null =
- err_lines.length === 0 ?
- null
- : {
- type: 'text',
- text: 'Error output:\n' + err_lines.join('\n'),
- };
- return {
- content: [returnOutput, logOutput, errOutput].filter((block) => block !== null),
- };
- } else {
- const { result, log_lines, err_lines } = (await resp.json()) as WorkerOutput;
- const messageOutput: ContentBlock | null =
- result == null ? null : (
- {
- type: 'text',
- text: typeof result === 'string' ? result : JSON.stringify(result),
- }
- );
- const logOutput: ContentBlock | null =
- log_lines.length === 0 ?
- null
- : {
- type: 'text',
- text: log_lines.join('\n'),
- };
- const errOutput: ContentBlock | null =
- err_lines.length === 0 ?
- null
- : {
- type: 'text',
- text: 'Error output:\n' + err_lines.join('\n'),
- };
- return {
- content: [messageOutput, logOutput, errOutput].filter((block) => block !== null),
- isError: true,
- };
- }
- } finally {
- worker.terminate();
- }
-};
diff --git a/packages/mcp-server/src/docs-search-tool.ts b/packages/mcp-server/src/docs-search-tool.ts
deleted file mode 100644
index a3122cb9..00000000
--- a/packages/mcp-server/src/docs-search-tool.ts
+++ /dev/null
@@ -1,100 +0,0 @@
-// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-import { Tool } from '@modelcontextprotocol/sdk/types.js';
-import { Metadata, McpRequestContext, asTextContentResult } from './types';
-import { getLogger } from './logger';
-
-export const metadata: Metadata = {
- resource: 'all',
- operation: 'read',
- tags: [],
- httpMethod: 'get',
-};
-
-export const tool: Tool = {
- name: 'search_docs',
- description:
- 'Search SDK documentation to find methods, parameters, and usage examples for interacting with the API. Use this before writing code when you need to discover the right approach.',
- inputSchema: {
- type: 'object',
- properties: {
- query: {
- type: 'string',
- description: 'The query to search for.',
- },
- language: {
- type: 'string',
- description: 'The language for the SDK to search for.',
- enum: ['http', 'python', 'go', 'typescript', 'javascript', 'terraform', 'ruby', 'java', 'kotlin'],
- },
- detail: {
- type: 'string',
- description: 'The amount of detail to return.',
- enum: ['default', 'verbose'],
- },
- },
- required: ['query', 'language'],
- },
- annotations: {
- readOnlyHint: true,
- },
-};
-
-const docsSearchURL =
- process.env['DOCS_SEARCH_URL'] || 'https://api.stainless.com/api/projects/lithic/docs/search';
-
-export const handler = async ({
- reqContext,
- args,
-}: {
- reqContext: McpRequestContext;
- args: Record | undefined;
-}) => {
- const body = args as any;
- const query = new URLSearchParams(body).toString();
-
- const startTime = Date.now();
- const result = await fetch(`${docsSearchURL}?${query}`, {
- headers: {
- ...(reqContext.stainlessApiKey && { Authorization: reqContext.stainlessApiKey }),
- },
- });
-
- const logger = getLogger();
-
- if (!result.ok) {
- const errorText = await result.text();
- logger.warn(
- {
- durationMs: Date.now() - startTime,
- query: body.query,
- status: result.status,
- statusText: result.statusText,
- errorText,
- },
- 'Got error response from docs search tool',
- );
-
- if (result.status === 404 && !reqContext.stainlessApiKey) {
- throw new Error(
- 'Could not find docs for this project. You may need to provide a Stainless API key via the STAINLESS_API_KEY environment variable, the --stainless-api-key flag, or the x-stainless-api-key HTTP header.',
- );
- }
-
- throw new Error(
- `${result.status}: ${result.statusText} when using doc search tool. Details: ${errorText}`,
- );
- }
-
- const resultBody = await result.json();
- logger.info(
- {
- durationMs: Date.now() - startTime,
- query: body.query,
- },
- 'Got docs search result',
- );
- return asTextContentResult(resultBody);
-};
-
-export default { metadata, tool, handler };
diff --git a/packages/mcp-server/src/http.ts b/packages/mcp-server/src/http.ts
deleted file mode 100644
index cbca4fd1..00000000
--- a/packages/mcp-server/src/http.ts
+++ /dev/null
@@ -1,159 +0,0 @@
-// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-import { McpServer } from '@modelcontextprotocol/sdk/server/mcp';
-import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
-import { ClientOptions } from 'lithic';
-import express from 'express';
-import pino from 'pino';
-import pinoHttp from 'pino-http';
-import { getStainlessApiKey, parseClientAuthHeaders } from './auth';
-import { getLogger } from './logger';
-import { McpOptions } from './options';
-import { initMcpServer, newMcpServer } from './server';
-
-const newServer = async ({
- clientOptions,
- mcpOptions,
- req,
- res,
-}: {
- clientOptions: ClientOptions;
- mcpOptions: McpOptions;
- req: express.Request;
- res: express.Response;
-}): Promise => {
- const stainlessApiKey = getStainlessApiKey(req, mcpOptions);
- const server = await newMcpServer(stainlessApiKey);
-
- const authOptions = parseClientAuthHeaders(req, false);
-
- await initMcpServer({
- server: server,
- mcpOptions: mcpOptions,
- clientOptions: {
- ...clientOptions,
- ...authOptions,
- },
- stainlessApiKey: stainlessApiKey,
- });
-
- return server;
-};
-
-const post =
- (options: { clientOptions: ClientOptions; mcpOptions: McpOptions }) =>
- async (req: express.Request, res: express.Response) => {
- const server = await newServer({ ...options, req, res });
- // If we return null, we already set the authorization error.
- if (server === null) return;
- const transport = new StreamableHTTPServerTransport();
- await server.connect(transport as any);
- await transport.handleRequest(req, res, req.body);
- };
-
-const get = async (req: express.Request, res: express.Response) => {
- res.status(405).json({
- jsonrpc: '2.0',
- error: {
- code: -32000,
- message: 'Method not supported',
- },
- });
-};
-
-const del = async (req: express.Request, res: express.Response) => {
- res.status(405).json({
- jsonrpc: '2.0',
- error: {
- code: -32000,
- message: 'Method not supported',
- },
- });
-};
-
-const redactHeaders = (headers: Record) => {
- const hiddenHeaders = /auth|cookie|key|token/i;
- const filtered = { ...headers };
- Object.keys(filtered).forEach((key) => {
- if (hiddenHeaders.test(key)) {
- filtered[key] = '[REDACTED]';
- }
- });
- return filtered;
-};
-
-export const streamableHTTPApp = ({
- clientOptions = {},
- mcpOptions,
-}: {
- clientOptions?: ClientOptions;
- mcpOptions: McpOptions;
-}): express.Express => {
- const app = express();
- app.set('query parser', 'extended');
- app.use(express.json());
- app.use(
- pinoHttp({
- logger: getLogger(),
- customLogLevel: (req, res) => {
- if (res.statusCode >= 500) {
- return 'error';
- } else if (res.statusCode >= 400) {
- return 'warn';
- }
- return 'info';
- },
- customSuccessMessage: function (req, res) {
- return `Request ${req.method} to ${req.url} completed with status ${res.statusCode}`;
- },
- customErrorMessage: function (req, res, err) {
- return `Request ${req.method} to ${req.url} errored with status ${res.statusCode}`;
- },
- serializers: {
- req: pino.stdSerializers.wrapRequestSerializer((req) => {
- return {
- ...req,
- headers: redactHeaders(req.raw.headers),
- };
- }),
- res: pino.stdSerializers.wrapResponseSerializer((res) => {
- return {
- ...res,
- headers: redactHeaders(res.headers),
- };
- }),
- },
- }),
- );
-
- app.get('/health', async (req: express.Request, res: express.Response) => {
- res.status(200).send('OK');
- });
- app.get('/', get);
- app.post('/', post({ clientOptions, mcpOptions }));
- app.delete('/', del);
-
- return app;
-};
-
-export const launchStreamableHTTPServer = async ({
- mcpOptions,
- port,
-}: {
- mcpOptions: McpOptions;
- port: number | string | undefined;
-}) => {
- const app = streamableHTTPApp({ mcpOptions });
- const server = app.listen(port);
- const address = server.address();
-
- const logger = getLogger();
-
- if (typeof address === 'string') {
- logger.info(`MCP Server running on streamable HTTP at ${address}`);
- } else if (address !== null) {
- logger.info(`MCP Server running on streamable HTTP on port ${address.port}`);
- } else {
- logger.info(`MCP Server running on streamable HTTP on port ${port}`);
- }
-};
diff --git a/packages/mcp-server/src/index.ts b/packages/mcp-server/src/index.ts
deleted file mode 100644
index 5bca4a60..00000000
--- a/packages/mcp-server/src/index.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/env node
-
-import { selectTools } from './server';
-import { McpOptions, parseCLIOptions } from './options';
-import { launchStdioServer } from './stdio';
-import { launchStreamableHTTPServer } from './http';
-import type { McpTool } from './types';
-import { configureLogger, getLogger } from './logger';
-
-async function main() {
- const options = parseOptionsOrError();
- configureLogger({
- level: options.debug ? 'debug' : 'info',
- pretty: options.logFormat === 'pretty',
- });
-
- const selectedTools = await selectToolsOrError(options);
-
- getLogger().info(
- { tools: selectedTools.map((e) => e.tool.name) },
- `MCP Server starting with ${selectedTools.length} tools`,
- );
-
- switch (options.transport) {
- case 'stdio':
- await launchStdioServer(options);
- break;
- case 'http':
- await launchStreamableHTTPServer({
- mcpOptions: options,
- port: options.socket ?? options.port,
- });
- break;
- }
-}
-
-if (require.main === module) {
- main().catch((error) => {
- // Logger might not be initialized yet
- console.error('Fatal error in main()', error);
- process.exit(1);
- });
-}
-
-function parseOptionsOrError() {
- try {
- return parseCLIOptions();
- } catch (error) {
- // Logger is initialized after options, so use console.error here
- console.error('Error parsing options', error);
- process.exit(1);
- }
-}
-
-async function selectToolsOrError(options: McpOptions): Promise {
- try {
- const includedTools = selectTools(options);
- if (includedTools.length === 0) {
- getLogger().error('No tools match the provided filters');
- process.exit(1);
- }
- return includedTools;
- } catch (error) {
- getLogger().error({ error }, 'Error filtering tools');
- process.exit(1);
- }
-}
diff --git a/packages/mcp-server/src/instructions.ts b/packages/mcp-server/src/instructions.ts
deleted file mode 100644
index 93986caa..00000000
--- a/packages/mcp-server/src/instructions.ts
+++ /dev/null
@@ -1,65 +0,0 @@
-// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-import { readEnv } from './util';
-import { getLogger } from './logger';
-
-const INSTRUCTIONS_CACHE_TTL_MS = 15 * 60 * 1000; // 15 minutes
-
-interface InstructionsCacheEntry {
- fetchedInstructions: string;
- fetchedAt: number;
-}
-
-const instructionsCache = new Map();
-
-// Periodically evict stale entries so the cache doesn't grow unboundedly.
-const _cacheCleanupInterval = setInterval(() => {
- const now = Date.now();
- for (const [key, entry] of instructionsCache) {
- if (now - entry.fetchedAt > INSTRUCTIONS_CACHE_TTL_MS) {
- instructionsCache.delete(key);
- }
- }
-}, INSTRUCTIONS_CACHE_TTL_MS);
-
-// Don't keep the process alive just for cleanup.
-_cacheCleanupInterval.unref();
-
-export async function getInstructions(stainlessApiKey: string | undefined): Promise {
- const cacheKey = stainlessApiKey ?? '';
- const cached = instructionsCache.get(cacheKey);
-
- if (cached && Date.now() - cached.fetchedAt <= INSTRUCTIONS_CACHE_TTL_MS) {
- return cached.fetchedInstructions;
- }
-
- const fetchedInstructions = await fetchLatestInstructions(stainlessApiKey);
- instructionsCache.set(cacheKey, { fetchedInstructions, fetchedAt: Date.now() });
- return fetchedInstructions;
-}
-
-async function fetchLatestInstructions(stainlessApiKey: string | undefined): Promise {
- // Setting the stainless API key is optional, but may be required
- // to authenticate requests to the Stainless API.
- const response = await fetch(
- readEnv('CODE_MODE_INSTRUCTIONS_URL') ?? 'https://api.stainless.com/api/ai/instructions/lithic',
- {
- method: 'GET',
- headers: { ...(stainlessApiKey && { Authorization: stainlessApiKey }) },
- },
- );
-
- let instructions: string | undefined;
- if (!response.ok) {
- getLogger().warn(
- 'Warning: failed to retrieve MCP server instructions. Proceeding with default instructions...',
- );
-
- instructions =
- '\n This is the lithic MCP server.\n\n Available tools:\n - search_docs: Search SDK documentation to find the right methods and parameters.\n - execute: Run TypeScript code against a pre-authenticated SDK client. Define an async run(client) function.\n\n Workflow:\n - If unsure about the API, call search_docs first.\n - Write complete solutions in a single execute call when possible. For large datasets, use API filters to narrow results or paginate within a single execute block.\n - If execute returns an error, read the error and fix your code rather than retrying the same approach.\n - Variables do not persist between execute calls. Return or log all data you need.\n - Individual HTTP requests to the API have a 30-second timeout. If a request times out, try a smaller query or add filters.\n - Code execution has a total timeout of approximately 5 minutes. If your code times out, simplify it or break it into smaller steps.\n ';
- }
-
- instructions ??= ((await response.json()) as { instructions: string }).instructions;
-
- return instructions;
-}
diff --git a/packages/mcp-server/src/logger.ts b/packages/mcp-server/src/logger.ts
deleted file mode 100644
index 29dab11c..00000000
--- a/packages/mcp-server/src/logger.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-import { pino, type Level, type Logger } from 'pino';
-import pretty from 'pino-pretty';
-
-let _logger: Logger | undefined;
-
-export function configureLogger({ level, pretty: usePretty }: { level: Level; pretty: boolean }): void {
- _logger = pino(
- {
- level,
- timestamp: pino.stdTimeFunctions.isoTime,
- formatters: {
- level(label) {
- return { level: label };
- },
- },
- },
- usePretty ? pretty({ colorize: true, levelFirst: true, destination: 2 }) : process.stderr,
- );
-}
-
-export function getLogger(): Logger {
- if (!_logger) {
- throw new Error('Logger has not been configured. Call configureLogger() before using the logger.');
- }
- return _logger;
-}
diff --git a/packages/mcp-server/src/methods.ts b/packages/mcp-server/src/methods.ts
deleted file mode 100644
index d1c6dbfe..00000000
--- a/packages/mcp-server/src/methods.ts
+++ /dev/null
@@ -1,1228 +0,0 @@
-// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-import { McpOptions } from './options';
-
-export type SdkMethod = {
- clientCallName: string;
- fullyQualifiedName: string;
- httpMethod?: 'get' | 'post' | 'put' | 'patch' | 'delete' | 'query';
- httpPath?: string;
-};
-
-export const sdkMethods: SdkMethod[] = [
- {
- clientCallName: 'client.apiStatus',
- fullyQualifiedName: 'apiStatus',
- httpMethod: 'get',
- httpPath: '/v1/status',
- },
- {
- clientCallName: 'client.accounts.retrieve',
- fullyQualifiedName: 'accounts.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/accounts/{account_token}',
- },
- {
- clientCallName: 'client.accounts.update',
- fullyQualifiedName: 'accounts.update',
- httpMethod: 'patch',
- httpPath: '/v1/accounts/{account_token}',
- },
- {
- clientCallName: 'client.accounts.list',
- fullyQualifiedName: 'accounts.list',
- httpMethod: 'get',
- httpPath: '/v1/accounts',
- },
- {
- clientCallName: 'client.accounts.retrieveSpendLimits',
- fullyQualifiedName: 'accounts.retrieveSpendLimits',
- httpMethod: 'get',
- httpPath: '/v1/accounts/{account_token}/spend_limits',
- },
- {
- clientCallName: 'client.accountHolders.create',
- fullyQualifiedName: 'accountHolders.create',
- httpMethod: 'post',
- httpPath: '/v1/account_holders',
- },
- {
- clientCallName: 'client.accountHolders.retrieve',
- fullyQualifiedName: 'accountHolders.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/account_holders/{account_holder_token}',
- },
- {
- clientCallName: 'client.accountHolders.update',
- fullyQualifiedName: 'accountHolders.update',
- httpMethod: 'patch',
- httpPath: '/v1/account_holders/{account_holder_token}',
- },
- {
- clientCallName: 'client.accountHolders.list',
- fullyQualifiedName: 'accountHolders.list',
- httpMethod: 'get',
- httpPath: '/v1/account_holders',
- },
- {
- clientCallName: 'client.accountHolders.listDocuments',
- fullyQualifiedName: 'accountHolders.listDocuments',
- httpMethod: 'get',
- httpPath: '/v1/account_holders/{account_holder_token}/documents',
- },
- {
- clientCallName: 'client.accountHolders.retrieveDocument',
- fullyQualifiedName: 'accountHolders.retrieveDocument',
- httpMethod: 'get',
- httpPath: '/v1/account_holders/{account_holder_token}/documents/{document_token}',
- },
- {
- clientCallName: 'client.accountHolders.simulateEnrollmentDocumentReview',
- fullyQualifiedName: 'accountHolders.simulateEnrollmentDocumentReview',
- httpMethod: 'post',
- httpPath: '/v1/simulate/account_holders/enrollment_document_review',
- },
- {
- clientCallName: 'client.accountHolders.simulateEnrollmentReview',
- fullyQualifiedName: 'accountHolders.simulateEnrollmentReview',
- httpMethod: 'post',
- httpPath: '/v1/simulate/account_holders/enrollment_review',
- },
- {
- clientCallName: 'client.accountHolders.uploadDocument',
- fullyQualifiedName: 'accountHolders.uploadDocument',
- httpMethod: 'post',
- httpPath: '/v1/account_holders/{account_holder_token}/documents',
- },
- {
- clientCallName: 'client.accountHolders.entities.create',
- fullyQualifiedName: 'accountHolders.entities.create',
- httpMethod: 'post',
- httpPath: '/v1/account_holders/{account_holder_token}/entities',
- },
- {
- clientCallName: 'client.accountHolders.entities.delete',
- fullyQualifiedName: 'accountHolders.entities.delete',
- httpMethod: 'delete',
- httpPath: '/v1/account_holders/{account_holder_token}/entities/{entity_token}',
- },
- {
- clientCallName: 'client.authRules.v2.create',
- fullyQualifiedName: 'authRules.v2.create',
- httpMethod: 'post',
- httpPath: '/v2/auth_rules',
- },
- {
- clientCallName: 'client.authRules.v2.retrieve',
- fullyQualifiedName: 'authRules.v2.retrieve',
- httpMethod: 'get',
- httpPath: '/v2/auth_rules/{auth_rule_token}',
- },
- {
- clientCallName: 'client.authRules.v2.update',
- fullyQualifiedName: 'authRules.v2.update',
- httpMethod: 'patch',
- httpPath: '/v2/auth_rules/{auth_rule_token}',
- },
- {
- clientCallName: 'client.authRules.v2.list',
- fullyQualifiedName: 'authRules.v2.list',
- httpMethod: 'get',
- httpPath: '/v2/auth_rules',
- },
- {
- clientCallName: 'client.authRules.v2.delete',
- fullyQualifiedName: 'authRules.v2.delete',
- httpMethod: 'delete',
- httpPath: '/v2/auth_rules/{auth_rule_token}',
- },
- {
- clientCallName: 'client.authRules.v2.draft',
- fullyQualifiedName: 'authRules.v2.draft',
- httpMethod: 'post',
- httpPath: '/v2/auth_rules/{auth_rule_token}/draft',
- },
- {
- clientCallName: 'client.authRules.v2.listResults',
- fullyQualifiedName: 'authRules.v2.listResults',
- httpMethod: 'get',
- httpPath: '/v2/auth_rules/results',
- },
- {
- clientCallName: 'client.authRules.v2.promote',
- fullyQualifiedName: 'authRules.v2.promote',
- httpMethod: 'post',
- httpPath: '/v2/auth_rules/{auth_rule_token}/promote',
- },
- {
- clientCallName: 'client.authRules.v2.retrieveFeatures',
- fullyQualifiedName: 'authRules.v2.retrieveFeatures',
- httpMethod: 'get',
- httpPath: '/v2/auth_rules/{auth_rule_token}/features',
- },
- {
- clientCallName: 'client.authRules.v2.retrieveReport',
- fullyQualifiedName: 'authRules.v2.retrieveReport',
- httpMethod: 'get',
- httpPath: '/v2/auth_rules/{auth_rule_token}/report',
- },
- {
- clientCallName: 'client.authRules.v2.backtests.create',
- fullyQualifiedName: 'authRules.v2.backtests.create',
- httpMethod: 'post',
- httpPath: '/v2/auth_rules/{auth_rule_token}/backtests',
- },
- {
- clientCallName: 'client.authRules.v2.backtests.retrieve',
- fullyQualifiedName: 'authRules.v2.backtests.retrieve',
- httpMethod: 'get',
- httpPath: '/v2/auth_rules/{auth_rule_token}/backtests/{auth_rule_backtest_token}',
- },
- {
- clientCallName: 'client.authStreamEnrollment.retrieveSecret',
- fullyQualifiedName: 'authStreamEnrollment.retrieveSecret',
- httpMethod: 'get',
- httpPath: '/v1/auth_stream/secret',
- },
- {
- clientCallName: 'client.authStreamEnrollment.rotateSecret',
- fullyQualifiedName: 'authStreamEnrollment.rotateSecret',
- httpMethod: 'post',
- httpPath: '/v1/auth_stream/secret/rotate',
- },
- {
- clientCallName: 'client.tokenizationDecisioning.retrieveSecret',
- fullyQualifiedName: 'tokenizationDecisioning.retrieveSecret',
- httpMethod: 'get',
- httpPath: '/v1/tokenization_decisioning/secret',
- },
- {
- clientCallName: 'client.tokenizationDecisioning.rotateSecret',
- fullyQualifiedName: 'tokenizationDecisioning.rotateSecret',
- httpMethod: 'post',
- httpPath: '/v1/tokenization_decisioning/secret/rotate',
- },
- {
- clientCallName: 'client.tokenizations.retrieve',
- fullyQualifiedName: 'tokenizations.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/tokenizations/{tokenization_token}',
- },
- {
- clientCallName: 'client.tokenizations.list',
- fullyQualifiedName: 'tokenizations.list',
- httpMethod: 'get',
- httpPath: '/v1/tokenizations',
- },
- {
- clientCallName: 'client.tokenizations.activate',
- fullyQualifiedName: 'tokenizations.activate',
- httpMethod: 'post',
- httpPath: '/v1/tokenizations/{tokenization_token}/activate',
- },
- {
- clientCallName: 'client.tokenizations.deactivate',
- fullyQualifiedName: 'tokenizations.deactivate',
- httpMethod: 'post',
- httpPath: '/v1/tokenizations/{tokenization_token}/deactivate',
- },
- {
- clientCallName: 'client.tokenizations.pause',
- fullyQualifiedName: 'tokenizations.pause',
- httpMethod: 'post',
- httpPath: '/v1/tokenizations/{tokenization_token}/pause',
- },
- {
- clientCallName: 'client.tokenizations.resendActivationCode',
- fullyQualifiedName: 'tokenizations.resendActivationCode',
- httpMethod: 'post',
- httpPath: '/v1/tokenizations/{tokenization_token}/resend_activation_code',
- },
- {
- clientCallName: 'client.tokenizations.simulate',
- fullyQualifiedName: 'tokenizations.simulate',
- httpMethod: 'post',
- httpPath: '/v1/simulate/tokenizations',
- },
- {
- clientCallName: 'client.tokenizations.unpause',
- fullyQualifiedName: 'tokenizations.unpause',
- httpMethod: 'post',
- httpPath: '/v1/tokenizations/{tokenization_token}/unpause',
- },
- {
- clientCallName: 'client.tokenizations.updateDigitalCardArt',
- fullyQualifiedName: 'tokenizations.updateDigitalCardArt',
- httpMethod: 'post',
- httpPath: '/v1/tokenizations/{tokenization_token}/update_digital_card_art',
- },
- {
- clientCallName: 'client.cards.create',
- fullyQualifiedName: 'cards.create',
- httpMethod: 'post',
- httpPath: '/v1/cards',
- },
- {
- clientCallName: 'client.cards.retrieve',
- fullyQualifiedName: 'cards.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/cards/{card_token}',
- },
- {
- clientCallName: 'client.cards.update',
- fullyQualifiedName: 'cards.update',
- httpMethod: 'patch',
- httpPath: '/v1/cards/{card_token}',
- },
- {
- clientCallName: 'client.cards.list',
- fullyQualifiedName: 'cards.list',
- httpMethod: 'get',
- httpPath: '/v1/cards',
- },
- {
- clientCallName: 'client.cards.convertPhysical',
- fullyQualifiedName: 'cards.convertPhysical',
- httpMethod: 'post',
- httpPath: '/v1/cards/{card_token}/convert_physical',
- },
- {
- clientCallName: 'client.cards.embed',
- fullyQualifiedName: 'cards.embed',
- httpMethod: 'get',
- httpPath: '/v1/embed/card',
- },
- {
- clientCallName: 'client.cards.provision',
- fullyQualifiedName: 'cards.provision',
- httpMethod: 'post',
- httpPath: '/v1/cards/{card_token}/provision',
- },
- {
- clientCallName: 'client.cards.reissue',
- fullyQualifiedName: 'cards.reissue',
- httpMethod: 'post',
- httpPath: '/v1/cards/{card_token}/reissue',
- },
- {
- clientCallName: 'client.cards.renew',
- fullyQualifiedName: 'cards.renew',
- httpMethod: 'post',
- httpPath: '/v1/cards/{card_token}/renew',
- },
- {
- clientCallName: 'client.cards.retrieveSpendLimits',
- fullyQualifiedName: 'cards.retrieveSpendLimits',
- httpMethod: 'get',
- httpPath: '/v1/cards/{card_token}/spend_limits',
- },
- {
- clientCallName: 'client.cards.searchByPan',
- fullyQualifiedName: 'cards.searchByPan',
- httpMethod: 'post',
- httpPath: '/v1/cards/search_by_pan',
- },
- {
- clientCallName: 'client.cards.webProvision',
- fullyQualifiedName: 'cards.webProvision',
- httpMethod: 'post',
- httpPath: '/v1/cards/{card_token}/web_provision',
- },
- {
- clientCallName: 'client.cards.balances.list',
- fullyQualifiedName: 'cards.balances.list',
- httpMethod: 'get',
- httpPath: '/v1/cards/{card_token}/balances',
- },
- {
- clientCallName: 'client.cards.financialTransactions.retrieve',
- fullyQualifiedName: 'cards.financialTransactions.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/cards/{card_token}/financial_transactions/{financial_transaction_token}',
- },
- {
- clientCallName: 'client.cards.financialTransactions.list',
- fullyQualifiedName: 'cards.financialTransactions.list',
- httpMethod: 'get',
- httpPath: '/v1/cards/{card_token}/financial_transactions',
- },
- {
- clientCallName: 'client.cardBulkOrders.create',
- fullyQualifiedName: 'cardBulkOrders.create',
- httpMethod: 'post',
- httpPath: '/v1/card_bulk_orders',
- },
- {
- clientCallName: 'client.cardBulkOrders.retrieve',
- fullyQualifiedName: 'cardBulkOrders.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/card_bulk_orders/{bulk_order_token}',
- },
- {
- clientCallName: 'client.cardBulkOrders.update',
- fullyQualifiedName: 'cardBulkOrders.update',
- httpMethod: 'patch',
- httpPath: '/v1/card_bulk_orders/{bulk_order_token}',
- },
- {
- clientCallName: 'client.cardBulkOrders.list',
- fullyQualifiedName: 'cardBulkOrders.list',
- httpMethod: 'get',
- httpPath: '/v1/card_bulk_orders',
- },
- {
- clientCallName: 'client.balances.list',
- fullyQualifiedName: 'balances.list',
- httpMethod: 'get',
- httpPath: '/v1/balances',
- },
- {
- clientCallName: 'client.disputes.create',
- fullyQualifiedName: 'disputes.create',
- httpMethod: 'post',
- httpPath: '/v1/disputes',
- },
- {
- clientCallName: 'client.disputes.retrieve',
- fullyQualifiedName: 'disputes.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/disputes/{dispute_token}',
- },
- {
- clientCallName: 'client.disputes.update',
- fullyQualifiedName: 'disputes.update',
- httpMethod: 'patch',
- httpPath: '/v1/disputes/{dispute_token}',
- },
- {
- clientCallName: 'client.disputes.list',
- fullyQualifiedName: 'disputes.list',
- httpMethod: 'get',
- httpPath: '/v1/disputes',
- },
- {
- clientCallName: 'client.disputes.delete',
- fullyQualifiedName: 'disputes.delete',
- httpMethod: 'delete',
- httpPath: '/v1/disputes/{dispute_token}',
- },
- {
- clientCallName: 'client.disputes.deleteEvidence',
- fullyQualifiedName: 'disputes.deleteEvidence',
- httpMethod: 'delete',
- httpPath: '/v1/disputes/{dispute_token}/evidences/{evidence_token}',
- },
- {
- clientCallName: 'client.disputes.initiateEvidenceUpload',
- fullyQualifiedName: 'disputes.initiateEvidenceUpload',
- httpMethod: 'post',
- httpPath: '/v1/disputes/{dispute_token}/evidences',
- },
- {
- clientCallName: 'client.disputes.listEvidences',
- fullyQualifiedName: 'disputes.listEvidences',
- httpMethod: 'get',
- httpPath: '/v1/disputes/{dispute_token}/evidences',
- },
- {
- clientCallName: 'client.disputes.retrieveEvidence',
- fullyQualifiedName: 'disputes.retrieveEvidence',
- httpMethod: 'get',
- httpPath: '/v1/disputes/{dispute_token}/evidences/{evidence_token}',
- },
- {
- clientCallName: 'client.disputesV2.retrieve',
- fullyQualifiedName: 'disputesV2.retrieve',
- httpMethod: 'get',
- httpPath: '/v2/disputes/{dispute_token}',
- },
- {
- clientCallName: 'client.disputesV2.list',
- fullyQualifiedName: 'disputesV2.list',
- httpMethod: 'get',
- httpPath: '/v2/disputes',
- },
- {
- clientCallName: 'client.events.retrieve',
- fullyQualifiedName: 'events.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/events/{event_token}',
- },
- {
- clientCallName: 'client.events.list',
- fullyQualifiedName: 'events.list',
- httpMethod: 'get',
- httpPath: '/v1/events',
- },
- {
- clientCallName: 'client.events.listAttempts',
- fullyQualifiedName: 'events.listAttempts',
- httpMethod: 'get',
- httpPath: '/v1/events/{event_token}/attempts',
- },
- {
- clientCallName: 'client.events.subscriptions.create',
- fullyQualifiedName: 'events.subscriptions.create',
- httpMethod: 'post',
- httpPath: '/v1/event_subscriptions',
- },
- {
- clientCallName: 'client.events.subscriptions.retrieve',
- fullyQualifiedName: 'events.subscriptions.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/event_subscriptions/{event_subscription_token}',
- },
- {
- clientCallName: 'client.events.subscriptions.update',
- fullyQualifiedName: 'events.subscriptions.update',
- httpMethod: 'patch',
- httpPath: '/v1/event_subscriptions/{event_subscription_token}',
- },
- {
- clientCallName: 'client.events.subscriptions.list',
- fullyQualifiedName: 'events.subscriptions.list',
- httpMethod: 'get',
- httpPath: '/v1/event_subscriptions',
- },
- {
- clientCallName: 'client.events.subscriptions.delete',
- fullyQualifiedName: 'events.subscriptions.delete',
- httpMethod: 'delete',
- httpPath: '/v1/event_subscriptions/{event_subscription_token}',
- },
- {
- clientCallName: 'client.events.subscriptions.listAttempts',
- fullyQualifiedName: 'events.subscriptions.listAttempts',
- httpMethod: 'get',
- httpPath: '/v1/event_subscriptions/{event_subscription_token}/attempts',
- },
- {
- clientCallName: 'client.events.subscriptions.recover',
- fullyQualifiedName: 'events.subscriptions.recover',
- httpMethod: 'post',
- httpPath: '/v1/event_subscriptions/{event_subscription_token}/recover',
- },
- {
- clientCallName: 'client.events.subscriptions.replayMissing',
- fullyQualifiedName: 'events.subscriptions.replayMissing',
- httpMethod: 'post',
- httpPath: '/v1/event_subscriptions/{event_subscription_token}/replay_missing',
- },
- {
- clientCallName: 'client.events.subscriptions.retrieveSecret',
- fullyQualifiedName: 'events.subscriptions.retrieveSecret',
- httpMethod: 'get',
- httpPath: '/v1/event_subscriptions/{event_subscription_token}/secret',
- },
- {
- clientCallName: 'client.events.subscriptions.rotateSecret',
- fullyQualifiedName: 'events.subscriptions.rotateSecret',
- httpMethod: 'post',
- httpPath: '/v1/event_subscriptions/{event_subscription_token}/secret/rotate',
- },
- {
- clientCallName: 'client.events.subscriptions.sendSimulatedExample',
- fullyQualifiedName: 'events.subscriptions.sendSimulatedExample',
- httpMethod: 'post',
- httpPath: '/v1/simulate/event_subscriptions/{event_subscription_token}/send_example',
- },
- {
- clientCallName: 'client.events.eventSubscriptions.resend',
- fullyQualifiedName: 'events.eventSubscriptions.resend',
- httpMethod: 'post',
- httpPath: '/v1/events/{event_token}/event_subscriptions/{event_subscription_token}/resend',
- },
- {
- clientCallName: 'client.transfers.create',
- fullyQualifiedName: 'transfers.create',
- httpMethod: 'post',
- httpPath: '/v1/transfer',
- },
- {
- clientCallName: 'client.financialAccounts.create',
- fullyQualifiedName: 'financialAccounts.create',
- httpMethod: 'post',
- httpPath: '/v1/financial_accounts',
- },
- {
- clientCallName: 'client.financialAccounts.retrieve',
- fullyQualifiedName: 'financialAccounts.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/financial_accounts/{financial_account_token}',
- },
- {
- clientCallName: 'client.financialAccounts.update',
- fullyQualifiedName: 'financialAccounts.update',
- httpMethod: 'patch',
- httpPath: '/v1/financial_accounts/{financial_account_token}',
- },
- {
- clientCallName: 'client.financialAccounts.list',
- fullyQualifiedName: 'financialAccounts.list',
- httpMethod: 'get',
- httpPath: '/v1/financial_accounts',
- },
- {
- clientCallName: 'client.financialAccounts.registerAccountNumber',
- fullyQualifiedName: 'financialAccounts.registerAccountNumber',
- httpMethod: 'post',
- httpPath: '/v1/financial_accounts/{financial_account_token}/register_account_number',
- },
- {
- clientCallName: 'client.financialAccounts.updateStatus',
- fullyQualifiedName: 'financialAccounts.updateStatus',
- httpMethod: 'post',
- httpPath: '/v1/financial_accounts/{financial_account_token}/update_status',
- },
- {
- clientCallName: 'client.financialAccounts.balances.list',
- fullyQualifiedName: 'financialAccounts.balances.list',
- httpMethod: 'get',
- httpPath: '/v1/financial_accounts/{financial_account_token}/balances',
- },
- {
- clientCallName: 'client.financialAccounts.financialTransactions.retrieve',
- fullyQualifiedName: 'financialAccounts.financialTransactions.retrieve',
- httpMethod: 'get',
- httpPath:
- '/v1/financial_accounts/{financial_account_token}/financial_transactions/{financial_transaction_token}',
- },
- {
- clientCallName: 'client.financialAccounts.financialTransactions.list',
- fullyQualifiedName: 'financialAccounts.financialTransactions.list',
- httpMethod: 'get',
- httpPath: '/v1/financial_accounts/{financial_account_token}/financial_transactions',
- },
- {
- clientCallName: 'client.financialAccounts.creditConfiguration.retrieve',
- fullyQualifiedName: 'financialAccounts.creditConfiguration.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/financial_accounts/{financial_account_token}/credit_configuration',
- },
- {
- clientCallName: 'client.financialAccounts.creditConfiguration.update',
- fullyQualifiedName: 'financialAccounts.creditConfiguration.update',
- httpMethod: 'patch',
- httpPath: '/v1/financial_accounts/{financial_account_token}/credit_configuration',
- },
- {
- clientCallName: 'client.financialAccounts.statements.retrieve',
- fullyQualifiedName: 'financialAccounts.statements.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/financial_accounts/{financial_account_token}/statements/{statement_token}',
- },
- {
- clientCallName: 'client.financialAccounts.statements.list',
- fullyQualifiedName: 'financialAccounts.statements.list',
- httpMethod: 'get',
- httpPath: '/v1/financial_accounts/{financial_account_token}/statements',
- },
- {
- clientCallName: 'client.financialAccounts.statements.lineItems.list',
- fullyQualifiedName: 'financialAccounts.statements.lineItems.list',
- httpMethod: 'get',
- httpPath: '/v1/financial_accounts/{financial_account_token}/statements/{statement_token}/line_items',
- },
- {
- clientCallName: 'client.financialAccounts.loanTapes.retrieve',
- fullyQualifiedName: 'financialAccounts.loanTapes.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/financial_accounts/{financial_account_token}/loan_tapes/{loan_tape_token}',
- },
- {
- clientCallName: 'client.financialAccounts.loanTapes.list',
- fullyQualifiedName: 'financialAccounts.loanTapes.list',
- httpMethod: 'get',
- httpPath: '/v1/financial_accounts/{financial_account_token}/loan_tapes',
- },
- {
- clientCallName: 'client.financialAccounts.loanTapeConfiguration.retrieve',
- fullyQualifiedName: 'financialAccounts.loanTapeConfiguration.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/financial_accounts/{financial_account_token}/loan_tape_configuration',
- },
- {
- clientCallName: 'client.financialAccounts.interestTierSchedule.create',
- fullyQualifiedName: 'financialAccounts.interestTierSchedule.create',
- httpMethod: 'post',
- httpPath: '/v1/financial_accounts/{financial_account_token}/interest_tier_schedule',
- },
- {
- clientCallName: 'client.financialAccounts.interestTierSchedule.retrieve',
- fullyQualifiedName: 'financialAccounts.interestTierSchedule.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/financial_accounts/{financial_account_token}/interest_tier_schedule/{effective_date}',
- },
- {
- clientCallName: 'client.financialAccounts.interestTierSchedule.update',
- fullyQualifiedName: 'financialAccounts.interestTierSchedule.update',
- httpMethod: 'put',
- httpPath: '/v1/financial_accounts/{financial_account_token}/interest_tier_schedule/{effective_date}',
- },
- {
- clientCallName: 'client.financialAccounts.interestTierSchedule.list',
- fullyQualifiedName: 'financialAccounts.interestTierSchedule.list',
- httpMethod: 'get',
- httpPath: '/v1/financial_accounts/{financial_account_token}/interest_tier_schedule',
- },
- {
- clientCallName: 'client.financialAccounts.interestTierSchedule.delete',
- fullyQualifiedName: 'financialAccounts.interestTierSchedule.delete',
- httpMethod: 'delete',
- httpPath: '/v1/financial_accounts/{financial_account_token}/interest_tier_schedule/{effective_date}',
- },
- {
- clientCallName: 'client.transactions.retrieve',
- fullyQualifiedName: 'transactions.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/transactions/{transaction_token}',
- },
- {
- clientCallName: 'client.transactions.list',
- fullyQualifiedName: 'transactions.list',
- httpMethod: 'get',
- httpPath: '/v1/transactions',
- },
- {
- clientCallName: 'client.transactions.expireAuthorization',
- fullyQualifiedName: 'transactions.expireAuthorization',
- httpMethod: 'post',
- httpPath: '/v1/transactions/{transaction_token}/expire_authorization',
- },
- {
- clientCallName: 'client.transactions.simulateAuthorization',
- fullyQualifiedName: 'transactions.simulateAuthorization',
- httpMethod: 'post',
- httpPath: '/v1/simulate/authorize',
- },
- {
- clientCallName: 'client.transactions.simulateAuthorizationAdvice',
- fullyQualifiedName: 'transactions.simulateAuthorizationAdvice',
- httpMethod: 'post',
- httpPath: '/v1/simulate/authorization_advice',
- },
- {
- clientCallName: 'client.transactions.simulateClearing',
- fullyQualifiedName: 'transactions.simulateClearing',
- httpMethod: 'post',
- httpPath: '/v1/simulate/clearing',
- },
- {
- clientCallName: 'client.transactions.simulateCreditAuthorization',
- fullyQualifiedName: 'transactions.simulateCreditAuthorization',
- httpMethod: 'post',
- httpPath: '/v1/simulate/credit_authorization_advice',
- },
- {
- clientCallName: 'client.transactions.simulateCreditAuthorizationAdvice',
- fullyQualifiedName: 'transactions.simulateCreditAuthorizationAdvice',
- httpMethod: 'post',
- httpPath: '/v1/simulate/credit_authorization_advice',
- },
- {
- clientCallName: 'client.transactions.simulateReturn',
- fullyQualifiedName: 'transactions.simulateReturn',
- httpMethod: 'post',
- httpPath: '/v1/simulate/return',
- },
- {
- clientCallName: 'client.transactions.simulateReturnReversal',
- fullyQualifiedName: 'transactions.simulateReturnReversal',
- httpMethod: 'post',
- httpPath: '/v1/simulate/return_reversal',
- },
- {
- clientCallName: 'client.transactions.simulateVoid',
- fullyQualifiedName: 'transactions.simulateVoid',
- httpMethod: 'post',
- httpPath: '/v1/simulate/void',
- },
- {
- clientCallName: 'client.transactions.enhancedCommercialData.retrieve',
- fullyQualifiedName: 'transactions.enhancedCommercialData.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/transactions/{transaction_token}/enhanced_commercial_data',
- },
- {
- clientCallName: 'client.transactions.events.enhancedCommercialData.retrieve',
- fullyQualifiedName: 'transactions.events.enhancedCommercialData.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/transactions/events/{event_token}/enhanced_commercial_data',
- },
- {
- clientCallName: 'client.responderEndpoints.create',
- fullyQualifiedName: 'responderEndpoints.create',
- httpMethod: 'post',
- httpPath: '/v1/responder_endpoints',
- },
- {
- clientCallName: 'client.responderEndpoints.delete',
- fullyQualifiedName: 'responderEndpoints.delete',
- httpMethod: 'delete',
- httpPath: '/v1/responder_endpoints',
- },
- {
- clientCallName: 'client.responderEndpoints.checkStatus',
- fullyQualifiedName: 'responderEndpoints.checkStatus',
- httpMethod: 'get',
- httpPath: '/v1/responder_endpoints',
- },
- {
- clientCallName: 'client.externalBankAccounts.create',
- fullyQualifiedName: 'externalBankAccounts.create',
- httpMethod: 'post',
- httpPath: '/v1/external_bank_accounts',
- },
- {
- clientCallName: 'client.externalBankAccounts.retrieve',
- fullyQualifiedName: 'externalBankAccounts.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/external_bank_accounts/{external_bank_account_token}',
- },
- {
- clientCallName: 'client.externalBankAccounts.update',
- fullyQualifiedName: 'externalBankAccounts.update',
- httpMethod: 'patch',
- httpPath: '/v1/external_bank_accounts/{external_bank_account_token}',
- },
- {
- clientCallName: 'client.externalBankAccounts.list',
- fullyQualifiedName: 'externalBankAccounts.list',
- httpMethod: 'get',
- httpPath: '/v1/external_bank_accounts',
- },
- {
- clientCallName: 'client.externalBankAccounts.retryMicroDeposits',
- fullyQualifiedName: 'externalBankAccounts.retryMicroDeposits',
- httpMethod: 'post',
- httpPath: '/v1/external_bank_accounts/{external_bank_account_token}/retry_micro_deposits',
- },
- {
- clientCallName: 'client.externalBankAccounts.retryPrenote',
- fullyQualifiedName: 'externalBankAccounts.retryPrenote',
- httpMethod: 'post',
- httpPath: '/v1/external_bank_accounts/{external_bank_account_token}/retry_prenote',
- },
- {
- clientCallName: 'client.externalBankAccounts.unpause',
- fullyQualifiedName: 'externalBankAccounts.unpause',
- httpMethod: 'post',
- httpPath: '/v1/external_bank_accounts/{external_bank_account_token}/unpause',
- },
- {
- clientCallName: 'client.externalBankAccounts.microDeposits.create',
- fullyQualifiedName: 'externalBankAccounts.microDeposits.create',
- httpMethod: 'post',
- httpPath: '/v1/external_bank_accounts/{external_bank_account_token}/micro_deposits',
- },
- {
- clientCallName: 'client.payments.create',
- fullyQualifiedName: 'payments.create',
- httpMethod: 'post',
- httpPath: '/v1/payments',
- },
- {
- clientCallName: 'client.payments.retrieve',
- fullyQualifiedName: 'payments.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/payments/{payment_token}',
- },
- {
- clientCallName: 'client.payments.list',
- fullyQualifiedName: 'payments.list',
- httpMethod: 'get',
- httpPath: '/v1/payments',
- },
- {
- clientCallName: 'client.payments.retry',
- fullyQualifiedName: 'payments.retry',
- httpMethod: 'post',
- httpPath: '/v1/payments/{payment_token}/retry',
- },
- {
- clientCallName: 'client.payments.return',
- fullyQualifiedName: 'payments.return',
- httpMethod: 'post',
- httpPath: '/v1/payments/{payment_token}/return',
- },
- {
- clientCallName: 'client.payments.simulateAction',
- fullyQualifiedName: 'payments.simulateAction',
- httpMethod: 'post',
- httpPath: '/v1/simulate/payments/{payment_token}/action',
- },
- {
- clientCallName: 'client.payments.simulateReceipt',
- fullyQualifiedName: 'payments.simulateReceipt',
- httpMethod: 'post',
- httpPath: '/v1/simulate/payments/receipt',
- },
- {
- clientCallName: 'client.payments.simulateRelease',
- fullyQualifiedName: 'payments.simulateRelease',
- httpMethod: 'post',
- httpPath: '/v1/simulate/payments/release',
- },
- {
- clientCallName: 'client.payments.simulateReturn',
- fullyQualifiedName: 'payments.simulateReturn',
- httpMethod: 'post',
- httpPath: '/v1/simulate/payments/return',
- },
- {
- clientCallName: 'client.threeDS.authentication.retrieve',
- fullyQualifiedName: 'threeDS.authentication.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/three_ds_authentication/{three_ds_authentication_token}',
- },
- {
- clientCallName: 'client.threeDS.authentication.simulate',
- fullyQualifiedName: 'threeDS.authentication.simulate',
- httpMethod: 'post',
- httpPath: '/v1/three_ds_authentication/simulate',
- },
- {
- clientCallName: 'client.threeDS.authentication.simulateOtpEntry',
- fullyQualifiedName: 'threeDS.authentication.simulateOtpEntry',
- httpMethod: 'post',
- httpPath: '/v1/three_ds_decisioning/simulate/enter_otp',
- },
- {
- clientCallName: 'client.threeDS.decisioning.challengeResponse',
- fullyQualifiedName: 'threeDS.decisioning.challengeResponse',
- httpMethod: 'post',
- httpPath: '/v1/three_ds_decisioning/challenge_response',
- },
- {
- clientCallName: 'client.threeDS.decisioning.retrieveSecret',
- fullyQualifiedName: 'threeDS.decisioning.retrieveSecret',
- httpMethod: 'get',
- httpPath: '/v1/three_ds_decisioning/secret',
- },
- {
- clientCallName: 'client.threeDS.decisioning.rotateSecret',
- fullyQualifiedName: 'threeDS.decisioning.rotateSecret',
- httpMethod: 'post',
- httpPath: '/v1/three_ds_decisioning/secret/rotate',
- },
- {
- clientCallName: 'client.reports.settlement.listDetails',
- fullyQualifiedName: 'reports.settlement.listDetails',
- httpMethod: 'get',
- httpPath: '/v1/reports/settlement/details/{report_date}',
- },
- {
- clientCallName: 'client.reports.settlement.summary',
- fullyQualifiedName: 'reports.settlement.summary',
- httpMethod: 'get',
- httpPath: '/v1/reports/settlement/summary/{report_date}',
- },
- {
- clientCallName: 'client.reports.settlement.networkTotals.retrieve',
- fullyQualifiedName: 'reports.settlement.networkTotals.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/reports/settlement/network_totals/{token}',
- },
- {
- clientCallName: 'client.reports.settlement.networkTotals.list',
- fullyQualifiedName: 'reports.settlement.networkTotals.list',
- httpMethod: 'get',
- httpPath: '/v1/reports/settlement/network_totals',
- },
- {
- clientCallName: 'client.cardPrograms.retrieve',
- fullyQualifiedName: 'cardPrograms.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/card_programs/{card_program_token}',
- },
- {
- clientCallName: 'client.cardPrograms.list',
- fullyQualifiedName: 'cardPrograms.list',
- httpMethod: 'get',
- httpPath: '/v1/card_programs',
- },
- {
- clientCallName: 'client.digitalCardArt.retrieve',
- fullyQualifiedName: 'digitalCardArt.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/digital_card_art/{digital_card_art_token}',
- },
- {
- clientCallName: 'client.digitalCardArt.list',
- fullyQualifiedName: 'digitalCardArt.list',
- httpMethod: 'get',
- httpPath: '/v1/digital_card_art',
- },
- {
- clientCallName: 'client.bookTransfers.create',
- fullyQualifiedName: 'bookTransfers.create',
- httpMethod: 'post',
- httpPath: '/v1/book_transfers',
- },
- {
- clientCallName: 'client.bookTransfers.retrieve',
- fullyQualifiedName: 'bookTransfers.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/book_transfers/{book_transfer_token}',
- },
- {
- clientCallName: 'client.bookTransfers.list',
- fullyQualifiedName: 'bookTransfers.list',
- httpMethod: 'get',
- httpPath: '/v1/book_transfers',
- },
- {
- clientCallName: 'client.bookTransfers.retry',
- fullyQualifiedName: 'bookTransfers.retry',
- httpMethod: 'post',
- httpPath: '/v1/book_transfers/{book_transfer_token}/retry',
- },
- {
- clientCallName: 'client.bookTransfers.reverse',
- fullyQualifiedName: 'bookTransfers.reverse',
- httpMethod: 'post',
- httpPath: '/v1/book_transfers/{book_transfer_token}/reverse',
- },
- {
- clientCallName: 'client.creditProducts.extendedCredit.retrieve',
- fullyQualifiedName: 'creditProducts.extendedCredit.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/credit_products/{credit_product_token}/extended_credit',
- },
- {
- clientCallName: 'client.creditProducts.primeRates.create',
- fullyQualifiedName: 'creditProducts.primeRates.create',
- httpMethod: 'post',
- httpPath: '/v1/credit_products/{credit_product_token}/prime_rates',
- },
- {
- clientCallName: 'client.creditProducts.primeRates.retrieve',
- fullyQualifiedName: 'creditProducts.primeRates.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/credit_products/{credit_product_token}/prime_rates',
- },
- {
- clientCallName: 'client.externalPayments.create',
- fullyQualifiedName: 'externalPayments.create',
- httpMethod: 'post',
- httpPath: '/v1/external_payments',
- },
- {
- clientCallName: 'client.externalPayments.retrieve',
- fullyQualifiedName: 'externalPayments.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/external_payments/{external_payment_token}',
- },
- {
- clientCallName: 'client.externalPayments.list',
- fullyQualifiedName: 'externalPayments.list',
- httpMethod: 'get',
- httpPath: '/v1/external_payments',
- },
- {
- clientCallName: 'client.externalPayments.cancel',
- fullyQualifiedName: 'externalPayments.cancel',
- httpMethod: 'post',
- httpPath: '/v1/external_payments/{external_payment_token}/cancel',
- },
- {
- clientCallName: 'client.externalPayments.release',
- fullyQualifiedName: 'externalPayments.release',
- httpMethod: 'post',
- httpPath: '/v1/external_payments/{external_payment_token}/release',
- },
- {
- clientCallName: 'client.externalPayments.reverse',
- fullyQualifiedName: 'externalPayments.reverse',
- httpMethod: 'post',
- httpPath: '/v1/external_payments/{external_payment_token}/reverse',
- },
- {
- clientCallName: 'client.externalPayments.settle',
- fullyQualifiedName: 'externalPayments.settle',
- httpMethod: 'post',
- httpPath: '/v1/external_payments/{external_payment_token}/settle',
- },
- {
- clientCallName: 'client.managementOperations.create',
- fullyQualifiedName: 'managementOperations.create',
- httpMethod: 'post',
- httpPath: '/v1/management_operations',
- },
- {
- clientCallName: 'client.managementOperations.retrieve',
- fullyQualifiedName: 'managementOperations.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/management_operations/{management_operation_token}',
- },
- {
- clientCallName: 'client.managementOperations.list',
- fullyQualifiedName: 'managementOperations.list',
- httpMethod: 'get',
- httpPath: '/v1/management_operations',
- },
- {
- clientCallName: 'client.managementOperations.reverse',
- fullyQualifiedName: 'managementOperations.reverse',
- httpMethod: 'post',
- httpPath: '/v1/management_operations/{management_operation_token}/reverse',
- },
- {
- clientCallName: 'client.fundingEvents.retrieve',
- fullyQualifiedName: 'fundingEvents.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/funding_events/{funding_event_token}',
- },
- {
- clientCallName: 'client.fundingEvents.list',
- fullyQualifiedName: 'fundingEvents.list',
- httpMethod: 'get',
- httpPath: '/v1/funding_events',
- },
- {
- clientCallName: 'client.fundingEvents.retrieveDetails',
- fullyQualifiedName: 'fundingEvents.retrieveDetails',
- httpMethod: 'get',
- httpPath: '/v1/funding_events/{funding_event_token}/details',
- },
- {
- clientCallName: 'client.fraud.transactions.retrieve',
- fullyQualifiedName: 'fraud.transactions.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/fraud/transactions/{transaction_token}',
- },
- {
- clientCallName: 'client.fraud.transactions.report',
- fullyQualifiedName: 'fraud.transactions.report',
- httpMethod: 'post',
- httpPath: '/v1/fraud/transactions/{transaction_token}',
- },
- {
- clientCallName: 'client.networkPrograms.retrieve',
- fullyQualifiedName: 'networkPrograms.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/network_programs/{network_program_token}',
- },
- {
- clientCallName: 'client.networkPrograms.list',
- fullyQualifiedName: 'networkPrograms.list',
- httpMethod: 'get',
- httpPath: '/v1/network_programs',
- },
- {
- clientCallName: 'client.holds.create',
- fullyQualifiedName: 'holds.create',
- httpMethod: 'post',
- httpPath: '/v1/financial_accounts/{financial_account_token}/holds',
- },
- {
- clientCallName: 'client.holds.retrieve',
- fullyQualifiedName: 'holds.retrieve',
- httpMethod: 'get',
- httpPath: '/v1/holds/{hold_token}',
- },
- {
- clientCallName: 'client.holds.list',
- fullyQualifiedName: 'holds.list',
- httpMethod: 'get',
- httpPath: '/v1/financial_accounts/{financial_account_token}/holds',
- },
- {
- clientCallName: 'client.holds.void',
- fullyQualifiedName: 'holds.void',
- httpMethod: 'post',
- httpPath: '/v1/holds/{hold_token}/void',
- },
- {
- clientCallName: 'client.accountActivity.list',
- fullyQualifiedName: 'accountActivity.list',
- httpMethod: 'get',
- httpPath: '/v1/account_activity',
- },
- {
- clientCallName: 'client.accountActivity.retrieveTransaction',
- fullyQualifiedName: 'accountActivity.retrieveTransaction',
- httpMethod: 'get',
- httpPath: '/v1/account_activity/{transaction_token}',
- },
- {
- clientCallName: 'client.transferLimits.list',
- fullyQualifiedName: 'transferLimits.list',
- httpMethod: 'get',
- httpPath: '/v1/transfer_limits',
- },
- { clientCallName: 'client.webhooks.parsed', fullyQualifiedName: 'webhooks.parsed' },
-];
-
-function allowedMethodsForCodeTool(options: McpOptions | undefined): SdkMethod[] | undefined {
- if (!options) {
- return undefined;
- }
-
- let allowedMethods: SdkMethod[];
-
- if (options.codeAllowHttpGets || options.codeAllowedMethods) {
- // Start with nothing allowed and then add into it from options
- let allowedMethodsSet = new Set();
-
- if (options.codeAllowHttpGets) {
- // Add all methods that map to an HTTP GET
- sdkMethods
- .filter((method) => method.httpMethod === 'get')
- .forEach((method) => allowedMethodsSet.add(method));
- }
-
- if (options.codeAllowedMethods) {
- // Add all methods that match any of the allowed regexps
- const allowedRegexps = options.codeAllowedMethods.map((pattern) => {
- try {
- return new RegExp(pattern);
- } catch (e) {
- throw new Error(
- `Invalid regex pattern for allowed method: "${pattern}": ${e instanceof Error ? e.message : e}`,
- );
- }
- });
-
- sdkMethods
- .filter((method) => allowedRegexps.some((regexp) => regexp.test(method.fullyQualifiedName)))
- .forEach((method) => allowedMethodsSet.add(method));
- }
-
- allowedMethods = Array.from(allowedMethodsSet);
- } else {
- // Start with everything allowed
- allowedMethods = [...sdkMethods];
- }
-
- if (options.codeBlockedMethods) {
- // Filter down based on blocked regexps
- const blockedRegexps = options.codeBlockedMethods.map((pattern) => {
- try {
- return new RegExp(pattern);
- } catch (e) {
- throw new Error(
- `Invalid regex pattern for blocked method: "${pattern}": ${e instanceof Error ? e.message : e}`,
- );
- }
- });
-
- allowedMethods = allowedMethods.filter(
- (method) => !blockedRegexps.some((regexp) => regexp.test(method.fullyQualifiedName)),
- );
- }
-
- return allowedMethods;
-}
-
-export function blockedMethodsForCodeTool(options: McpOptions | undefined): SdkMethod[] | undefined {
- const allowedMethods = allowedMethodsForCodeTool(options);
- if (!allowedMethods) {
- return undefined;
- }
-
- const allowedSet = new Set(allowedMethods.map((method) => method.fullyQualifiedName));
-
- // Return any methods that are not explicitly allowed
- return sdkMethods.filter((method) => !allowedSet.has(method.fullyQualifiedName));
-}
diff --git a/packages/mcp-server/src/options.ts b/packages/mcp-server/src/options.ts
deleted file mode 100644
index b9e8e8a6..00000000
--- a/packages/mcp-server/src/options.ts
+++ /dev/null
@@ -1,161 +0,0 @@
-// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-import qs from 'qs';
-import yargs from 'yargs';
-import { hideBin } from 'yargs/helpers';
-import z from 'zod';
-import { readEnv } from './util';
-
-export type CLIOptions = McpOptions & {
- debug: boolean;
- logFormat: 'json' | 'pretty';
- transport: 'stdio' | 'http';
- port: number | undefined;
- socket: string | undefined;
-};
-
-export type McpOptions = {
- includeCodeTool?: boolean | undefined;
- includeDocsTools?: boolean | undefined;
- stainlessApiKey?: string | undefined;
- codeAllowHttpGets?: boolean | undefined;
- codeAllowedMethods?: string[] | undefined;
- codeBlockedMethods?: string[] | undefined;
- codeExecutionMode: McpCodeExecutionMode;
-};
-
-export type McpCodeExecutionMode = 'stainless-sandbox' | 'local';
-
-export function parseCLIOptions(): CLIOptions {
- const opts = yargs(hideBin(process.argv))
- .option('code-allow-http-gets', {
- type: 'boolean',
- description:
- 'Allow all code tool methods that map to HTTP GET operations. If all code-allow-* flags are unset, then everything is allowed.',
- })
- .option('code-allowed-methods', {
- type: 'string',
- array: true,
- description:
- 'Methods to explicitly allow for code tool. Evaluated as regular expressions against method fully qualified names. If all code-allow-* flags are unset, then everything is allowed.',
- })
- .option('code-blocked-methods', {
- type: 'string',
- array: true,
- description:
- 'Methods to explicitly block for code tool. Evaluated as regular expressions against method fully qualified names. If all code-allow-* flags are unset, then everything is allowed.',
- })
- .option('code-execution-mode', {
- type: 'string',
- choices: ['stainless-sandbox', 'local'],
- default: 'stainless-sandbox',
- description:
- "Where to run code execution in code tool; 'stainless-sandbox' will execute code in Stainless-hosted sandboxes whereas 'local' will execute code locally on the MCP server machine.",
- })
- .option('debug', { type: 'boolean', description: 'Enable debug logging' })
- .option('log-format', {
- type: 'string',
- choices: ['json', 'pretty'],
- description: 'Format for log output; defaults to json unless tty is detected',
- })
- .option('no-tools', {
- type: 'string',
- array: true,
- choices: ['code', 'docs'],
- description: 'Tools to explicitly disable',
- })
- .option('port', {
- type: 'number',
- default: 3000,
- description: 'Port to serve on if using http transport',
- })
- .option('socket', { type: 'string', description: 'Unix socket to serve on if using http transport' })
- .option('stainless-api-key', {
- type: 'string',
- default: readEnv('STAINLESS_API_KEY'),
- description:
- 'API key for Stainless. Used to authenticate requests to Stainless-hosted tools endpoints.',
- })
- .option('tools', {
- type: 'string',
- array: true,
- choices: ['code', 'docs'],
- description: 'Tools to explicitly enable',
- })
- .option('transport', {
- type: 'string',
- choices: ['stdio', 'http'],
- default: 'stdio',
- description: 'What transport to use; stdio for local servers or http for remote servers',
- })
- .env('MCP_SERVER')
- .version(true)
- .help();
-
- const argv = opts.parseSync();
-
- const shouldIncludeToolType = (toolType: 'code' | 'docs') =>
- argv.noTools?.includes(toolType) ? false
- : argv.tools?.includes(toolType) ? true
- : undefined;
-
- const includeCodeTool = shouldIncludeToolType('code');
- const includeDocsTools = shouldIncludeToolType('docs');
-
- const transport = argv.transport as 'stdio' | 'http';
- const logFormat =
- argv.logFormat ? (argv.logFormat as 'json' | 'pretty')
- : process.stderr.isTTY ? 'pretty'
- : 'json';
-
- return {
- ...(includeCodeTool !== undefined && { includeCodeTool }),
- ...(includeDocsTools !== undefined && { includeDocsTools }),
- debug: !!argv.debug,
- stainlessApiKey: argv.stainlessApiKey,
- codeAllowHttpGets: argv.codeAllowHttpGets,
- codeAllowedMethods: argv.codeAllowedMethods,
- codeBlockedMethods: argv.codeBlockedMethods,
- codeExecutionMode: argv.codeExecutionMode as McpCodeExecutionMode,
- transport,
- logFormat,
- port: argv.port,
- socket: argv.socket,
- };
-}
-
-const coerceArray = (zodType: T) =>
- z.preprocess(
- (val) =>
- Array.isArray(val) ? val
- : val ? [val]
- : val,
- z.array(zodType).optional(),
- );
-
-const QueryOptions = z.object({
- tools: coerceArray(z.enum(['code', 'docs'])).describe('Specify which MCP tools to use'),
- no_tools: coerceArray(z.enum(['code', 'docs'])).describe('Specify which MCP tools to not use.'),
- tool: coerceArray(z.string()).describe('Include tools matching the specified names'),
-});
-
-export function parseQueryOptions(defaultOptions: McpOptions, query: unknown): McpOptions {
- const queryObject = typeof query === 'string' ? qs.parse(query) : query;
- const queryOptions = QueryOptions.parse(queryObject);
-
- let codeTool: boolean | undefined =
- queryOptions.no_tools && queryOptions.no_tools?.includes('code') ? false
- : queryOptions.tools?.includes('code') ? true
- : defaultOptions.includeCodeTool;
-
- let docsTools: boolean | undefined =
- queryOptions.no_tools && queryOptions.no_tools?.includes('docs') ? false
- : queryOptions.tools?.includes('docs') ? true
- : defaultOptions.includeDocsTools;
-
- return {
- ...(codeTool !== undefined && { includeCodeTool: codeTool }),
- ...(docsTools !== undefined && { includeDocsTools: docsTools }),
- codeExecutionMode: defaultOptions.codeExecutionMode,
- };
-}
diff --git a/packages/mcp-server/src/server.ts b/packages/mcp-server/src/server.ts
deleted file mode 100644
index 44a5f7ea..00000000
--- a/packages/mcp-server/src/server.ts
+++ /dev/null
@@ -1,190 +0,0 @@
-// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-import { Server } from '@modelcontextprotocol/sdk/server/index.js';
-import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
-import {
- CallToolRequestSchema,
- ListToolsRequestSchema,
- SetLevelRequestSchema,
-} from '@modelcontextprotocol/sdk/types.js';
-import { ClientOptions } from 'lithic';
-import Lithic from 'lithic';
-import { codeTool } from './code-tool';
-import docsSearchTool from './docs-search-tool';
-import { getInstructions } from './instructions';
-import { McpOptions } from './options';
-import { blockedMethodsForCodeTool } from './methods';
-import { HandlerFunction, McpRequestContext, ToolCallResult, McpTool } from './types';
-import { readEnv } from './util';
-
-export const newMcpServer = async (stainlessApiKey: string | undefined) =>
- new McpServer(
- {
- name: 'lithic_api',
- version: '0.131.0',
- },
- {
- instructions: await getInstructions(stainlessApiKey),
- capabilities: { tools: {}, logging: {} },
- },
- );
-
-/**
- * Initializes the provided MCP Server with the given tools and handlers.
- * If not provided, the default client, tools and handlers will be used.
- */
-export async function initMcpServer(params: {
- server: Server | McpServer;
- clientOptions?: ClientOptions;
- mcpOptions?: McpOptions;
- stainlessApiKey?: string | undefined;
-}) {
- const server = params.server instanceof McpServer ? params.server.server : params.server;
-
- const logAtLevel =
- (level: 'debug' | 'info' | 'warning' | 'error') =>
- (message: string, ...rest: unknown[]) => {
- void server.sendLoggingMessage({
- level,
- data: { message, rest },
- });
- };
- const logger = {
- debug: logAtLevel('debug'),
- info: logAtLevel('info'),
- warn: logAtLevel('warning'),
- error: logAtLevel('error'),
- };
-
- let _client: Lithic | undefined;
- let _clientError: Error | undefined;
- let _logLevel: 'debug' | 'info' | 'warn' | 'error' | 'off' | undefined;
-
- const getClient = (): Lithic => {
- if (_clientError) throw _clientError;
- if (!_client) {
- try {
- _client = new Lithic({
- ...{ environment: (readEnv('LITHIC_ENVIRONMENT') || undefined) as any },
- logger,
- ...params.clientOptions,
- defaultHeaders: {
- ...params.clientOptions?.defaultHeaders,
- 'X-Stainless-MCP': 'true',
- },
- });
- if (_logLevel) {
- _client = _client.withOptions({ logLevel: _logLevel });
- }
- } catch (e) {
- _clientError = e instanceof Error ? e : new Error(String(e));
- throw _clientError;
- }
- }
- return _client;
- };
-
- const providedTools = selectTools(params.mcpOptions);
- const toolMap = Object.fromEntries(providedTools.map((mcpTool) => [mcpTool.tool.name, mcpTool]));
-
- server.setRequestHandler(ListToolsRequestSchema, async () => {
- return {
- tools: providedTools.map((mcpTool) => mcpTool.tool),
- };
- });
-
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
- const { name, arguments: args } = request.params;
- const mcpTool = toolMap[name];
- if (!mcpTool) {
- throw new Error(`Unknown tool: ${name}`);
- }
-
- let client: Lithic;
- try {
- client = getClient();
- } catch (error) {
- return {
- content: [
- {
- type: 'text' as const,
- text: `Failed to initialize client: ${error instanceof Error ? error.message : String(error)}`,
- },
- ],
- isError: true,
- };
- }
-
- return executeHandler({
- handler: mcpTool.handler,
- reqContext: {
- client,
- stainlessApiKey: params.stainlessApiKey ?? params.mcpOptions?.stainlessApiKey,
- },
- args,
- });
- });
-
- server.setRequestHandler(SetLevelRequestSchema, async (request) => {
- const { level } = request.params;
- let logLevel: 'debug' | 'info' | 'warn' | 'error' | 'off';
- switch (level) {
- case 'debug':
- logLevel = 'debug';
- break;
- case 'info':
- logLevel = 'info';
- break;
- case 'notice':
- case 'warning':
- logLevel = 'warn';
- break;
- case 'error':
- logLevel = 'error';
- break;
- default:
- logLevel = 'off';
- break;
- }
- _logLevel = logLevel;
- if (_client) {
- _client = _client.withOptions({ logLevel });
- }
- return {};
- });
-}
-
-/**
- * Selects the tools to include in the MCP Server based on the provided options.
- */
-export function selectTools(options?: McpOptions): McpTool[] {
- const includedTools = [];
-
- if (options?.includeCodeTool ?? true) {
- includedTools.push(
- codeTool({
- blockedMethods: blockedMethodsForCodeTool(options),
- codeExecutionMode: options?.codeExecutionMode ?? 'stainless-sandbox',
- }),
- );
- }
- if (options?.includeDocsTools ?? true) {
- includedTools.push(docsSearchTool);
- }
- return includedTools;
-}
-
-/**
- * Runs the provided handler with the given client and arguments.
- */
-export async function executeHandler({
- handler,
- reqContext,
- args,
-}: {
- handler: HandlerFunction;
- reqContext: McpRequestContext;
- args: Record | undefined;
-}): Promise {
- return await handler({ reqContext, args: args || {} });
-}
diff --git a/packages/mcp-server/src/stdio.ts b/packages/mcp-server/src/stdio.ts
deleted file mode 100644
index e8bcbb19..00000000
--- a/packages/mcp-server/src/stdio.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
-import { McpOptions } from './options';
-import { initMcpServer, newMcpServer } from './server';
-import { getLogger } from './logger';
-
-export const launchStdioServer = async (mcpOptions: McpOptions) => {
- const server = await newMcpServer(mcpOptions.stainlessApiKey);
-
- await initMcpServer({ server, mcpOptions, stainlessApiKey: mcpOptions.stainlessApiKey });
-
- const transport = new StdioServerTransport();
- await server.connect(transport);
- getLogger().info('MCP Server running on stdio');
-};
diff --git a/packages/mcp-server/src/types.ts b/packages/mcp-server/src/types.ts
deleted file mode 100644
index aab33389..00000000
--- a/packages/mcp-server/src/types.ts
+++ /dev/null
@@ -1,123 +0,0 @@
-// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-import Lithic from 'lithic';
-import { Tool } from '@modelcontextprotocol/sdk/types.js';
-
-type TextContentBlock = {
- type: 'text';
- text: string;
-};
-
-type ImageContentBlock = {
- type: 'image';
- data: string;
- mimeType: string;
-};
-
-type AudioContentBlock = {
- type: 'audio';
- data: string;
- mimeType: string;
-};
-
-type ResourceContentBlock = {
- type: 'resource';
- resource:
- | {
- uri: string;
- mimeType: string;
- text: string;
- }
- | {
- uri: string;
- mimeType: string;
- blob: string;
- };
-};
-
-export type ContentBlock = TextContentBlock | ImageContentBlock | AudioContentBlock | ResourceContentBlock;
-
-export type ToolCallResult = {
- content: ContentBlock[];
- isError?: boolean;
-};
-
-export type McpRequestContext = {
- client: Lithic;
- stainlessApiKey?: string | undefined;
-};
-
-export type HandlerFunction = ({
- reqContext,
- args,
-}: {
- reqContext: McpRequestContext;
- args: Record | undefined;
-}) => Promise;
-
-export function asTextContentResult(result: unknown): ToolCallResult {
- return {
- content: [
- {
- type: 'text',
- text: JSON.stringify(result, null, 2),
- },
- ],
- };
-}
-
-export async function asBinaryContentResult(response: Response): Promise {
- const blob = await response.blob();
- const mimeType = blob.type;
- const data = Buffer.from(await blob.arrayBuffer()).toString('base64');
- if (mimeType.startsWith('image/')) {
- return {
- content: [{ type: 'image', mimeType, data }],
- };
- } else if (mimeType.startsWith('audio/')) {
- return {
- content: [{ type: 'audio', mimeType, data }],
- };
- } else {
- return {
- content: [
- {
- type: 'resource',
- resource: {
- // We must give a URI, even though this isn't actually an MCP resource.
- uri: 'resource://tool-response',
- mimeType,
- blob: data,
- },
- },
- ],
- };
- }
-}
-
-export function asErrorResult(message: string): ToolCallResult {
- return {
- content: [
- {
- type: 'text',
- text: message,
- },
- ],
- isError: true,
- };
-}
-
-export type Metadata = {
- resource: string;
- operation: 'read' | 'write';
- tags: string[];
- httpMethod?: string;
- httpPath?: string;
- operationId?: string;
-};
-
-export type McpTool = {
- metadata: Metadata;
- tool: Tool;
- handler: HandlerFunction;
-};
diff --git a/packages/mcp-server/src/util.ts b/packages/mcp-server/src/util.ts
deleted file mode 100644
index 40ed5501..00000000
--- a/packages/mcp-server/src/util.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-export const readEnv = (env: string): string | undefined => {
- if (typeof (globalThis as any).process !== 'undefined') {
- return (globalThis as any).process.env?.[env]?.trim();
- } else if (typeof (globalThis as any).Deno !== 'undefined') {
- return (globalThis as any).Deno.env?.get?.(env)?.trim();
- }
- return;
-};
-
-export const readEnvOrError = (env: string): string => {
- let envValue = readEnv(env);
- if (envValue === undefined) {
- throw new Error(`Environment variable ${env} is not set`);
- }
- return envValue;
-};
-
-export const requireValue = (value: T | undefined, description: string): T => {
- if (value === undefined) {
- throw new Error(`Missing required value: ${description}`);
- }
- return value;
-};
diff --git a/packages/mcp-server/tests/options.test.ts b/packages/mcp-server/tests/options.test.ts
deleted file mode 100644
index 17306295..00000000
--- a/packages/mcp-server/tests/options.test.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import { parseCLIOptions } from '../src/options';
-
-// Mock process.argv
-const mockArgv = (args: string[]) => {
- const originalArgv = process.argv;
- process.argv = ['node', 'test.js', ...args];
- return () => {
- process.argv = originalArgv;
- };
-};
-
-describe('parseCLIOptions', () => {
- it('default parsing should be stdio', () => {
- const cleanup = mockArgv([]);
-
- const result = parseCLIOptions();
-
- expect(result.transport).toBe('stdio');
-
- cleanup();
- });
-
- it('using http transport with a port', () => {
- const cleanup = mockArgv(['--transport=http', '--port=2222']);
-
- const result = parseCLIOptions();
-
- expect(result.transport).toBe('http');
- expect(result.port).toBe(2222);
- cleanup();
- });
-});
diff --git a/packages/mcp-server/tsc-multi.json b/packages/mcp-server/tsc-multi.json
deleted file mode 100644
index 4facad5a..00000000
--- a/packages/mcp-server/tsc-multi.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "targets": [
- { "extname": ".js", "module": "commonjs" },
- { "extname": ".mjs", "module": "esnext" }
- ],
- "projects": ["tsconfig.build.json"]
-}
diff --git a/packages/mcp-server/tsconfig.build.json b/packages/mcp-server/tsconfig.build.json
deleted file mode 100644
index 69c8e1d9..00000000
--- a/packages/mcp-server/tsconfig.build.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": "./tsconfig.json",
- "include": ["dist/src"],
- "exclude": [],
- "compilerOptions": {
- "rootDir": "./dist/src",
- "paths": {
- "lithic-mcp/*": ["./dist/src/*"],
- "lithic-mcp": ["./dist/src/index.ts"]
- },
- "noEmit": false,
- "declaration": true,
- "declarationMap": true,
- "outDir": "dist",
- "pretty": true,
- "sourceMap": true
- }
-}
diff --git a/packages/mcp-server/tsconfig.dist-src.json b/packages/mcp-server/tsconfig.dist-src.json
deleted file mode 100644
index e9f2d70b..00000000
--- a/packages/mcp-server/tsconfig.dist-src.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- // this config is included in the published src directory to prevent TS errors
- // from appearing when users go to source, and VSCode opens the source .ts file
- // via declaration maps
- "include": ["index.ts"],
- "compilerOptions": {
- "target": "es2015",
- "lib": ["DOM"],
- "moduleResolution": "node"
- }
-}
diff --git a/packages/mcp-server/tsconfig.json b/packages/mcp-server/tsconfig.json
deleted file mode 100644
index 2e14b77b..00000000
--- a/packages/mcp-server/tsconfig.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "include": ["src", "tests", "examples"],
- "exclude": [],
- "compilerOptions": {
- "target": "es2022",
- "lib": ["es2022"],
- "module": "commonjs",
- "moduleResolution": "node",
- "esModuleInterop": true,
- "paths": {
- "lithic-mcp/*": ["./src/*"],
- "lithic-mcp": ["./src/index.ts"]
- },
- "noEmit": true,
-
- "resolveJsonModule": true,
-
- "forceConsistentCasingInFileNames": true,
-
- "strict": true,
- "noImplicitAny": true,
- "strictNullChecks": true,
- "strictFunctionTypes": true,
- "strictBindCallApply": true,
- "strictPropertyInitialization": true,
- "noImplicitThis": true,
- "noImplicitReturns": true,
- "alwaysStrict": true,
- "exactOptionalPropertyTypes": true,
- "noUncheckedIndexedAccess": true,
- "noImplicitOverride": true,
- "noPropertyAccessFromIndexSignature": true,
-
- "skipLibCheck": true
- }
-}
diff --git a/packages/mcp-server/yarn.lock b/packages/mcp-server/yarn.lock
deleted file mode 100644
index 14529bc9..00000000
--- a/packages/mcp-server/yarn.lock
+++ /dev/null
@@ -1,4175 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-"@anthropic-ai/mcpb@^2.1.2":
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/@anthropic-ai/mcpb/-/mcpb-2.1.2.tgz#cf02801929734b8810961f22e2eb72758c27d527"
- integrity sha512-goRbBC8ySo7SWb7tRzr+tL6FxDc4JPTRCdgfD2omba7freofvjq5rom1lBnYHZHo6Mizs1jAHJeN53aZbDoy8A==
- dependencies:
- "@inquirer/prompts" "^6.0.1"
- commander "^13.1.0"
- fflate "^0.8.2"
- galactus "^1.0.0"
- ignore "^7.0.5"
- node-forge "^1.3.2"
- pretty-bytes "^5.6.0"
- zod "^3.25.67"
- zod-to-json-schema "^3.24.6"
-
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.28.6":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.28.6.tgz#72499312ec58b1e2245ba4a4f550c132be4982f7"
- integrity sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==
- dependencies:
- "@babel/helper-validator-identifier" "^7.28.5"
- js-tokens "^4.0.0"
- picocolors "^1.1.1"
-
-"@babel/compat-data@^7.28.6":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.6.tgz#103f466803fa0f059e82ccac271475470570d74c"
- integrity sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==
-
-"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.6.tgz#531bf883a1126e53501ba46eb3bb414047af507f"
- integrity sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==
- dependencies:
- "@babel/code-frame" "^7.28.6"
- "@babel/generator" "^7.28.6"
- "@babel/helper-compilation-targets" "^7.28.6"
- "@babel/helper-module-transforms" "^7.28.6"
- "@babel/helpers" "^7.28.6"
- "@babel/parser" "^7.28.6"
- "@babel/template" "^7.28.6"
- "@babel/traverse" "^7.28.6"
- "@babel/types" "^7.28.6"
- "@jridgewell/remapping" "^2.3.5"
- convert-source-map "^2.0.0"
- debug "^4.1.0"
- gensync "^1.0.0-beta.2"
- json5 "^2.2.3"
- semver "^6.3.1"
-
-"@babel/generator@^7.28.6", "@babel/generator@^7.7.2":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.6.tgz#48dcc65d98fcc8626a48f72b62e263d25fc3c3f1"
- integrity sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==
- dependencies:
- "@babel/parser" "^7.28.6"
- "@babel/types" "^7.28.6"
- "@jridgewell/gen-mapping" "^0.3.12"
- "@jridgewell/trace-mapping" "^0.3.28"
- jsesc "^3.0.2"
-
-"@babel/helper-compilation-targets@^7.28.6":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz#32c4a3f41f12ed1532179b108a4d746e105c2b25"
- integrity sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==
- dependencies:
- "@babel/compat-data" "^7.28.6"
- "@babel/helper-validator-option" "^7.27.1"
- browserslist "^4.24.0"
- lru-cache "^5.1.1"
- semver "^6.3.1"
-
-"@babel/helper-globals@^7.28.0":
- version "7.28.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674"
- integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==
-
-"@babel/helper-module-imports@^7.28.6":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz#60632cbd6ffb70b22823187201116762a03e2d5c"
- integrity sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==
- dependencies:
- "@babel/traverse" "^7.28.6"
- "@babel/types" "^7.28.6"
-
-"@babel/helper-module-transforms@^7.28.6":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz#9312d9d9e56edc35aeb6e95c25d4106b50b9eb1e"
- integrity sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==
- dependencies:
- "@babel/helper-module-imports" "^7.28.6"
- "@babel/helper-validator-identifier" "^7.28.5"
- "@babel/traverse" "^7.28.6"
-
-"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.28.6", "@babel/helper-plugin-utils@^7.8.0":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz#6f13ea251b68c8532e985fd532f28741a8af9ac8"
- integrity sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==
-
-"@babel/helper-string-parser@^7.27.1":
- version "7.27.1"
- resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687"
- integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==
-
-"@babel/helper-validator-identifier@^7.28.5":
- version "7.28.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4"
- integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==
-
-"@babel/helper-validator-option@^7.27.1":
- version "7.27.1"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f"
- integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==
-
-"@babel/helpers@^7.28.6":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.6.tgz#fca903a313ae675617936e8998b814c415cbf5d7"
- integrity sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==
- dependencies:
- "@babel/template" "^7.28.6"
- "@babel/types" "^7.28.6"
-
-"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.28.6":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.6.tgz#f01a8885b7fa1e56dd8a155130226cd698ef13fd"
- integrity sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==
- dependencies:
- "@babel/types" "^7.28.6"
-
-"@babel/plugin-syntax-async-generators@^7.8.4":
- version "7.8.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
- integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-bigint@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea"
- integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-class-properties@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
- integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.12.13"
-
-"@babel/plugin-syntax-class-static-block@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406"
- integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.14.5"
-
-"@babel/plugin-syntax-import-attributes@^7.24.7":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz#b71d5914665f60124e133696f17cd7669062c503"
- integrity sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.28.6"
-
-"@babel/plugin-syntax-import-meta@^7.10.4":
- version "7.10.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
- integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
- dependencies:
- "@babel/helper-plugin-utils" "^7.10.4"
-
-"@babel/plugin-syntax-json-strings@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
- integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-jsx@^7.7.2":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz#f8ca28bbd84883b5fea0e447c635b81ba73997ee"
- integrity sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==
- dependencies:
- "@babel/helper-plugin-utils" "^7.28.6"
-
-"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
- version "7.10.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
- integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
- dependencies:
- "@babel/helper-plugin-utils" "^7.10.4"
-
-"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
- integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-numeric-separator@^7.10.4":
- version "7.10.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
- integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
- dependencies:
- "@babel/helper-plugin-utils" "^7.10.4"
-
-"@babel/plugin-syntax-object-rest-spread@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
- integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
- integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-optional-chaining@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
- integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-private-property-in-object@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad"
- integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.14.5"
-
-"@babel/plugin-syntax-top-level-await@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
- integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.14.5"
-
-"@babel/plugin-syntax-typescript@^7.7.2":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz#c7b2ddf1d0a811145b1de800d1abd146af92e3a2"
- integrity sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==
- dependencies:
- "@babel/helper-plugin-utils" "^7.28.6"
-
-"@babel/template@^7.28.6", "@babel/template@^7.3.3":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.28.6.tgz#0e7e56ecedb78aeef66ce7972b082fce76a23e57"
- integrity sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==
- dependencies:
- "@babel/code-frame" "^7.28.6"
- "@babel/parser" "^7.28.6"
- "@babel/types" "^7.28.6"
-
-"@babel/traverse@^7.28.6":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.6.tgz#871ddc79a80599a5030c53b1cc48cbe3a5583c2e"
- integrity sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==
- dependencies:
- "@babel/code-frame" "^7.28.6"
- "@babel/generator" "^7.28.6"
- "@babel/helper-globals" "^7.28.0"
- "@babel/parser" "^7.28.6"
- "@babel/template" "^7.28.6"
- "@babel/types" "^7.28.6"
- debug "^4.3.1"
-
-"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.28.2", "@babel/types@^7.28.6", "@babel/types@^7.3.3":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.6.tgz#c3e9377f1b155005bcc4c46020e7e394e13089df"
- integrity sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==
- dependencies:
- "@babel/helper-string-parser" "^7.27.1"
- "@babel/helper-validator-identifier" "^7.28.5"
-
-"@bcoe/v8-coverage@^0.2.3":
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
- integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
-
-"@cloudflare/cabidela@^0.2.4":
- version "0.2.4"
- resolved "https://registry.yarnpkg.com/@cloudflare/cabidela/-/cabidela-0.2.4.tgz#9a3e9212e636a24d796a8f16741c24885b326a1a"
- integrity sha512-u/1OwwqfcMvjmUFOcb6QtFzVVGpncHJxwl254wjzp0JC5CUlBkV6r5BbRrHI5ZYJEAgu8NeeorirxngmMFPZjQ==
-
-"@cspotcode/source-map-support@^0.8.0":
- version "0.8.1"
- resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1"
- integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==
- dependencies:
- "@jridgewell/trace-mapping" "0.3.9"
-
-"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
- version "4.9.1"
- resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz#4e90af67bc51ddee6cdef5284edf572ec376b595"
- integrity sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==
- dependencies:
- eslint-visitor-keys "^3.4.3"
-
-"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1":
- version "4.12.2"
- resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.2.tgz#bccdf615bcf7b6e8db830ec0b8d21c9a25de597b"
- integrity sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==
-
-"@eslint/eslintrc@^2.1.4":
- version "2.1.4"
- resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad"
- integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==
- dependencies:
- ajv "^6.12.4"
- debug "^4.3.2"
- espree "^9.6.0"
- globals "^13.19.0"
- ignore "^5.2.0"
- import-fresh "^3.2.1"
- js-yaml "^4.1.0"
- minimatch "^3.1.2"
- strip-json-comments "^3.1.1"
-
-"@eslint/js@8.57.1":
- version "8.57.1"
- resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2"
- integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==
-
-"@hono/node-server@^1.19.9":
- version "1.19.10"
- resolved "https://registry.yarnpkg.com/@hono/node-server/-/node-server-1.19.10.tgz#e230fbb7fb31891cafc653d01deee03f437dd66b"
- integrity sha512-hZ7nOssGqRgyV3FVVQdfi+U4q02uB23bpnYpdvNXkYTRRyWx84b7yf1ans+dnJ/7h41sGL3CeQTfO+ZGxuO+Iw==
-
-"@humanwhocodes/config-array@^0.13.0":
- version "0.13.0"
- resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748"
- integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==
- dependencies:
- "@humanwhocodes/object-schema" "^2.0.3"
- debug "^4.3.1"
- minimatch "^3.0.5"
-
-"@humanwhocodes/module-importer@^1.0.1":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
- integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
-
-"@humanwhocodes/object-schema@^2.0.3":
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3"
- integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==
-
-"@inquirer/checkbox@^3.0.1":
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-3.0.1.tgz#0a57f704265f78c36e17f07e421b98efb4b9867b"
- integrity sha512-0hm2nrToWUdD6/UHnel/UKGdk1//ke5zGUpHIvk5ZWmaKezlGxZkOJXNSWsdxO/rEqTkbB3lNC2J6nBElV2aAQ==
- dependencies:
- "@inquirer/core" "^9.2.1"
- "@inquirer/figures" "^1.0.6"
- "@inquirer/type" "^2.0.0"
- ansi-escapes "^4.3.2"
- yoctocolors-cjs "^2.1.2"
-
-"@inquirer/confirm@^4.0.1":
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-4.0.1.tgz#9106d6bffa0b2fdd0e4f60319b6f04f2e06e6e25"
- integrity sha512-46yL28o2NJ9doViqOy0VDcoTzng7rAb6yPQKU7VDLqkmbCaH4JqK4yk4XqlzNWy9PVC5pG1ZUXPBQv+VqnYs2w==
- dependencies:
- "@inquirer/core" "^9.2.1"
- "@inquirer/type" "^2.0.0"
-
-"@inquirer/core@^9.2.1":
- version "9.2.1"
- resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-9.2.1.tgz#677c49dee399c9063f31e0c93f0f37bddc67add1"
- integrity sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==
- dependencies:
- "@inquirer/figures" "^1.0.6"
- "@inquirer/type" "^2.0.0"
- "@types/mute-stream" "^0.0.4"
- "@types/node" "^22.5.5"
- "@types/wrap-ansi" "^3.0.0"
- ansi-escapes "^4.3.2"
- cli-width "^4.1.0"
- mute-stream "^1.0.0"
- signal-exit "^4.1.0"
- strip-ansi "^6.0.1"
- wrap-ansi "^6.2.0"
- yoctocolors-cjs "^2.1.2"
-
-"@inquirer/editor@^3.0.1":
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-3.0.1.tgz#d109f21e050af6b960725388cb1c04214ed7c7bc"
- integrity sha512-VA96GPFaSOVudjKFraokEEmUQg/Lub6OXvbIEZU1SDCmBzRkHGhxoFAVaF30nyiB4m5cEbDgiI2QRacXZ2hw9Q==
- dependencies:
- "@inquirer/core" "^9.2.1"
- "@inquirer/type" "^2.0.0"
- external-editor "^3.1.0"
-
-"@inquirer/expand@^3.0.1":
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-3.0.1.tgz#aed9183cac4d12811be47a4a895ea8e82a17e22c"
- integrity sha512-ToG8d6RIbnVpbdPdiN7BCxZGiHOTomOX94C2FaT5KOHupV40tKEDozp12res6cMIfRKrXLJyexAZhWVHgbALSQ==
- dependencies:
- "@inquirer/core" "^9.2.1"
- "@inquirer/type" "^2.0.0"
- yoctocolors-cjs "^2.1.2"
-
-"@inquirer/figures@^1.0.6":
- version "1.0.15"
- resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.15.tgz#dbb49ed80df11df74268023b496ac5d9acd22b3a"
- integrity sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==
-
-"@inquirer/input@^3.0.1":
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-3.0.1.tgz#de63d49e516487388508d42049deb70f2cb5f28e"
- integrity sha512-BDuPBmpvi8eMCxqC5iacloWqv+5tQSJlUafYWUe31ow1BVXjW2a5qe3dh4X/Z25Wp22RwvcaLCc2siHobEOfzg==
- dependencies:
- "@inquirer/core" "^9.2.1"
- "@inquirer/type" "^2.0.0"
-
-"@inquirer/number@^2.0.1":
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-2.0.1.tgz#b9863080d02ab7dc2e56e16433d83abea0f2a980"
- integrity sha512-QpR8jPhRjSmlr/mD2cw3IR8HRO7lSVOnqUvQa8scv1Lsr3xoAMMworcYW3J13z3ppjBFBD2ef1Ci6AE5Qn8goQ==
- dependencies:
- "@inquirer/core" "^9.2.1"
- "@inquirer/type" "^2.0.0"
-
-"@inquirer/password@^3.0.1":
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-3.0.1.tgz#2a9a9143591088336bbd573bcb05d5bf080dbf87"
- integrity sha512-haoeEPUisD1NeE2IanLOiFr4wcTXGWrBOyAyPZi1FfLJuXOzNmxCJPgUrGYKVh+Y8hfGJenIfz5Wb/DkE9KkMQ==
- dependencies:
- "@inquirer/core" "^9.2.1"
- "@inquirer/type" "^2.0.0"
- ansi-escapes "^4.3.2"
-
-"@inquirer/prompts@^6.0.1":
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-6.0.1.tgz#43f5c0ed35c5ebfe52f1d43d46da2d363d950071"
- integrity sha512-yl43JD/86CIj3Mz5mvvLJqAOfIup7ncxfJ0Btnl0/v5TouVUyeEdcpknfgc+yMevS/48oH9WAkkw93m7otLb/A==
- dependencies:
- "@inquirer/checkbox" "^3.0.1"
- "@inquirer/confirm" "^4.0.1"
- "@inquirer/editor" "^3.0.1"
- "@inquirer/expand" "^3.0.1"
- "@inquirer/input" "^3.0.1"
- "@inquirer/number" "^2.0.1"
- "@inquirer/password" "^3.0.1"
- "@inquirer/rawlist" "^3.0.1"
- "@inquirer/search" "^2.0.1"
- "@inquirer/select" "^3.0.1"
-
-"@inquirer/rawlist@^3.0.1":
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-3.0.1.tgz#729def358419cc929045f264131878ed379e0af3"
- integrity sha512-VgRtFIwZInUzTiPLSfDXK5jLrnpkuSOh1ctfaoygKAdPqjcjKYmGh6sCY1pb0aGnCGsmhUxoqLDUAU0ud+lGXQ==
- dependencies:
- "@inquirer/core" "^9.2.1"
- "@inquirer/type" "^2.0.0"
- yoctocolors-cjs "^2.1.2"
-
-"@inquirer/search@^2.0.1":
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-2.0.1.tgz#69b774a0a826de2e27b48981d01bc5ad81e73721"
- integrity sha512-r5hBKZk3g5MkIzLVoSgE4evypGqtOannnB3PKTG9NRZxyFRKcfzrdxXXPcoJQsxJPzvdSU2Rn7pB7lw0GCmGAg==
- dependencies:
- "@inquirer/core" "^9.2.1"
- "@inquirer/figures" "^1.0.6"
- "@inquirer/type" "^2.0.0"
- yoctocolors-cjs "^2.1.2"
-
-"@inquirer/select@^3.0.1":
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-3.0.1.tgz#1df9ed27fb85a5f526d559ac5ce7cc4e9dc4e7ec"
- integrity sha512-lUDGUxPhdWMkN/fHy1Lk7pF3nK1fh/gqeyWXmctefhxLYxlDsc7vsPBEpxrfVGDsVdyYJsiJoD4bJ1b623cV1Q==
- dependencies:
- "@inquirer/core" "^9.2.1"
- "@inquirer/figures" "^1.0.6"
- "@inquirer/type" "^2.0.0"
- ansi-escapes "^4.3.2"
- yoctocolors-cjs "^2.1.2"
-
-"@inquirer/type@^2.0.0":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-2.0.0.tgz#08fa513dca2cb6264fe1b0a2fabade051444e3f6"
- integrity sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==
- dependencies:
- mute-stream "^1.0.0"
-
-"@istanbuljs/load-nyc-config@^1.0.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
- integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==
- dependencies:
- camelcase "^5.3.1"
- find-up "^4.1.0"
- get-package-type "^0.1.0"
- js-yaml "^3.13.1"
- resolve-from "^5.0.0"
-
-"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3":
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
- integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
-
-"@jest/console@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc"
- integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==
- dependencies:
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- chalk "^4.0.0"
- jest-message-util "^29.7.0"
- jest-util "^29.7.0"
- slash "^3.0.0"
-
-"@jest/core@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f"
- integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==
- dependencies:
- "@jest/console" "^29.7.0"
- "@jest/reporters" "^29.7.0"
- "@jest/test-result" "^29.7.0"
- "@jest/transform" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- ansi-escapes "^4.2.1"
- chalk "^4.0.0"
- ci-info "^3.2.0"
- exit "^0.1.2"
- graceful-fs "^4.2.9"
- jest-changed-files "^29.7.0"
- jest-config "^29.7.0"
- jest-haste-map "^29.7.0"
- jest-message-util "^29.7.0"
- jest-regex-util "^29.6.3"
- jest-resolve "^29.7.0"
- jest-resolve-dependencies "^29.7.0"
- jest-runner "^29.7.0"
- jest-runtime "^29.7.0"
- jest-snapshot "^29.7.0"
- jest-util "^29.7.0"
- jest-validate "^29.7.0"
- jest-watcher "^29.7.0"
- micromatch "^4.0.4"
- pretty-format "^29.7.0"
- slash "^3.0.0"
- strip-ansi "^6.0.0"
-
-"@jest/environment@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7"
- integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==
- dependencies:
- "@jest/fake-timers" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- jest-mock "^29.7.0"
-
-"@jest/expect-utils@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6"
- integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==
- dependencies:
- jest-get-type "^29.6.3"
-
-"@jest/expect@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2"
- integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==
- dependencies:
- expect "^29.7.0"
- jest-snapshot "^29.7.0"
-
-"@jest/fake-timers@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565"
- integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==
- dependencies:
- "@jest/types" "^29.6.3"
- "@sinonjs/fake-timers" "^10.0.2"
- "@types/node" "*"
- jest-message-util "^29.7.0"
- jest-mock "^29.7.0"
- jest-util "^29.7.0"
-
-"@jest/globals@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d"
- integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==
- dependencies:
- "@jest/environment" "^29.7.0"
- "@jest/expect" "^29.7.0"
- "@jest/types" "^29.6.3"
- jest-mock "^29.7.0"
-
-"@jest/reporters@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7"
- integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==
- dependencies:
- "@bcoe/v8-coverage" "^0.2.3"
- "@jest/console" "^29.7.0"
- "@jest/test-result" "^29.7.0"
- "@jest/transform" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@jridgewell/trace-mapping" "^0.3.18"
- "@types/node" "*"
- chalk "^4.0.0"
- collect-v8-coverage "^1.0.0"
- exit "^0.1.2"
- glob "^7.1.3"
- graceful-fs "^4.2.9"
- istanbul-lib-coverage "^3.0.0"
- istanbul-lib-instrument "^6.0.0"
- istanbul-lib-report "^3.0.0"
- istanbul-lib-source-maps "^4.0.0"
- istanbul-reports "^3.1.3"
- jest-message-util "^29.7.0"
- jest-util "^29.7.0"
- jest-worker "^29.7.0"
- slash "^3.0.0"
- string-length "^4.0.1"
- strip-ansi "^6.0.0"
- v8-to-istanbul "^9.0.1"
-
-"@jest/schemas@^29.6.3":
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03"
- integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==
- dependencies:
- "@sinclair/typebox" "^0.27.8"
-
-"@jest/source-map@^29.6.3":
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4"
- integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==
- dependencies:
- "@jridgewell/trace-mapping" "^0.3.18"
- callsites "^3.0.0"
- graceful-fs "^4.2.9"
-
-"@jest/test-result@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c"
- integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==
- dependencies:
- "@jest/console" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/istanbul-lib-coverage" "^2.0.0"
- collect-v8-coverage "^1.0.0"
-
-"@jest/test-sequencer@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce"
- integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==
- dependencies:
- "@jest/test-result" "^29.7.0"
- graceful-fs "^4.2.9"
- jest-haste-map "^29.7.0"
- slash "^3.0.0"
-
-"@jest/transform@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c"
- integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==
- dependencies:
- "@babel/core" "^7.11.6"
- "@jest/types" "^29.6.3"
- "@jridgewell/trace-mapping" "^0.3.18"
- babel-plugin-istanbul "^6.1.1"
- chalk "^4.0.0"
- convert-source-map "^2.0.0"
- fast-json-stable-stringify "^2.1.0"
- graceful-fs "^4.2.9"
- jest-haste-map "^29.7.0"
- jest-regex-util "^29.6.3"
- jest-util "^29.7.0"
- micromatch "^4.0.4"
- pirates "^4.0.4"
- slash "^3.0.0"
- write-file-atomic "^4.0.2"
-
-"@jest/types@^29.6.3":
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59"
- integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==
- dependencies:
- "@jest/schemas" "^29.6.3"
- "@types/istanbul-lib-coverage" "^2.0.0"
- "@types/istanbul-reports" "^3.0.0"
- "@types/node" "*"
- "@types/yargs" "^17.0.8"
- chalk "^4.0.0"
-
-"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5":
- version "0.3.13"
- resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f"
- integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==
- dependencies:
- "@jridgewell/sourcemap-codec" "^1.5.0"
- "@jridgewell/trace-mapping" "^0.3.24"
-
-"@jridgewell/remapping@^2.3.5":
- version "2.3.5"
- resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1"
- integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==
- dependencies:
- "@jridgewell/gen-mapping" "^0.3.5"
- "@jridgewell/trace-mapping" "^0.3.24"
-
-"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0":
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
- integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
-
-"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0":
- version "1.5.5"
- resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba"
- integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==
-
-"@jridgewell/trace-mapping@0.3.9":
- version "0.3.9"
- resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9"
- integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==
- dependencies:
- "@jridgewell/resolve-uri" "^3.0.3"
- "@jridgewell/sourcemap-codec" "^1.4.10"
-
-"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.28":
- version "0.3.31"
- resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0"
- integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==
- dependencies:
- "@jridgewell/resolve-uri" "^3.1.0"
- "@jridgewell/sourcemap-codec" "^1.4.14"
-
-"@modelcontextprotocol/sdk@^1.26.0":
- version "1.27.1"
- resolved "https://registry.yarnpkg.com/@modelcontextprotocol/sdk/-/sdk-1.27.1.tgz#a602cf823bf8a68e13e7112f50aeb02b09fb83b9"
- integrity sha512-sr6GbP+4edBwFndLbM60gf07z0FQ79gaExpnsjMGePXqFcSSb7t6iscpjk9DhFhwd+mTEQrzNafGP8/iGGFYaA==
- dependencies:
- "@hono/node-server" "^1.19.9"
- ajv "^8.17.1"
- ajv-formats "^3.0.1"
- content-type "^1.0.5"
- cors "^2.8.5"
- cross-spawn "^7.0.5"
- eventsource "^3.0.2"
- eventsource-parser "^3.0.0"
- express "^5.2.1"
- express-rate-limit "^8.2.1"
- hono "^4.11.4"
- jose "^6.1.3"
- json-schema-typed "^8.0.2"
- pkce-challenge "^5.0.0"
- raw-body "^3.0.0"
- zod "^3.25 || ^4.0"
- zod-to-json-schema "^3.25.1"
-
-"@nodelib/fs.scandir@2.1.5":
- version "2.1.5"
- resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
- integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
- dependencies:
- "@nodelib/fs.stat" "2.0.5"
- run-parallel "^1.1.9"
-
-"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
- integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
-
-"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8":
- version "1.2.8"
- resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
- integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
- dependencies:
- "@nodelib/fs.scandir" "2.1.5"
- fastq "^1.6.0"
-
-"@pinojs/redact@^0.4.0":
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/@pinojs/redact/-/redact-0.4.0.tgz#c3de060dd12640dcc838516aa2a6803cc7b2e9d6"
- integrity sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==
-
-"@pkgr/core@^0.2.9":
- version "0.2.9"
- resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.9.tgz#d229a7b7f9dac167a156992ef23c7f023653f53b"
- integrity sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==
-
-"@sinclair/typebox@^0.27.8":
- version "0.27.8"
- resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e"
- integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==
-
-"@sinonjs/commons@^3.0.0":
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd"
- integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==
- dependencies:
- type-detect "4.0.8"
-
-"@sinonjs/fake-timers@^10.0.2":
- version "10.3.0"
- resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66"
- integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==
- dependencies:
- "@sinonjs/commons" "^3.0.0"
-
-"@stablelib/base64@^1.0.0":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/@stablelib/base64/-/base64-1.0.1.tgz#bdfc1c6d3a62d7a3b7bbc65b6cce1bb4561641be"
- integrity sha512-1bnPQqSxSuc3Ii6MhBysoWCg58j97aUjuCSZrGSmDxNqtytIi0k8utUenAwTZN4V5mXXYGsVUI9zeBqy+jBOSQ==
-
-"@ts-morph/common@~0.20.0":
- version "0.20.0"
- resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.20.0.tgz#3f161996b085ba4519731e4d24c35f6cba5b80af"
- integrity sha512-7uKjByfbPpwuzkstL3L5MQyuXPSKdoNG93Fmi2JoDcTf3pEP731JdRFAduRVkOs8oqxPsXKA+ScrWkdQ8t/I+Q==
- dependencies:
- fast-glob "^3.2.12"
- minimatch "^7.4.3"
- mkdirp "^2.1.6"
- path-browserify "^1.0.1"
-
-"@tsconfig/node10@^1.0.7":
- version "1.0.12"
- resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.12.tgz#be57ceac1e4692b41be9de6be8c32a106636dba4"
- integrity sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==
-
-"@tsconfig/node12@^1.0.7":
- version "1.0.11"
- resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d"
- integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==
-
-"@tsconfig/node14@^1.0.0":
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1"
- integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==
-
-"@tsconfig/node16@^1.0.2":
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9"
- integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==
-
-"@types/babel__core@^7.1.14":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017"
- integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==
- dependencies:
- "@babel/parser" "^7.20.7"
- "@babel/types" "^7.20.7"
- "@types/babel__generator" "*"
- "@types/babel__template" "*"
- "@types/babel__traverse" "*"
-
-"@types/babel__generator@*":
- version "7.27.0"
- resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.27.0.tgz#b5819294c51179957afaec341442f9341e4108a9"
- integrity sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==
- dependencies:
- "@babel/types" "^7.0.0"
-
-"@types/babel__template@*":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f"
- integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==
- dependencies:
- "@babel/parser" "^7.1.0"
- "@babel/types" "^7.0.0"
-
-"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
- version "7.28.0"
- resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.28.0.tgz#07d713d6cce0d265c9849db0cbe62d3f61f36f74"
- integrity sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==
- dependencies:
- "@babel/types" "^7.28.2"
-
-"@types/body-parser@*":
- version "1.19.6"
- resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.6.tgz#1859bebb8fd7dac9918a45d54c1971ab8b5af474"
- integrity sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==
- dependencies:
- "@types/connect" "*"
- "@types/node" "*"
-
-"@types/connect@*":
- version "3.4.38"
- resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858"
- integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==
- dependencies:
- "@types/node" "*"
-
-"@types/cookie-parser@^1.4.10":
- version "1.4.10"
- resolved "https://registry.yarnpkg.com/@types/cookie-parser/-/cookie-parser-1.4.10.tgz#a045272a383a30597a01955d4f9c790018f214e4"
- integrity sha512-B4xqkqfZ8Wek+rCOeRxsjMS9OgvzebEzzLYw7NHYuvzb7IdxOkI0ZHGgeEBX4PUM7QGVvNSK60T3OvWj3YfBRg==
-
-"@types/cors@^2.8.19":
- version "2.8.19"
- resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.19.tgz#d93ea2673fd8c9f697367f5eeefc2bbfa94f0342"
- integrity sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==
- dependencies:
- "@types/node" "*"
-
-"@types/express-serve-static-core@^5.0.0":
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.1.1.tgz#1a77faffee9572d39124933259be2523837d7eaa"
- integrity sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==
- dependencies:
- "@types/node" "*"
- "@types/qs" "*"
- "@types/range-parser" "*"
- "@types/send" "*"
-
-"@types/express@^5.0.3":
- version "5.0.6"
- resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.6.tgz#2d724b2c990dcb8c8444063f3580a903f6d500cc"
- integrity sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==
- dependencies:
- "@types/body-parser" "*"
- "@types/express-serve-static-core" "^5.0.0"
- "@types/serve-static" "^2"
-
-"@types/graceful-fs@^4.1.3":
- version "4.1.9"
- resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4"
- integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==
- dependencies:
- "@types/node" "*"
-
-"@types/http-errors@*":
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.5.tgz#5b749ab2b16ba113423feb1a64a95dcd30398472"
- integrity sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==
-
-"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7"
- integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==
-
-"@types/istanbul-lib-report@*":
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf"
- integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==
- dependencies:
- "@types/istanbul-lib-coverage" "*"
-
-"@types/istanbul-reports@^3.0.0":
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54"
- integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==
- dependencies:
- "@types/istanbul-lib-report" "*"
-
-"@types/jest@^29.4.0":
- version "29.5.14"
- resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.14.tgz#2b910912fa1d6856cadcd0c1f95af7df1d6049e5"
- integrity sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==
- dependencies:
- expect "^29.0.0"
- pretty-format "^29.0.0"
-
-"@types/mute-stream@^0.0.4":
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/@types/mute-stream/-/mute-stream-0.0.4.tgz#77208e56a08767af6c5e1237be8888e2f255c478"
- integrity sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==
- dependencies:
- "@types/node" "*"
-
-"@types/node@*":
- version "25.0.8"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-25.0.8.tgz#e54e00f94fe1db2497b3e42d292b8376a2678c8d"
- integrity sha512-powIePYMmC3ibL0UJ2i2s0WIbq6cg6UyVFQxSCpaPxxzAaziRfimGivjdF943sSGV6RADVbk0Nvlm5P/FB44Zg==
- dependencies:
- undici-types "~7.16.0"
-
-"@types/node@^22.5.5":
- version "22.19.6"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-22.19.6.tgz#0e9d80ebcd2dfce03265768c17a1212d4eb07e82"
- integrity sha512-qm+G8HuG6hOHQigsi7VGuLjUVu6TtBo/F05zvX04Mw2uCg9Dv0Qxy3Qw7j41SidlTcl5D/5yg0SEZqOB+EqZnQ==
- dependencies:
- undici-types "~6.21.0"
-
-"@types/qs@*", "@types/qs@^6.14.0":
- version "6.14.0"
- resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.14.0.tgz#d8b60cecf62f2db0fb68e5e006077b9178b85de5"
- integrity sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==
-
-"@types/range-parser@*":
- version "1.2.7"
- resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb"
- integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==
-
-"@types/send@*":
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/@types/send/-/send-1.2.1.tgz#6a784e45543c18c774c049bff6d3dbaf045c9c74"
- integrity sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==
- dependencies:
- "@types/node" "*"
-
-"@types/serve-static@^2":
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-2.2.0.tgz#d4a447503ead0d1671132d1ab6bd58b805d8de6a"
- integrity sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==
- dependencies:
- "@types/http-errors" "*"
- "@types/node" "*"
-
-"@types/stack-utils@^2.0.0":
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8"
- integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==
-
-"@types/wrap-ansi@^3.0.0":
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz#18b97a972f94f60a679fd5c796d96421b9abb9fd"
- integrity sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==
-
-"@types/yargs-parser@*":
- version "21.0.3"
- resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15"
- integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==
-
-"@types/yargs@^17.0.8":
- version "17.0.35"
- resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.35.tgz#07013e46aa4d7d7d50a49e15604c1c5340d4eb24"
- integrity sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==
- dependencies:
- "@types/yargs-parser" "*"
-
-"@typescript-eslint/eslint-plugin@8.31.1":
- version "8.31.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.31.1.tgz#62f1befe59647524994e89de4516d8dcba7a850a"
- integrity sha512-oUlH4h1ABavI4F0Xnl8/fOtML/eu8nI2A1nYd+f+55XI0BLu+RIqKoCiZKNo6DtqZBEQm5aNKA20G3Z5w3R6GQ==
- dependencies:
- "@eslint-community/regexpp" "^4.10.0"
- "@typescript-eslint/scope-manager" "8.31.1"
- "@typescript-eslint/type-utils" "8.31.1"
- "@typescript-eslint/utils" "8.31.1"
- "@typescript-eslint/visitor-keys" "8.31.1"
- graphemer "^1.4.0"
- ignore "^5.3.1"
- natural-compare "^1.4.0"
- ts-api-utils "^2.0.1"
-
-"@typescript-eslint/parser@8.31.1":
- version "8.31.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.31.1.tgz#e9b0ccf30d37dde724ee4d15f4dbc195995cce1b"
- integrity sha512-oU/OtYVydhXnumd0BobL9rkJg7wFJ9bFFPmSmB/bf/XWN85hlViji59ko6bSKBXyseT9V8l+CN1nwmlbiN0G7Q==
- dependencies:
- "@typescript-eslint/scope-manager" "8.31.1"
- "@typescript-eslint/types" "8.31.1"
- "@typescript-eslint/typescript-estree" "8.31.1"
- "@typescript-eslint/visitor-keys" "8.31.1"
- debug "^4.3.4"
-
-"@typescript-eslint/scope-manager@8.31.1":
- version "8.31.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.31.1.tgz#1eb52e76878f545e4add142e0d8e3e97e7aa443b"
- integrity sha512-BMNLOElPxrtNQMIsFHE+3P0Yf1z0dJqV9zLdDxN/xLlWMlXK/ApEsVEKzpizg9oal8bAT5Sc7+ocal7AC1HCVw==
- dependencies:
- "@typescript-eslint/types" "8.31.1"
- "@typescript-eslint/visitor-keys" "8.31.1"
-
-"@typescript-eslint/type-utils@8.31.1":
- version "8.31.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.31.1.tgz#be0f438fb24b03568e282a0aed85f776409f970c"
- integrity sha512-fNaT/m9n0+dpSp8G/iOQ05GoHYXbxw81x+yvr7TArTuZuCA6VVKbqWYVZrV5dVagpDTtj/O8k5HBEE/p/HM5LA==
- dependencies:
- "@typescript-eslint/typescript-estree" "8.31.1"
- "@typescript-eslint/utils" "8.31.1"
- debug "^4.3.4"
- ts-api-utils "^2.0.1"
-
-"@typescript-eslint/types@8.31.1":
- version "8.31.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.31.1.tgz#478ed6f7e8aee1be7b63a60212b6bffe1423b5d4"
- integrity sha512-SfepaEFUDQYRoA70DD9GtytljBePSj17qPxFHA/h3eg6lPTqGJ5mWOtbXCk1YrVU1cTJRd14nhaXWFu0l2troQ==
-
-"@typescript-eslint/typescript-estree@8.31.1":
- version "8.31.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.1.tgz#37792fe7ef4d3021c7580067c8f1ae66daabacdf"
- integrity sha512-kaA0ueLe2v7KunYOyWYtlf/QhhZb7+qh4Yw6Ni5kgukMIG+iP773tjgBiLWIXYumWCwEq3nLW+TUywEp8uEeag==
- dependencies:
- "@typescript-eslint/types" "8.31.1"
- "@typescript-eslint/visitor-keys" "8.31.1"
- debug "^4.3.4"
- fast-glob "^3.3.2"
- is-glob "^4.0.3"
- minimatch "^9.0.4"
- semver "^7.6.0"
- ts-api-utils "^2.0.1"
-
-"@typescript-eslint/utils@8.31.1":
- version "8.31.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.31.1.tgz#5628ea0393598a0b2f143d0fc6d019f0dee9dd14"
- integrity sha512-2DSI4SNfF5T4oRveQ4nUrSjUqjMND0nLq9rEkz0gfGr3tg0S5KB6DhwR+WZPCjzkZl3cH+4x2ce3EsL50FubjQ==
- dependencies:
- "@eslint-community/eslint-utils" "^4.4.0"
- "@typescript-eslint/scope-manager" "8.31.1"
- "@typescript-eslint/types" "8.31.1"
- "@typescript-eslint/typescript-estree" "8.31.1"
-
-"@typescript-eslint/visitor-keys@8.31.1":
- version "8.31.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.1.tgz#6742b0e3ba1e0c1e35bdaf78c03e759eb8dd8e75"
- integrity sha512-I+/rgqOVBn6f0o7NDTmAPWWC6NuqhV174lfYvAm9fUaWeiefLdux9/YI3/nLugEn9L8fcSi0XmpKi/r5u0nmpw==
- dependencies:
- "@typescript-eslint/types" "8.31.1"
- eslint-visitor-keys "^4.2.0"
-
-"@ungap/structured-clone@^1.2.0":
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8"
- integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==
-
-"@valtown/deno-http-worker@^0.0.21":
- version "0.0.21"
- resolved "https://registry.yarnpkg.com/@valtown/deno-http-worker/-/deno-http-worker-0.0.21.tgz#9ce3b5c1d0db211fe7ea8297881fe551838474ad"
- integrity sha512-16kFuUykann75lNytnXXIQlmpzreZjzdyT27ebT3yNGCS3kKaS1iZYWHc3Si9An54Cphwr4qEcviChQkEeJBlA==
-
-accepts@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/accepts/-/accepts-2.0.0.tgz#bbcf4ba5075467f3f2131eab3cffc73c2f5d7895"
- integrity sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==
- dependencies:
- mime-types "^3.0.0"
- negotiator "^1.0.0"
-
-acorn-jsx@^5.3.2:
- version "5.3.2"
- resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
- integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
-
-acorn-walk@^8.1.1:
- version "8.3.4"
- resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7"
- integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==
- dependencies:
- acorn "^8.11.0"
-
-acorn@^8.11.0, acorn@^8.4.1, acorn@^8.9.0:
- version "8.15.0"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816"
- integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==
-
-aggregate-error@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
- integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
- dependencies:
- clean-stack "^2.0.0"
- indent-string "^4.0.0"
-
-ajv-formats@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-3.0.1.tgz#3d5dc762bca17679c3c2ea7e90ad6b7532309578"
- integrity sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==
- dependencies:
- ajv "^8.0.0"
-
-ajv@^6.12.4:
- version "6.12.6"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
- integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
- dependencies:
- fast-deep-equal "^3.1.1"
- fast-json-stable-stringify "^2.0.0"
- json-schema-traverse "^0.4.1"
- uri-js "^4.2.2"
-
-ajv@^8.0.0, ajv@^8.17.1:
- version "8.17.1"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6"
- integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==
- dependencies:
- fast-deep-equal "^3.1.3"
- fast-uri "^3.0.1"
- json-schema-traverse "^1.0.0"
- require-from-string "^2.0.2"
-
-ansi-escapes@^4.2.1, ansi-escapes@^4.3.2:
- version "4.3.2"
- resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
- integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
- dependencies:
- type-fest "^0.21.3"
-
-ansi-regex@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
- integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
-
-ansi-styles@^4.0.0, ansi-styles@^4.1.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
- integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
- dependencies:
- color-convert "^2.0.1"
-
-ansi-styles@^5.0.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
- integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
-
-anymatch@^3.0.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
- integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
- dependencies:
- normalize-path "^3.0.0"
- picomatch "^2.0.4"
-
-arg@^4.1.0:
- version "4.1.3"
- resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
- integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
-
-argparse@^1.0.7:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
- integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
- dependencies:
- sprintf-js "~1.0.2"
-
-argparse@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
- integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
-
-atomic-sleep@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b"
- integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==
-
-babel-jest@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5"
- integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==
- dependencies:
- "@jest/transform" "^29.7.0"
- "@types/babel__core" "^7.1.14"
- babel-plugin-istanbul "^6.1.1"
- babel-preset-jest "^29.6.3"
- chalk "^4.0.0"
- graceful-fs "^4.2.9"
- slash "^3.0.0"
-
-babel-plugin-istanbul@^6.1.1:
- version "6.1.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73"
- integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@istanbuljs/load-nyc-config" "^1.0.0"
- "@istanbuljs/schema" "^0.1.2"
- istanbul-lib-instrument "^5.0.4"
- test-exclude "^6.0.0"
-
-babel-plugin-jest-hoist@^29.6.3:
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626"
- integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==
- dependencies:
- "@babel/template" "^7.3.3"
- "@babel/types" "^7.3.3"
- "@types/babel__core" "^7.1.14"
- "@types/babel__traverse" "^7.0.6"
-
-babel-preset-current-node-syntax@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz#20730d6cdc7dda5d89401cab10ac6a32067acde6"
- integrity sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==
- dependencies:
- "@babel/plugin-syntax-async-generators" "^7.8.4"
- "@babel/plugin-syntax-bigint" "^7.8.3"
- "@babel/plugin-syntax-class-properties" "^7.12.13"
- "@babel/plugin-syntax-class-static-block" "^7.14.5"
- "@babel/plugin-syntax-import-attributes" "^7.24.7"
- "@babel/plugin-syntax-import-meta" "^7.10.4"
- "@babel/plugin-syntax-json-strings" "^7.8.3"
- "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
- "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
- "@babel/plugin-syntax-numeric-separator" "^7.10.4"
- "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
- "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
- "@babel/plugin-syntax-optional-chaining" "^7.8.3"
- "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
- "@babel/plugin-syntax-top-level-await" "^7.14.5"
-
-babel-preset-jest@^29.6.3:
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c"
- integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==
- dependencies:
- babel-plugin-jest-hoist "^29.6.3"
- babel-preset-current-node-syntax "^1.0.0"
-
-balanced-match@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
- integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
-
-baseline-browser-mapping@^2.9.0:
- version "2.9.14"
- resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.14.tgz#3b6af0bc032445bca04de58caa9a87cfe921cbb3"
- integrity sha512-B0xUquLkiGLgHhpPBqvl7GWegWBUNuujQ6kXd/r1U38ElPT6Ok8KZ8e+FpUGEc2ZoRQUzq/aUnaKFc/svWUGSg==
-
-body-parser@^2.2.1:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-2.2.2.tgz#1a32cdb966beaf68de50a9dfbe5b58f83cb8890c"
- integrity sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==
- dependencies:
- bytes "^3.1.2"
- content-type "^1.0.5"
- debug "^4.4.3"
- http-errors "^2.0.0"
- iconv-lite "^0.7.0"
- on-finished "^2.4.1"
- qs "^6.14.1"
- raw-body "^3.0.1"
- type-is "^2.0.1"
-
-brace-expansion@^1.1.7:
- version "1.1.12"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843"
- integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==
- dependencies:
- balanced-match "^1.0.0"
- concat-map "0.0.1"
-
-brace-expansion@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7"
- integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==
- dependencies:
- balanced-match "^1.0.0"
-
-braces@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
- integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
- dependencies:
- fill-range "^7.1.1"
-
-browserslist@^4.24.0:
- version "4.28.1"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.1.tgz#7f534594628c53c63101079e27e40de490456a95"
- integrity sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==
- dependencies:
- baseline-browser-mapping "^2.9.0"
- caniuse-lite "^1.0.30001759"
- electron-to-chromium "^1.5.263"
- node-releases "^2.0.27"
- update-browserslist-db "^1.2.0"
-
-bs-logger@^0.2.6:
- version "0.2.6"
- resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8"
- integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==
- dependencies:
- fast-json-stable-stringify "2.x"
-
-bser@2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
- integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==
- dependencies:
- node-int64 "^0.4.0"
-
-buffer-from@^1.0.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
- integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
-
-bytes@^3.1.2, bytes@~3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
- integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
-
-call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6"
- integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==
- dependencies:
- es-errors "^1.3.0"
- function-bind "^1.1.2"
-
-call-bound@^1.0.2:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a"
- integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==
- dependencies:
- call-bind-apply-helpers "^1.0.2"
- get-intrinsic "^1.3.0"
-
-callsites@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
- integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
-
-camelcase@^5.3.1:
- version "5.3.1"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
- integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
-
-camelcase@^6.2.0:
- version "6.3.0"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
- integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
-
-caniuse-lite@^1.0.30001759:
- version "1.0.30001764"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001764.tgz#03206c56469f236103b90f9ae10bcb8b9e1f6005"
- integrity sha512-9JGuzl2M+vPL+pz70gtMF9sHdMFbY9FJaQBi186cHKH3pSzDvzoUJUPV6fqiKIMyXbud9ZLg4F3Yza1vJ1+93g==
-
-chalk@^4.0.0:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
- integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
- dependencies:
- ansi-styles "^4.1.0"
- supports-color "^7.1.0"
-
-char-regex@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
- integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==
-
-chardet@^0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
- integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
-
-ci-info@^3.2.0:
- version "3.9.0"
- resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4"
- integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
-
-cjs-module-lexer@^1.0.0:
- version "1.4.3"
- resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz#0f79731eb8cfe1ec72acd4066efac9d61991b00d"
- integrity sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==
-
-clean-stack@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
- integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
-
-cli-width@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5"
- integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==
-
-cliui@^8.0.1:
- version "8.0.1"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"
- integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
- dependencies:
- string-width "^4.2.0"
- strip-ansi "^6.0.1"
- wrap-ansi "^7.0.0"
-
-co@^4.6.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
- integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==
-
-code-block-writer@^12.0.0:
- version "12.0.0"
- resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-12.0.0.tgz#4dd58946eb4234105aff7f0035977b2afdc2a770"
- integrity sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==
-
-collect-v8-coverage@^1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz#cc1f01eb8d02298cbc9a437c74c70ab4e5210b80"
- integrity sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==
-
-color-convert@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
- integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
- dependencies:
- color-name "~1.1.4"
-
-color-name@~1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
- integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-
-colorette@^2.0.7:
- version "2.0.20"
- resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a"
- integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==
-
-commander@^13.1.0:
- version "13.1.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-13.1.0.tgz#776167db68c78f38dcce1f9b8d7b8b9a488abf46"
- integrity sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==
-
-concat-map@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
- integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
-
-content-disposition@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-1.0.1.tgz#a8b7bbeb2904befdfb6787e5c0c086959f605f9b"
- integrity sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==
-
-content-type@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
- integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
-
-convert-source-map@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
- integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
-
-cookie-parser@^1.4.6:
- version "1.4.7"
- resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.7.tgz#e2125635dfd766888ffe90d60c286404fa0e7b26"
- integrity sha512-nGUvgXnotP3BsjiLX2ypbQnWoGUPIIfHQNZkkC668ntrzGWEZVW70HDEB1qnNGMicPje6EttlIgzo51YSwNQGw==
- dependencies:
- cookie "0.7.2"
- cookie-signature "1.0.6"
-
-cookie-signature@1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
- integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
-
-cookie-signature@^1.2.1:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.2.2.tgz#57c7fc3cc293acab9fec54d73e15690ebe4a1793"
- integrity sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==
-
-cookie@0.7.2, cookie@^0.7.1:
- version "0.7.2"
- resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7"
- integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==
-
-cors@^2.8.5:
- version "2.8.5"
- resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29"
- integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==
- dependencies:
- object-assign "^4"
- vary "^1"
-
-create-jest@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320"
- integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==
- dependencies:
- "@jest/types" "^29.6.3"
- chalk "^4.0.0"
- exit "^0.1.2"
- graceful-fs "^4.2.9"
- jest-config "^29.7.0"
- jest-util "^29.7.0"
- prompts "^2.0.1"
-
-create-require@^1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
- integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
-
-cross-spawn@^7.0.2, cross-spawn@^7.0.3, cross-spawn@^7.0.5:
- version "7.0.6"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
- integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
- dependencies:
- path-key "^3.1.0"
- shebang-command "^2.0.0"
- which "^2.0.1"
-
-dateformat@^4.6.3:
- version "4.6.3"
- resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5"
- integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==
-
-debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.7, debug@^4.4.0, debug@^4.4.3:
- version "4.4.3"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a"
- integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==
- dependencies:
- ms "^2.1.3"
-
-dedent@^1.0.0:
- version "1.7.1"
- resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.7.1.tgz#364661eea3d73f3faba7089214420ec2f8f13e15"
- integrity sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==
-
-deep-is@^0.1.3:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
- integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
-
-deepmerge@^4.2.2:
- version "4.3.1"
- resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
- integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
-
-depd@^2.0.0, depd@~2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
- integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
-
-detect-newline@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
- integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
-
-diff-sequences@^29.6.3:
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921"
- integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==
-
-diff@^4.0.1:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
- integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
-
-doctrine@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
- integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
- dependencies:
- esutils "^2.0.2"
-
-dunder-proto@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a"
- integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==
- dependencies:
- call-bind-apply-helpers "^1.0.1"
- es-errors "^1.3.0"
- gopd "^1.2.0"
-
-ee-first@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
- integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
-
-electron-to-chromium@^1.5.263:
- version "1.5.267"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz#5d84f2df8cdb6bfe7e873706bb21bd4bfb574dc7"
- integrity sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==
-
-emittery@^0.13.1:
- version "0.13.1"
- resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad"
- integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==
-
-emoji-regex@^8.0.0:
- version "8.0.0"
- resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
- integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
-
-encodeurl@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58"
- integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==
-
-end-of-stream@^1.1.0:
- version "1.4.5"
- resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.5.tgz#7344d711dea40e0b74abc2ed49778743ccedb08c"
- integrity sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==
- dependencies:
- once "^1.4.0"
-
-error-ex@^1.3.1:
- version "1.3.4"
- resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.4.tgz#b3a8d8bb6f92eecc1629e3e27d3c8607a8a32414"
- integrity sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==
- dependencies:
- is-arrayish "^0.2.1"
-
-es-define-property@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa"
- integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==
-
-es-errors@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
- integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
-
-es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1"
- integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==
- dependencies:
- es-errors "^1.3.0"
-
-escalade@^3.1.1, escalade@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
- integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
-
-escape-html@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
- integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
-
-escape-string-regexp@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
- integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
-
-escape-string-regexp@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
- integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
-
-eslint-plugin-prettier@^5.0.1:
- version "5.5.5"
- resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.5.tgz#9eae11593faa108859c26f9a9c367d619a0769c0"
- integrity sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==
- dependencies:
- prettier-linter-helpers "^1.0.1"
- synckit "^0.11.12"
-
-eslint-plugin-unused-imports@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.2.0.tgz#63a98c9ad5f622cd9f830f70bc77739f25ccfe0d"
- integrity sha512-6uXyn6xdINEpxE1MtDjxQsyXB37lfyO2yKGVVgtD7WEWQGORSOZjgrD6hBhvGv4/SO+TOlS+UnC6JppRqbuwGQ==
- dependencies:
- eslint-rule-composer "^0.3.0"
-
-eslint-rule-composer@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9"
- integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==
-
-eslint-scope@^7.2.2:
- version "7.2.2"
- resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f"
- integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==
- dependencies:
- esrecurse "^4.3.0"
- estraverse "^5.2.0"
-
-eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3:
- version "3.4.3"
- resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
- integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
-
-eslint-visitor-keys@^4.2.0:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#4cfea60fe7dd0ad8e816e1ed026c1d5251b512c1"
- integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==
-
-eslint@^8.49.0:
- version "8.57.1"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.1.tgz#7df109654aba7e3bbe5c8eae533c5e461d3c6ca9"
- integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==
- dependencies:
- "@eslint-community/eslint-utils" "^4.2.0"
- "@eslint-community/regexpp" "^4.6.1"
- "@eslint/eslintrc" "^2.1.4"
- "@eslint/js" "8.57.1"
- "@humanwhocodes/config-array" "^0.13.0"
- "@humanwhocodes/module-importer" "^1.0.1"
- "@nodelib/fs.walk" "^1.2.8"
- "@ungap/structured-clone" "^1.2.0"
- ajv "^6.12.4"
- chalk "^4.0.0"
- cross-spawn "^7.0.2"
- debug "^4.3.2"
- doctrine "^3.0.0"
- escape-string-regexp "^4.0.0"
- eslint-scope "^7.2.2"
- eslint-visitor-keys "^3.4.3"
- espree "^9.6.1"
- esquery "^1.4.2"
- esutils "^2.0.2"
- fast-deep-equal "^3.1.3"
- file-entry-cache "^6.0.1"
- find-up "^5.0.0"
- glob-parent "^6.0.2"
- globals "^13.19.0"
- graphemer "^1.4.0"
- ignore "^5.2.0"
- imurmurhash "^0.1.4"
- is-glob "^4.0.0"
- is-path-inside "^3.0.3"
- js-yaml "^4.1.0"
- json-stable-stringify-without-jsonify "^1.0.1"
- levn "^0.4.1"
- lodash.merge "^4.6.2"
- minimatch "^3.1.2"
- natural-compare "^1.4.0"
- optionator "^0.9.3"
- strip-ansi "^6.0.1"
- text-table "^0.2.0"
-
-espree@^9.6.0, espree@^9.6.1:
- version "9.6.1"
- resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
- integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
- dependencies:
- acorn "^8.9.0"
- acorn-jsx "^5.3.2"
- eslint-visitor-keys "^3.4.1"
-
-esprima@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
- integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
-
-esquery@^1.4.2:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.7.0.tgz#08d048f261f0ddedb5bae95f46809463d9c9496d"
- integrity sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==
- dependencies:
- estraverse "^5.1.0"
-
-esrecurse@^4.3.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
- integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
- dependencies:
- estraverse "^5.2.0"
-
-estraverse@^5.1.0, estraverse@^5.2.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
- integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
-
-esutils@^2.0.2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
- integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
-
-etag@^1.8.1:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
- integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
-
-eventsource-parser@^3.0.0, eventsource-parser@^3.0.1:
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/eventsource-parser/-/eventsource-parser-3.0.6.tgz#292e165e34cacbc936c3c92719ef326d4aeb4e90"
- integrity sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==
-
-eventsource@^3.0.2:
- version "3.0.7"
- resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-3.0.7.tgz#1157622e2f5377bb6aef2114372728ba0c156989"
- integrity sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==
- dependencies:
- eventsource-parser "^3.0.1"
-
-execa@^5.0.0:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
- integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
- dependencies:
- cross-spawn "^7.0.3"
- get-stream "^6.0.0"
- human-signals "^2.1.0"
- is-stream "^2.0.0"
- merge-stream "^2.0.0"
- npm-run-path "^4.0.1"
- onetime "^5.1.2"
- signal-exit "^3.0.3"
- strip-final-newline "^2.0.0"
-
-exit@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
- integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==
-
-expect@^29.0.0, expect@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc"
- integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==
- dependencies:
- "@jest/expect-utils" "^29.7.0"
- jest-get-type "^29.6.3"
- jest-matcher-utils "^29.7.0"
- jest-message-util "^29.7.0"
- jest-util "^29.7.0"
-
-express-rate-limit@^8.2.1:
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/express-rate-limit/-/express-rate-limit-8.2.1.tgz#ec75fdfe280ecddd762b8da8784c61bae47d7f7f"
- integrity sha512-PCZEIEIxqwhzw4KF0n7QF4QqruVTcF73O5kFKUnGOyjbCCgizBBiFaYpd/fnBLUMPw/BWw9OsiN7GgrNYr7j6g==
- dependencies:
- ip-address "10.0.1"
-
-express@^5.1.0, express@^5.2.1:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/express/-/express-5.2.1.tgz#8f21d15b6d327f92b4794ecf8cb08a72f956ac04"
- integrity sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==
- dependencies:
- accepts "^2.0.0"
- body-parser "^2.2.1"
- content-disposition "^1.0.0"
- content-type "^1.0.5"
- cookie "^0.7.1"
- cookie-signature "^1.2.1"
- debug "^4.4.0"
- depd "^2.0.0"
- encodeurl "^2.0.0"
- escape-html "^1.0.3"
- etag "^1.8.1"
- finalhandler "^2.1.0"
- fresh "^2.0.0"
- http-errors "^2.0.0"
- merge-descriptors "^2.0.0"
- mime-types "^3.0.0"
- on-finished "^2.4.1"
- once "^1.4.0"
- parseurl "^1.3.3"
- proxy-addr "^2.0.7"
- qs "^6.14.0"
- range-parser "^1.2.1"
- router "^2.2.0"
- send "^1.1.0"
- serve-static "^2.2.0"
- statuses "^2.0.1"
- type-is "^2.0.1"
- vary "^1.1.2"
-
-external-editor@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
- integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==
- dependencies:
- chardet "^0.7.0"
- iconv-lite "^0.4.24"
- tmp "^0.0.33"
-
-fast-copy@^4.0.0:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/fast-copy/-/fast-copy-4.0.2.tgz#57f14115e1edbec274f69090072a480aa29cbedd"
- integrity sha512-ybA6PDXIXOXivLJK/z9e+Otk7ve13I4ckBvGO5I2RRmBU1gMHLVDJYEuJYhGwez7YNlYji2M2DvVU+a9mSFDlw==
-
-fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
- integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
-
-fast-diff@^1.1.2:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0"
- integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==
-
-fast-glob@^3.2.12, fast-glob@^3.3.2:
- version "3.3.3"
- resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818"
- integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==
- dependencies:
- "@nodelib/fs.stat" "^2.0.2"
- "@nodelib/fs.walk" "^1.2.3"
- glob-parent "^5.1.2"
- merge2 "^1.3.0"
- micromatch "^4.0.8"
-
-fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
- integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
-
-fast-levenshtein@^2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
- integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
-
-fast-safe-stringify@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884"
- integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==
-
-fast-sha256@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/fast-sha256/-/fast-sha256-1.3.0.tgz#7916ba2054eeb255982608cccd0f6660c79b7ae6"
- integrity sha512-n11RGP/lrWEFI/bWdygLxhI+pVeo1ZYIVwvvPkW7azl/rOy+F3HYRZ2K5zeE9mmkhQppyv9sQFx0JM9UabnpPQ==
-
-fast-uri@^3.0.1:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz#66eecff6c764c0df9b762e62ca7edcfb53b4edfa"
- integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==
-
-fastq@^1.6.0:
- version "1.20.1"
- resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.20.1.tgz#ca750a10dc925bc8b18839fd203e3ef4b3ced675"
- integrity sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==
- dependencies:
- reusify "^1.0.4"
-
-fb-watchman@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c"
- integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==
- dependencies:
- bser "2.1.1"
-
-fflate@^0.8.2:
- version "0.8.2"
- resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.8.2.tgz#fc8631f5347812ad6028bbe4a2308b2792aa1dea"
- integrity sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==
-
-file-entry-cache@^6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
- integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
- dependencies:
- flat-cache "^3.0.4"
-
-fill-range@^7.1.1:
- version "7.1.1"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
- integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
- dependencies:
- to-regex-range "^5.0.1"
-
-finalhandler@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-2.1.1.tgz#a2c517a6559852bcdb06d1f8bd7f51b68fad8099"
- integrity sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==
- dependencies:
- debug "^4.4.0"
- encodeurl "^2.0.0"
- escape-html "^1.0.3"
- on-finished "^2.4.1"
- parseurl "^1.3.3"
- statuses "^2.0.1"
-
-find-up@^4.0.0, find-up@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
- integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
- dependencies:
- locate-path "^5.0.0"
- path-exists "^4.0.0"
-
-find-up@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
- integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
- dependencies:
- locate-path "^6.0.0"
- path-exists "^4.0.0"
-
-flat-cache@^3.0.4:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee"
- integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==
- dependencies:
- flatted "^3.2.9"
- keyv "^4.5.3"
- rimraf "^3.0.2"
-
-flatted@^3.2.9:
- version "3.3.3"
- resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358"
- integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==
-
-flora-colossus@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/flora-colossus/-/flora-colossus-2.0.0.tgz#af1e85db0a8256ef05f3fb531c1235236c97220a"
- integrity sha512-dz4HxH6pOvbUzZpZ/yXhafjbR2I8cenK5xL0KtBFb7U2ADsR+OwXifnxZjij/pZWF775uSCMzWVd+jDik2H2IA==
- dependencies:
- debug "^4.3.4"
- fs-extra "^10.1.0"
-
-forwarded@0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
- integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
-
-fresh@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/fresh/-/fresh-2.0.0.tgz#8dd7df6a1b3a1b3a5cf186c05a5dd267622635a4"
- integrity sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==
-
-fs-extra@^10.1.0:
- version "10.1.0"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf"
- integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==
- dependencies:
- graceful-fs "^4.2.0"
- jsonfile "^6.0.1"
- universalify "^2.0.0"
-
-fs.realpath@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
- integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
-
-fsevents@^2.3.2:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
- integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
-
-function-bind@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
- integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
-
-fuse.js@^7.1.0:
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-7.1.0.tgz#306228b4befeee11e05b027087c2744158527d09"
- integrity sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ==
-
-galactus@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/galactus/-/galactus-1.0.0.tgz#c2615182afa0c6d0859b92e56ae36d052827db7e"
- integrity sha512-R1fam6D4CyKQGNlvJne4dkNF+PvUUl7TAJInvTGa9fti9qAv95quQz29GXapA4d8Ec266mJJxFVh82M4GIIGDQ==
- dependencies:
- debug "^4.3.4"
- flora-colossus "^2.0.0"
- fs-extra "^10.1.0"
-
-gensync@^1.0.0-beta.2:
- version "1.0.0-beta.2"
- resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
- integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
-
-get-caller-file@^2.0.5:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
- integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
-
-get-intrinsic@^1.2.5, get-intrinsic@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01"
- integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
- dependencies:
- call-bind-apply-helpers "^1.0.2"
- es-define-property "^1.0.1"
- es-errors "^1.3.0"
- es-object-atoms "^1.1.1"
- function-bind "^1.1.2"
- get-proto "^1.0.1"
- gopd "^1.2.0"
- has-symbols "^1.1.0"
- hasown "^2.0.2"
- math-intrinsics "^1.1.0"
-
-get-package-type@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
- integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
-
-get-proto@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1"
- integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==
- dependencies:
- dunder-proto "^1.0.1"
- es-object-atoms "^1.0.0"
-
-get-stdin@^8.0.0:
- version "8.0.0"
- resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53"
- integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==
-
-get-stream@^6.0.0:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
- integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
-
-glob-parent@^5.1.2:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
- integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
- dependencies:
- is-glob "^4.0.1"
-
-glob-parent@^6.0.2:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
- integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
- dependencies:
- is-glob "^4.0.3"
-
-glob@^7.1.3, glob@^7.1.4:
- version "7.2.3"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
- integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.1.1"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-globals@^13.19.0:
- version "13.24.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171"
- integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==
- dependencies:
- type-fest "^0.20.2"
-
-gopd@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
- integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
-
-graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.9:
- version "4.2.11"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
- integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
-
-graphemer@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
- integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
-
-handlebars@^4.7.8:
- version "4.7.8"
- resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9"
- integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==
- dependencies:
- minimist "^1.2.5"
- neo-async "^2.6.2"
- source-map "^0.6.1"
- wordwrap "^1.0.0"
- optionalDependencies:
- uglify-js "^3.1.4"
-
-has-flag@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
- integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
-
-has-symbols@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338"
- integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
-
-hasown@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
- integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
- dependencies:
- function-bind "^1.1.2"
-
-help-me@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/help-me/-/help-me-5.0.0.tgz#b1ebe63b967b74060027c2ac61f9be12d354a6f6"
- integrity sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==
-
-hono@^4.11.4:
- version "4.12.4"
- resolved "https://registry.yarnpkg.com/hono/-/hono-4.12.4.tgz#fcfb5a064b90d5203dd41231e0d5a67262fc1729"
- integrity sha512-ooiZW1Xy8rQ4oELQ++otI2T9DsKpV0M6c6cO6JGx4RTfav9poFFLlet9UMXHZnoM1yG0HWGlQLswBGX3RZmHtg==
-
-html-escaper@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
- integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
-
-http-errors@^2.0.0, http-errors@^2.0.1, http-errors@~2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.1.tgz#36d2f65bc909c8790018dd36fb4d93da6caae06b"
- integrity sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==
- dependencies:
- depd "~2.0.0"
- inherits "~2.0.4"
- setprototypeof "~1.2.0"
- statuses "~2.0.2"
- toidentifier "~1.0.1"
-
-human-signals@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
- integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
-
-iconv-lite@^0.4.24:
- version "0.4.24"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
- integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
- dependencies:
- safer-buffer ">= 2.1.2 < 3"
-
-iconv-lite@^0.7.0, iconv-lite@~0.7.0:
- version "0.7.2"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.7.2.tgz#d0bdeac3f12b4835b7359c2ad89c422a4d1cc72e"
- integrity sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==
- dependencies:
- safer-buffer ">= 2.1.2 < 3.0.0"
-
-ignore@^5.2.0, ignore@^5.3.1:
- version "5.3.2"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5"
- integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
-
-ignore@^7.0.5:
- version "7.0.5"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9"
- integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==
-
-import-fresh@^3.2.1:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf"
- integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==
- dependencies:
- parent-module "^1.0.0"
- resolve-from "^4.0.0"
-
-import-local@^3.0.2:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260"
- integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==
- dependencies:
- pkg-dir "^4.2.0"
- resolve-cwd "^3.0.0"
-
-imurmurhash@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
- integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
-
-indent-string@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
- integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
-
-inflight@^1.0.4:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
- integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
- dependencies:
- once "^1.3.0"
- wrappy "1"
-
-inherits@2, inherits@^2.0.3, inherits@~2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
- integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-
-ip-address@10.0.1:
- version "10.0.1"
- resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-10.0.1.tgz#a8180b783ce7788777d796286d61bce4276818ed"
- integrity sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==
-
-ipaddr.js@1.9.1:
- version "1.9.1"
- resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
- integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
-
-is-arrayish@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
- integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
-
-is-core-module@^2.16.1:
- version "2.16.1"
- resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4"
- integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==
- dependencies:
- hasown "^2.0.2"
-
-is-extglob@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
- integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
-
-is-fullwidth-code-point@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
- integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
-
-is-generator-fn@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
- integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
-
-is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
- integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
- dependencies:
- is-extglob "^2.1.1"
-
-is-number@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
- integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
-
-is-path-inside@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
- integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
-
-is-promise@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3"
- integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==
-
-is-stream@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
- integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
-
-isexe@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
- integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
-
-istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756"
- integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==
-
-istanbul-lib-instrument@^5.0.4:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d"
- integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==
- dependencies:
- "@babel/core" "^7.12.3"
- "@babel/parser" "^7.14.7"
- "@istanbuljs/schema" "^0.1.2"
- istanbul-lib-coverage "^3.2.0"
- semver "^6.3.0"
-
-istanbul-lib-instrument@^6.0.0:
- version "6.0.3"
- resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765"
- integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==
- dependencies:
- "@babel/core" "^7.23.9"
- "@babel/parser" "^7.23.9"
- "@istanbuljs/schema" "^0.1.3"
- istanbul-lib-coverage "^3.2.0"
- semver "^7.5.4"
-
-istanbul-lib-report@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d"
- integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==
- dependencies:
- istanbul-lib-coverage "^3.0.0"
- make-dir "^4.0.0"
- supports-color "^7.1.0"
-
-istanbul-lib-source-maps@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551"
- integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==
- dependencies:
- debug "^4.1.1"
- istanbul-lib-coverage "^3.0.0"
- source-map "^0.6.1"
-
-istanbul-reports@^3.1.3:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.2.0.tgz#cb4535162b5784aa623cee21a7252cf2c807ac93"
- integrity sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==
- dependencies:
- html-escaper "^2.0.0"
- istanbul-lib-report "^3.0.0"
-
-jest-changed-files@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a"
- integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==
- dependencies:
- execa "^5.0.0"
- jest-util "^29.7.0"
- p-limit "^3.1.0"
-
-jest-circus@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a"
- integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==
- dependencies:
- "@jest/environment" "^29.7.0"
- "@jest/expect" "^29.7.0"
- "@jest/test-result" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- chalk "^4.0.0"
- co "^4.6.0"
- dedent "^1.0.0"
- is-generator-fn "^2.0.0"
- jest-each "^29.7.0"
- jest-matcher-utils "^29.7.0"
- jest-message-util "^29.7.0"
- jest-runtime "^29.7.0"
- jest-snapshot "^29.7.0"
- jest-util "^29.7.0"
- p-limit "^3.1.0"
- pretty-format "^29.7.0"
- pure-rand "^6.0.0"
- slash "^3.0.0"
- stack-utils "^2.0.3"
-
-jest-cli@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995"
- integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==
- dependencies:
- "@jest/core" "^29.7.0"
- "@jest/test-result" "^29.7.0"
- "@jest/types" "^29.6.3"
- chalk "^4.0.0"
- create-jest "^29.7.0"
- exit "^0.1.2"
- import-local "^3.0.2"
- jest-config "^29.7.0"
- jest-util "^29.7.0"
- jest-validate "^29.7.0"
- yargs "^17.3.1"
-
-jest-config@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f"
- integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==
- dependencies:
- "@babel/core" "^7.11.6"
- "@jest/test-sequencer" "^29.7.0"
- "@jest/types" "^29.6.3"
- babel-jest "^29.7.0"
- chalk "^4.0.0"
- ci-info "^3.2.0"
- deepmerge "^4.2.2"
- glob "^7.1.3"
- graceful-fs "^4.2.9"
- jest-circus "^29.7.0"
- jest-environment-node "^29.7.0"
- jest-get-type "^29.6.3"
- jest-regex-util "^29.6.3"
- jest-resolve "^29.7.0"
- jest-runner "^29.7.0"
- jest-util "^29.7.0"
- jest-validate "^29.7.0"
- micromatch "^4.0.4"
- parse-json "^5.2.0"
- pretty-format "^29.7.0"
- slash "^3.0.0"
- strip-json-comments "^3.1.1"
-
-jest-diff@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a"
- integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==
- dependencies:
- chalk "^4.0.0"
- diff-sequences "^29.6.3"
- jest-get-type "^29.6.3"
- pretty-format "^29.7.0"
-
-jest-docblock@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a"
- integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==
- dependencies:
- detect-newline "^3.0.0"
-
-jest-each@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1"
- integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==
- dependencies:
- "@jest/types" "^29.6.3"
- chalk "^4.0.0"
- jest-get-type "^29.6.3"
- jest-util "^29.7.0"
- pretty-format "^29.7.0"
-
-jest-environment-node@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376"
- integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==
- dependencies:
- "@jest/environment" "^29.7.0"
- "@jest/fake-timers" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- jest-mock "^29.7.0"
- jest-util "^29.7.0"
-
-jest-get-type@^29.6.3:
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1"
- integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==
-
-jest-haste-map@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104"
- integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==
- dependencies:
- "@jest/types" "^29.6.3"
- "@types/graceful-fs" "^4.1.3"
- "@types/node" "*"
- anymatch "^3.0.3"
- fb-watchman "^2.0.0"
- graceful-fs "^4.2.9"
- jest-regex-util "^29.6.3"
- jest-util "^29.7.0"
- jest-worker "^29.7.0"
- micromatch "^4.0.4"
- walker "^1.0.8"
- optionalDependencies:
- fsevents "^2.3.2"
-
-jest-leak-detector@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728"
- integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==
- dependencies:
- jest-get-type "^29.6.3"
- pretty-format "^29.7.0"
-
-jest-matcher-utils@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12"
- integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==
- dependencies:
- chalk "^4.0.0"
- jest-diff "^29.7.0"
- jest-get-type "^29.6.3"
- pretty-format "^29.7.0"
-
-jest-message-util@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3"
- integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==
- dependencies:
- "@babel/code-frame" "^7.12.13"
- "@jest/types" "^29.6.3"
- "@types/stack-utils" "^2.0.0"
- chalk "^4.0.0"
- graceful-fs "^4.2.9"
- micromatch "^4.0.4"
- pretty-format "^29.7.0"
- slash "^3.0.0"
- stack-utils "^2.0.3"
-
-jest-mock@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347"
- integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==
- dependencies:
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- jest-util "^29.7.0"
-
-jest-pnp-resolver@^1.2.2:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e"
- integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==
-
-jest-regex-util@^29.6.3:
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52"
- integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==
-
-jest-resolve-dependencies@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428"
- integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==
- dependencies:
- jest-regex-util "^29.6.3"
- jest-snapshot "^29.7.0"
-
-jest-resolve@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30"
- integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==
- dependencies:
- chalk "^4.0.0"
- graceful-fs "^4.2.9"
- jest-haste-map "^29.7.0"
- jest-pnp-resolver "^1.2.2"
- jest-util "^29.7.0"
- jest-validate "^29.7.0"
- resolve "^1.20.0"
- resolve.exports "^2.0.0"
- slash "^3.0.0"
-
-jest-runner@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e"
- integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==
- dependencies:
- "@jest/console" "^29.7.0"
- "@jest/environment" "^29.7.0"
- "@jest/test-result" "^29.7.0"
- "@jest/transform" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- chalk "^4.0.0"
- emittery "^0.13.1"
- graceful-fs "^4.2.9"
- jest-docblock "^29.7.0"
- jest-environment-node "^29.7.0"
- jest-haste-map "^29.7.0"
- jest-leak-detector "^29.7.0"
- jest-message-util "^29.7.0"
- jest-resolve "^29.7.0"
- jest-runtime "^29.7.0"
- jest-util "^29.7.0"
- jest-watcher "^29.7.0"
- jest-worker "^29.7.0"
- p-limit "^3.1.0"
- source-map-support "0.5.13"
-
-jest-runtime@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817"
- integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==
- dependencies:
- "@jest/environment" "^29.7.0"
- "@jest/fake-timers" "^29.7.0"
- "@jest/globals" "^29.7.0"
- "@jest/source-map" "^29.6.3"
- "@jest/test-result" "^29.7.0"
- "@jest/transform" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- chalk "^4.0.0"
- cjs-module-lexer "^1.0.0"
- collect-v8-coverage "^1.0.0"
- glob "^7.1.3"
- graceful-fs "^4.2.9"
- jest-haste-map "^29.7.0"
- jest-message-util "^29.7.0"
- jest-mock "^29.7.0"
- jest-regex-util "^29.6.3"
- jest-resolve "^29.7.0"
- jest-snapshot "^29.7.0"
- jest-util "^29.7.0"
- slash "^3.0.0"
- strip-bom "^4.0.0"
-
-jest-snapshot@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5"
- integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==
- dependencies:
- "@babel/core" "^7.11.6"
- "@babel/generator" "^7.7.2"
- "@babel/plugin-syntax-jsx" "^7.7.2"
- "@babel/plugin-syntax-typescript" "^7.7.2"
- "@babel/types" "^7.3.3"
- "@jest/expect-utils" "^29.7.0"
- "@jest/transform" "^29.7.0"
- "@jest/types" "^29.6.3"
- babel-preset-current-node-syntax "^1.0.0"
- chalk "^4.0.0"
- expect "^29.7.0"
- graceful-fs "^4.2.9"
- jest-diff "^29.7.0"
- jest-get-type "^29.6.3"
- jest-matcher-utils "^29.7.0"
- jest-message-util "^29.7.0"
- jest-util "^29.7.0"
- natural-compare "^1.4.0"
- pretty-format "^29.7.0"
- semver "^7.5.3"
-
-jest-util@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc"
- integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==
- dependencies:
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- chalk "^4.0.0"
- ci-info "^3.2.0"
- graceful-fs "^4.2.9"
- picomatch "^2.2.3"
-
-jest-validate@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c"
- integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==
- dependencies:
- "@jest/types" "^29.6.3"
- camelcase "^6.2.0"
- chalk "^4.0.0"
- jest-get-type "^29.6.3"
- leven "^3.1.0"
- pretty-format "^29.7.0"
-
-jest-watcher@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2"
- integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==
- dependencies:
- "@jest/test-result" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- ansi-escapes "^4.2.1"
- chalk "^4.0.0"
- emittery "^0.13.1"
- jest-util "^29.7.0"
- string-length "^4.0.1"
-
-jest-worker@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a"
- integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==
- dependencies:
- "@types/node" "*"
- jest-util "^29.7.0"
- merge-stream "^2.0.0"
- supports-color "^8.0.0"
-
-jest@^29.4.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613"
- integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==
- dependencies:
- "@jest/core" "^29.7.0"
- "@jest/types" "^29.6.3"
- import-local "^3.0.2"
- jest-cli "^29.7.0"
-
-jose@^6.1.3:
- version "6.1.3"
- resolved "https://registry.yarnpkg.com/jose/-/jose-6.1.3.tgz#8453d7be88af7bb7d64a0481d6a35a0145ba3ea5"
- integrity sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==
-
-joycon@^3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03"
- integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==
-
-"jq-web@https://github.com/stainless-api/jq-web/releases/download/v0.8.8/jq-web.tar.gz":
- version "0.8.8"
- resolved "https://github.com/stainless-api/jq-web/releases/download/v0.8.8/jq-web.tar.gz#7849ef64bdfc28f70cbfc9888f886860e96da10d"
-
-js-tokens@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
- integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
-
-js-yaml@^3.13.1:
- version "3.14.2"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.2.tgz#77485ce1dd7f33c061fd1b16ecea23b55fcb04b0"
- integrity sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==
- dependencies:
- argparse "^1.0.7"
- esprima "^4.0.0"
-
-js-yaml@^4.1.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b"
- integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==
- dependencies:
- argparse "^2.0.1"
-
-jsesc@^3.0.2:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d"
- integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==
-
-json-buffer@3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
- integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
-
-json-parse-even-better-errors@^2.3.0:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
- integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
-
-json-schema-traverse@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
- integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
-
-json-schema-traverse@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
- integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
-
-json-schema-typed@^8.0.2:
- version "8.0.2"
- resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-8.0.2.tgz#e98ee7b1899ff4a184534d1f167c288c66bbeff4"
- integrity sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==
-
-json-stable-stringify-without-jsonify@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
- integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
-
-json5@^2.2.2, json5@^2.2.3:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
- integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
-
-jsonfile@^6.0.1:
- version "6.2.0"
- resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.2.0.tgz#7c265bd1b65de6977478300087c99f1c84383f62"
- integrity sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==
- dependencies:
- universalify "^2.0.0"
- optionalDependencies:
- graceful-fs "^4.1.6"
-
-keyv@^4.5.3:
- version "4.5.4"
- resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
- integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
- dependencies:
- json-buffer "3.0.1"
-
-kleur@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
- integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
-
-leven@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
- integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
-
-levn@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
- integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
- dependencies:
- prelude-ls "^1.2.1"
- type-check "~0.4.0"
-
-lines-and-columns@^1.1.6:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
- integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
-
-"lithic@file:../../dist":
- version "0.130.0"
- dependencies:
- standardwebhooks "^1.0.0"
-
-locate-path@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
- integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
- dependencies:
- p-locate "^4.1.0"
-
-locate-path@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
- integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
- dependencies:
- p-locate "^5.0.0"
-
-lodash.memoize@^4.1.2:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
- integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==
-
-lodash.merge@^4.6.2:
- version "4.6.2"
- resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
- integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
-
-lru-cache@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
- integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
- dependencies:
- yallist "^3.0.2"
-
-make-dir@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e"
- integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==
- dependencies:
- semver "^7.5.3"
-
-make-error@^1.1.1, make-error@^1.3.6:
- version "1.3.6"
- resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
- integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
-
-makeerror@1.0.12:
- version "1.0.12"
- resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a"
- integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==
- dependencies:
- tmpl "1.0.5"
-
-math-intrinsics@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9"
- integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==
-
-media-typer@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-1.1.0.tgz#6ab74b8f2d3320f2064b2a87a38e7931ff3a5561"
- integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==
-
-merge-descriptors@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-2.0.0.tgz#ea922f660635a2249ee565e0449f951e6b603808"
- integrity sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==
-
-merge-stream@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
- integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
-
-merge2@^1.3.0:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
- integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
-
-micromatch@^4.0.4, micromatch@^4.0.8:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
- integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
- dependencies:
- braces "^3.0.3"
- picomatch "^2.3.1"
-
-mime-db@^1.54.0:
- version "1.54.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5"
- integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==
-
-mime-types@^3.0.0, mime-types@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-3.0.2.tgz#39002d4182575d5af036ffa118100f2524b2e2ab"
- integrity sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==
- dependencies:
- mime-db "^1.54.0"
-
-mimic-fn@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
- integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
-
-minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
- integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
- dependencies:
- brace-expansion "^1.1.7"
-
-minimatch@^7.4.3:
- version "7.4.6"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.6.tgz#845d6f254d8f4a5e4fd6baf44d5f10c8448365fb"
- integrity sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==
- dependencies:
- brace-expansion "^2.0.1"
-
-minimatch@^9.0.4:
- version "9.0.5"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
- integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
- dependencies:
- brace-expansion "^2.0.1"
-
-minimist@^1.2.5, minimist@^1.2.6:
- version "1.2.8"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
- integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
-
-mkdirp@^2.1.6:
- version "2.1.6"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.6.tgz#964fbcb12b2d8c5d6fbc62a963ac95a273e2cc19"
- integrity sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==
-
-ms@^2.1.3:
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
- integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-
-mute-stream@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e"
- integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==
-
-natural-compare@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
- integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
-
-negotiator@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-1.0.0.tgz#b6c91bb47172d69f93cfd7c357bbb529019b5f6a"
- integrity sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==
-
-neo-async@^2.6.2:
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
- integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
-
-node-forge@^1.3.2:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.3.tgz#0ad80f6333b3a0045e827ac20b7f735f93716751"
- integrity sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==
-
-node-int64@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
- integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==
-
-node-releases@^2.0.27:
- version "2.0.27"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e"
- integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==
-
-normalize-path@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
- integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
-
-npm-run-path@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
- integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
- dependencies:
- path-key "^3.0.0"
-
-object-assign@^4:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
- integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
-
-object-inspect@^1.13.3:
- version "1.13.4"
- resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213"
- integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==
-
-on-exit-leak-free@^2.1.0:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz#fed195c9ebddb7d9e4c3842f93f281ac8dadd3b8"
- integrity sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==
-
-on-finished@^2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
- integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
- dependencies:
- ee-first "1.1.1"
-
-once@^1.3.0, once@^1.3.1, once@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
- integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
- dependencies:
- wrappy "1"
-
-onetime@^5.1.2:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
- integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
- dependencies:
- mimic-fn "^2.1.0"
-
-optionator@^0.9.3:
- version "0.9.4"
- resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734"
- integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==
- dependencies:
- deep-is "^0.1.3"
- fast-levenshtein "^2.0.6"
- levn "^0.4.1"
- prelude-ls "^1.2.1"
- type-check "^0.4.0"
- word-wrap "^1.2.5"
-
-os-tmpdir@~1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
- integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==
-
-p-all@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/p-all/-/p-all-3.0.0.tgz#077c023c37e75e760193badab2bad3ccd5782bfb"
- integrity sha512-qUZbvbBFVXm6uJ7U/WDiO0fv6waBMbjlCm4E66oZdRR+egswICarIdHyVSZZHudH8T5SF8x/JG0q0duFzPnlBw==
- dependencies:
- p-map "^4.0.0"
-
-p-limit@^2.2.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
- integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
- dependencies:
- p-try "^2.0.0"
-
-p-limit@^3.0.2, p-limit@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
- integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
- dependencies:
- yocto-queue "^0.1.0"
-
-p-locate@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
- integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
- dependencies:
- p-limit "^2.2.0"
-
-p-locate@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
- integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
- dependencies:
- p-limit "^3.0.2"
-
-p-map@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
- integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
- dependencies:
- aggregate-error "^3.0.0"
-
-p-try@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
- integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
-
-parent-module@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
- integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
- dependencies:
- callsites "^3.0.0"
-
-parse-json@^5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
- integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
- dependencies:
- "@babel/code-frame" "^7.0.0"
- error-ex "^1.3.1"
- json-parse-even-better-errors "^2.3.0"
- lines-and-columns "^1.1.6"
-
-parseurl@^1.3.3:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
- integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
-
-path-browserify@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd"
- integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==
-
-path-exists@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
- integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
-
-path-is-absolute@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
- integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
-
-path-key@^3.0.0, path-key@^3.1.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
- integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
-
-path-parse@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
- integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
-
-path-to-regexp@^8.0.0:
- version "8.3.0"
- resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-8.3.0.tgz#aa818a6981f99321003a08987d3cec9c3474cd1f"
- integrity sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==
-
-picocolors@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
- integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
-
-picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
- integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
-
-pino-abstract-transport@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-3.0.0.tgz#b21e5f33a297e8c4c915c62b3ce5dd4a87a52c23"
- integrity sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==
- dependencies:
- split2 "^4.0.0"
-
-pino-http@^11.0.0:
- version "11.0.0"
- resolved "https://registry.yarnpkg.com/pino-http/-/pino-http-11.0.0.tgz#ebadef4694fc59aadab9be7e5939aea625b4615f"
- integrity sha512-wqg5XIAGRRIWtTk8qPGxkbrfiwEWz1lgedVLvhLALudKXvg1/L2lTFgTGPJ4Z2e3qcRmxoFxDuSdMdMGNM6I1g==
- dependencies:
- get-caller-file "^2.0.5"
- pino "^10.0.0"
- pino-std-serializers "^7.0.0"
- process-warning "^5.0.0"
-
-pino-pretty@^13.1.3:
- version "13.1.3"
- resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-13.1.3.tgz#2274cccda925dd355c104079a5029f6598d0381b"
- integrity sha512-ttXRkkOz6WWC95KeY9+xxWL6AtImwbyMHrL1mSwqwW9u+vLp/WIElvHvCSDg0xO/Dzrggz1zv3rN5ovTRVowKg==
- dependencies:
- colorette "^2.0.7"
- dateformat "^4.6.3"
- fast-copy "^4.0.0"
- fast-safe-stringify "^2.1.1"
- help-me "^5.0.0"
- joycon "^3.1.1"
- minimist "^1.2.6"
- on-exit-leak-free "^2.1.0"
- pino-abstract-transport "^3.0.0"
- pump "^3.0.0"
- secure-json-parse "^4.0.0"
- sonic-boom "^4.0.1"
- strip-json-comments "^5.0.2"
-
-pino-std-serializers@^7.0.0:
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-7.1.0.tgz#a7b0cd65225f29e92540e7853bd73b07479893fc"
- integrity sha512-BndPH67/JxGExRgiX1dX0w1FvZck5Wa4aal9198SrRhZjH3GxKQUKIBnYJTdj2HDN3UQAS06HlfcSbQj2OHmaw==
-
-pino@^10.0.0, pino@^10.3.1:
- version "10.3.1"
- resolved "https://registry.yarnpkg.com/pino/-/pino-10.3.1.tgz#6552c8f8d8481844c9e452e7bf0be90bff1939ce"
- integrity sha512-r34yH/GlQpKZbU1BvFFqOjhISRo1MNx1tWYsYvmj6KIRHSPMT2+yHOEb1SG6NMvRoHRF0a07kCOox/9yakl1vg==
- dependencies:
- "@pinojs/redact" "^0.4.0"
- atomic-sleep "^1.0.0"
- on-exit-leak-free "^2.1.0"
- pino-abstract-transport "^3.0.0"
- pino-std-serializers "^7.0.0"
- process-warning "^5.0.0"
- quick-format-unescaped "^4.0.3"
- real-require "^0.2.0"
- safe-stable-stringify "^2.3.1"
- sonic-boom "^4.0.1"
- thread-stream "^4.0.0"
-
-pirates@^4.0.4:
- version "4.0.7"
- resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.7.tgz#643b4a18c4257c8a65104b73f3049ce9a0a15e22"
- integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==
-
-pkce-challenge@^5.0.0:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/pkce-challenge/-/pkce-challenge-5.0.1.tgz#3b4446865b17b1745e9ace2016a31f48ddf6230d"
- integrity sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==
-
-pkg-dir@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
- integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
- dependencies:
- find-up "^4.0.0"
-
-prelude-ls@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
- integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
-
-prettier-linter-helpers@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz#6a31f88a4bad6c7adda253de12ba4edaea80ebcd"
- integrity sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==
- dependencies:
- fast-diff "^1.1.2"
-
-prettier@^3.0.0:
- version "3.7.4"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.4.tgz#d2f8335d4b1cec47e1c8098645411b0c9dff9c0f"
- integrity sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==
-
-pretty-bytes@^5.6.0:
- version "5.6.0"
- resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb"
- integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==
-
-pretty-format@^29.0.0, pretty-format@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812"
- integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==
- dependencies:
- "@jest/schemas" "^29.6.3"
- ansi-styles "^5.0.0"
- react-is "^18.0.0"
-
-process-warning@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-5.0.0.tgz#566e0bf79d1dff30a72d8bbbe9e8ecefe8d378d7"
- integrity sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==
-
-prompts@^2.0.1:
- version "2.4.2"
- resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069"
- integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==
- dependencies:
- kleur "^3.0.3"
- sisteransi "^1.0.5"
-
-proxy-addr@^2.0.7:
- version "2.0.7"
- resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
- integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
- dependencies:
- forwarded "0.2.0"
- ipaddr.js "1.9.1"
-
-pump@^3.0.0:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.4.tgz#1f313430527fa8b905622ebd22fe1444e757ab3c"
- integrity sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==
- dependencies:
- end-of-stream "^1.1.0"
- once "^1.3.1"
-
-punycode@^2.1.0:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
- integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
-
-pure-rand@^6.0.0:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2"
- integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==
-
-qs@^6.14.0, qs@^6.14.1:
- version "6.14.1"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.1.tgz#a41d85b9d3902f31d27861790506294881871159"
- integrity sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==
- dependencies:
- side-channel "^1.1.0"
-
-queue-microtask@^1.2.2:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
- integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
-
-quick-format-unescaped@^4.0.3:
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7"
- integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==
-
-range-parser@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
- integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
-
-raw-body@^3.0.0, raw-body@^3.0.1:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-3.0.2.tgz#3e3ada5ae5568f9095d84376fd3a49b8fb000a51"
- integrity sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==
- dependencies:
- bytes "~3.1.2"
- http-errors "~2.0.1"
- iconv-lite "~0.7.0"
- unpipe "~1.0.0"
-
-react-is@^18.0.0:
- version "18.3.1"
- resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e"
- integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==
-
-readable-stream@^3.4.0:
- version "3.6.2"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
- integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
- dependencies:
- inherits "^2.0.3"
- string_decoder "^1.1.1"
- util-deprecate "^1.0.1"
-
-real-require@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.2.0.tgz#209632dea1810be2ae063a6ac084fee7e33fba78"
- integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==
-
-require-directory@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
- integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
-
-require-from-string@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
- integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
-
-resolve-cwd@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
- integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
- dependencies:
- resolve-from "^5.0.0"
-
-resolve-from@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
- integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
-
-resolve-from@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
- integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
-
-resolve.exports@^2.0.0:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.3.tgz#41955e6f1b4013b7586f873749a635dea07ebe3f"
- integrity sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==
-
-resolve@^1.20.0:
- version "1.22.11"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz#aad857ce1ffb8bfa9b0b1ac29f1156383f68c262"
- integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==
- dependencies:
- is-core-module "^2.16.1"
- path-parse "^1.0.7"
- supports-preserve-symlinks-flag "^1.0.0"
-
-reusify@^1.0.4:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f"
- integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==
-
-rimraf@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
- integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
- dependencies:
- glob "^7.1.3"
-
-router@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/router/-/router-2.2.0.tgz#019be620b711c87641167cc79b99090f00b146ef"
- integrity sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==
- dependencies:
- debug "^4.4.0"
- depd "^2.0.0"
- is-promise "^4.0.0"
- parseurl "^1.3.3"
- path-to-regexp "^8.0.0"
-
-run-parallel@^1.1.9:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
- integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
- dependencies:
- queue-microtask "^1.2.2"
-
-safe-buffer@~5.2.0:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
- integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
-
-safe-stable-stringify@^2.3.1:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz#4ca2f8e385f2831c432a719b108a3bf7af42a1dd"
- integrity sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==
-
-"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0":
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
- integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-
-secure-json-parse@^4.0.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-4.1.0.tgz#4f1ab41c67a13497ea1b9131bb4183a22865477c"
- integrity sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==
-
-semver@^6.3.0, semver@^6.3.1:
- version "6.3.1"
- resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
- integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
-
-semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.7.3:
- version "7.7.3"
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946"
- integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==
-
-send@^1.1.0, send@^1.2.0:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/send/-/send-1.2.1.tgz#9eab743b874f3550f40a26867bf286ad60d3f3ed"
- integrity sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==
- dependencies:
- debug "^4.4.3"
- encodeurl "^2.0.0"
- escape-html "^1.0.3"
- etag "^1.8.1"
- fresh "^2.0.0"
- http-errors "^2.0.1"
- mime-types "^3.0.2"
- ms "^2.1.3"
- on-finished "^2.4.1"
- range-parser "^1.2.1"
- statuses "^2.0.2"
-
-serve-static@^2.2.0:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-2.2.1.tgz#7f186a4a4e5f5b663ad7a4294ff1bf37cf0e98a9"
- integrity sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==
- dependencies:
- encodeurl "^2.0.0"
- escape-html "^1.0.3"
- parseurl "^1.3.3"
- send "^1.2.0"
-
-setprototypeof@~1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
- integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
-
-shebang-command@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
- integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
- dependencies:
- shebang-regex "^3.0.0"
-
-shebang-regex@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
- integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
-
-side-channel-list@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad"
- integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==
- dependencies:
- es-errors "^1.3.0"
- object-inspect "^1.13.3"
-
-side-channel-map@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42"
- integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==
- dependencies:
- call-bound "^1.0.2"
- es-errors "^1.3.0"
- get-intrinsic "^1.2.5"
- object-inspect "^1.13.3"
-
-side-channel-weakmap@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea"
- integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==
- dependencies:
- call-bound "^1.0.2"
- es-errors "^1.3.0"
- get-intrinsic "^1.2.5"
- object-inspect "^1.13.3"
- side-channel-map "^1.0.1"
-
-side-channel@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9"
- integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==
- dependencies:
- es-errors "^1.3.0"
- object-inspect "^1.13.3"
- side-channel-list "^1.0.0"
- side-channel-map "^1.0.1"
- side-channel-weakmap "^1.0.2"
-
-signal-exit@^3.0.3, signal-exit@^3.0.7:
- version "3.0.7"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
- integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
-
-signal-exit@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
- integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
-
-sisteransi@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
- integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
-
-slash@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
- integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
-
-sonic-boom@^4.0.1:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-4.2.1.tgz#28598250df4899c0ac572d7e2f0460690ba6a030"
- integrity sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==
- dependencies:
- atomic-sleep "^1.0.0"
-
-source-map-support@0.5.13:
- version "0.5.13"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932"
- integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==
- dependencies:
- buffer-from "^1.0.0"
- source-map "^0.6.0"
-
-source-map@^0.6.0, source-map@^0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
- integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-
-split2@^4.0.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4"
- integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==
-
-sprintf-js@~1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
- integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
-
-stack-utils@^2.0.3:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f"
- integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==
- dependencies:
- escape-string-regexp "^2.0.0"
-
-standardwebhooks@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/standardwebhooks/-/standardwebhooks-1.0.0.tgz#5faa23ceacbf9accd344361101d9e3033b64324f"
- integrity sha512-BbHGOQK9olHPMvQNHWul6MYlrRTAOKn03rOe4A8O3CLWhNf4YHBqq2HJKKC+sfqpxiBY52pNeesD6jIiLDz8jg==
- dependencies:
- "@stablelib/base64" "^1.0.0"
- fast-sha256 "^1.3.0"
-
-statuses@^2.0.1, statuses@^2.0.2, statuses@~2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.2.tgz#8f75eecef765b5e1cfcdc080da59409ed424e382"
- integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==
-
-string-length@^4.0.1:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a"
- integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==
- dependencies:
- char-regex "^1.0.2"
- strip-ansi "^6.0.0"
-
-string-to-stream@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/string-to-stream/-/string-to-stream-3.0.1.tgz#480e6fb4d5476d31cb2221f75307a5dcb6638a42"
- integrity sha512-Hl092MV3USJuUCC6mfl9sPzGloA3K5VwdIeJjYIkXY/8K+mUvaeEabWJgArp+xXrsWxCajeT2pc4axbVhIZJyg==
- dependencies:
- readable-stream "^3.4.0"
-
-string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
- version "4.2.3"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
- integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
- dependencies:
- emoji-regex "^8.0.0"
- is-fullwidth-code-point "^3.0.0"
- strip-ansi "^6.0.1"
-
-string_decoder@^1.1.1:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
- integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
- dependencies:
- safe-buffer "~5.2.0"
-
-strip-ansi@^6.0.0, strip-ansi@^6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
- integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
- dependencies:
- ansi-regex "^5.0.1"
-
-strip-bom@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
- integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==
-
-strip-bom@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
- integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
-
-strip-final-newline@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
- integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
-
-strip-json-comments@^3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
- integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
-
-strip-json-comments@^5.0.2:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-5.0.3.tgz#b7304249dd402ee67fd518ada993ab3593458bcf"
- integrity sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==
-
-superstruct@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-1.0.4.tgz#0adb99a7578bd2f1c526220da6571b2d485d91ca"
- integrity sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==
-
-supports-color@^7.1.0:
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
- integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
- dependencies:
- has-flag "^4.0.0"
-
-supports-color@^8.0.0:
- version "8.1.1"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
- integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
- dependencies:
- has-flag "^4.0.0"
-
-supports-preserve-symlinks-flag@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
- integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
-
-synckit@^0.11.12:
- version "0.11.12"
- resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.11.12.tgz#abe74124264fbc00a48011b0d98bdc1cffb64a7b"
- integrity sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==
- dependencies:
- "@pkgr/core" "^0.2.9"
-
-test-exclude@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
- integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
- dependencies:
- "@istanbuljs/schema" "^0.1.2"
- glob "^7.1.4"
- minimatch "^3.0.4"
-
-text-table@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
- integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
-
-thread-stream@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-4.0.0.tgz#732f007c24da7084f729d6e3a7e3f5934a7380b7"
- integrity sha512-4iMVL6HAINXWf1ZKZjIPcz5wYaOdPhtO8ATvZ+Xqp3BTdaqtAwQkNmKORqcIo5YkQqGXq5cwfswDwMqqQNrpJA==
- dependencies:
- real-require "^0.2.0"
-
-tmp@^0.0.33:
- version "0.0.33"
- resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
- integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
- dependencies:
- os-tmpdir "~1.0.2"
-
-tmpl@1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"
- integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==
-
-to-regex-range@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
- integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
- dependencies:
- is-number "^7.0.0"
-
-toidentifier@~1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
- integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
-
-ts-api-utils@^2.0.1:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.4.0.tgz#2690579f96d2790253bdcf1ca35d569ad78f9ad8"
- integrity sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==
-
-ts-jest@^29.1.0:
- version "29.4.6"
- resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.4.6.tgz#51cb7c133f227396818b71297ad7409bb77106e9"
- integrity sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA==
- dependencies:
- bs-logger "^0.2.6"
- fast-json-stable-stringify "^2.1.0"
- handlebars "^4.7.8"
- json5 "^2.2.3"
- lodash.memoize "^4.1.2"
- make-error "^1.3.6"
- semver "^7.7.3"
- type-fest "^4.41.0"
- yargs-parser "^21.1.1"
-
-ts-morph@^19.0.0:
- version "19.0.0"
- resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-19.0.0.tgz#43e95fb0156c3fe3c77c814ac26b7d0be2f93169"
- integrity sha512-D6qcpiJdn46tUqV45vr5UGM2dnIEuTGNxVhg0sk5NX11orcouwj6i1bMqZIz2mZTZB1Hcgy7C3oEVhAT+f6mbQ==
- dependencies:
- "@ts-morph/common" "~0.20.0"
- code-block-writer "^12.0.0"
-
-ts-node@^10.5.0:
- version "10.9.2"
- resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f"
- integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==
- dependencies:
- "@cspotcode/source-map-support" "^0.8.0"
- "@tsconfig/node10" "^1.0.7"
- "@tsconfig/node12" "^1.0.7"
- "@tsconfig/node14" "^1.0.0"
- "@tsconfig/node16" "^1.0.2"
- acorn "^8.4.1"
- acorn-walk "^8.1.1"
- arg "^4.1.0"
- create-require "^1.1.0"
- diff "^4.0.1"
- make-error "^1.1.1"
- v8-compile-cache-lib "^3.0.1"
- yn "3.1.1"
-
-"tsc-multi@https://github.com/stainless-api/tsc-multi/releases/download/v1.1.9/tsc-multi.tgz":
- version "1.1.9"
- resolved "https://github.com/stainless-api/tsc-multi/releases/download/v1.1.9/tsc-multi.tgz#777f6f5d9e26bf0e94e5170990dd3a841d6707cd"
- dependencies:
- debug "^4.3.7"
- fast-glob "^3.3.2"
- get-stdin "^8.0.0"
- p-all "^3.0.0"
- picocolors "^1.1.1"
- signal-exit "^3.0.7"
- string-to-stream "^3.0.1"
- superstruct "^1.0.4"
- tslib "^2.8.1"
- yargs "^17.7.2"
-
-tsconfig-paths@^4.0.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz#ef78e19039133446d244beac0fd6a1632e2d107c"
- integrity sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==
- dependencies:
- json5 "^2.2.2"
- minimist "^1.2.6"
- strip-bom "^3.0.0"
-
-tslib@^2.8.1:
- version "2.8.1"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
- integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
-
-type-check@^0.4.0, type-check@~0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
- integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
- dependencies:
- prelude-ls "^1.2.1"
-
-type-detect@4.0.8:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
- integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
-
-type-fest@^0.20.2:
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
- integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
-
-type-fest@^0.21.3:
- version "0.21.3"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
- integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
-
-type-fest@^4.41.0:
- version "4.41.0"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.41.0.tgz#6ae1c8e5731273c2bf1f58ad39cbae2c91a46c58"
- integrity sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==
-
-type-is@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/type-is/-/type-is-2.0.1.tgz#64f6cf03f92fce4015c2b224793f6bdd4b068c97"
- integrity sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==
- dependencies:
- content-type "^1.0.5"
- media-typer "^1.1.0"
- mime-types "^3.0.0"
-
-typescript@5.8.3:
- version "5.8.3"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e"
- integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==
-
-uglify-js@^3.1.4:
- version "3.19.3"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.3.tgz#82315e9bbc6f2b25888858acd1fff8441035b77f"
- integrity sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==
-
-undici-types@~6.21.0:
- version "6.21.0"
- resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb"
- integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==
-
-undici-types@~7.16.0:
- version "7.16.0"
- resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46"
- integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==
-
-universalify@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d"
- integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
-
-unpipe@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
- integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
-
-update-browserslist-db@^1.2.0:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz#64d76db58713136acbeb4c49114366cc6cc2e80d"
- integrity sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==
- dependencies:
- escalade "^3.2.0"
- picocolors "^1.1.1"
-
-uri-js@^4.2.2:
- version "4.4.1"
- resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
- integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
- dependencies:
- punycode "^2.1.0"
-
-util-deprecate@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
- integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
-
-v8-compile-cache-lib@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"
- integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==
-
-v8-to-istanbul@^9.0.1:
- version "9.3.0"
- resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz#b9572abfa62bd556c16d75fdebc1a411d5ff3175"
- integrity sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==
- dependencies:
- "@jridgewell/trace-mapping" "^0.3.12"
- "@types/istanbul-lib-coverage" "^2.0.1"
- convert-source-map "^2.0.0"
-
-vary@^1, vary@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
- integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
-
-walker@^1.0.8:
- version "1.0.8"
- resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f"
- integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==
- dependencies:
- makeerror "1.0.12"
-
-which@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
- integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
- dependencies:
- isexe "^2.0.0"
-
-word-wrap@^1.2.5:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
- integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
-
-wordwrap@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
- integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==
-
-wrap-ansi@^6.2.0:
- version "6.2.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
- integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
- dependencies:
- ansi-styles "^4.0.0"
- string-width "^4.1.0"
- strip-ansi "^6.0.0"
-
-wrap-ansi@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
- integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
- dependencies:
- ansi-styles "^4.0.0"
- string-width "^4.1.0"
- strip-ansi "^6.0.0"
-
-wrappy@1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
- integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
-
-write-file-atomic@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd"
- integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==
- dependencies:
- imurmurhash "^0.1.4"
- signal-exit "^3.0.7"
-
-y18n@^5.0.5:
- version "5.0.8"
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
- integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
-
-yallist@^3.0.2:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
- integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
-
-yargs-parser@^21.1.1:
- version "21.1.1"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
- integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
-
-yargs@^17.3.1, yargs@^17.7.2:
- version "17.7.2"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
- integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
- dependencies:
- cliui "^8.0.1"
- escalade "^3.1.1"
- get-caller-file "^2.0.5"
- require-directory "^2.1.1"
- string-width "^4.2.3"
- y18n "^5.0.5"
- yargs-parser "^21.1.1"
-
-yn@3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
- integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
-
-yocto-queue@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
- integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
-
-yoctocolors-cjs@^2.1.2:
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz#7e4964ea8ec422b7a40ac917d3a344cfd2304baa"
- integrity sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==
-
-zod-to-json-schema@^3.24.5, zod-to-json-schema@^3.24.6, zod-to-json-schema@^3.25.1:
- version "3.25.1"
- resolved "https://registry.yarnpkg.com/zod-to-json-schema/-/zod-to-json-schema-3.25.1.tgz#7f24962101a439ddade2bf1aeab3c3bfec7d84ba"
- integrity sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==
-
-zod-validation-error@^4.0.1:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/zod-validation-error/-/zod-validation-error-4.0.2.tgz#bc605eba49ce0fcd598c127fee1c236be3f22918"
- integrity sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==
-
-"zod@^3.25 || ^4.0":
- version "4.3.5"
- resolved "https://registry.yarnpkg.com/zod/-/zod-4.3.5.tgz#aeb269a6f9fc259b1212c348c7c5432aaa474d2a"
- integrity sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==
-
-zod@^3.25.20, zod@^3.25.67:
- version "3.25.76"
- resolved "https://registry.yarnpkg.com/zod/-/zod-3.25.76.tgz#26841c3f6fd22a6a2760e7ccb719179768471e34"
- integrity sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==
diff --git a/release-please-config.json b/release-please-config.json
index 9b042792..1ebd0bde 100644
--- a/release-please-config.json
+++ b/release-please-config.json
@@ -60,19 +60,5 @@
}
],
"release-type": "node",
- "extra-files": [
- "src/version.ts",
- "README.md",
- "packages/mcp-server/yarn.lock",
- {
- "type": "json",
- "path": "packages/mcp-server/package.json",
- "jsonpath": "$.version"
- },
- {
- "type": "json",
- "path": "packages/mcp-server/manifest.json",
- "jsonpath": "$.version"
- }
- ]
+ "extra-files": ["src/version.ts", "README.md"]
}
diff --git a/scripts/build b/scripts/build
index 8847b24d..b6a522cd 100755
--- a/scripts/build
+++ b/scripts/build
@@ -49,9 +49,3 @@ if [ -e ./scripts/build-deno ]
then
./scripts/build-deno
fi
-# build all sub-packages
-for dir in packages/*; do
- if [ -d "$dir" ]; then
- (cd "$dir" && yarn install && yarn build)
- fi
-done
diff --git a/scripts/build-all b/scripts/build-all
deleted file mode 100755
index 4e5ac01f..00000000
--- a/scripts/build-all
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/usr/bin/env bash
-
-# build-all is deprecated, use build instead
-
-bash ./scripts/build
diff --git a/scripts/publish-packages.ts b/scripts/publish-packages.ts
deleted file mode 100644
index 50e93fef..00000000
--- a/scripts/publish-packages.ts
+++ /dev/null
@@ -1,102 +0,0 @@
-/**
- * Called from the `create-releases.yml` workflow with the output
- * of the release please action as the first argument.
- *
- * Example JSON input:
- *
- * ```json
- {
- "releases_created": "true",
- "release_created": "true",
- "id": "137967744",
- "name": "sdk: v0.14.5",
- "tag_name": "sdk-v0.14.5",
- "sha": "7cc2ba5c694e76a117f731d4cf0b06f8b8361f2e",
- "body": "## 0.14.5 (2024-01-22)\n\n...",
- "html_url": "https://github.com/$org/$repo/releases/tag/sdk-v0.14.5",
- "draft": "false",
- "upload_url": "https://uploads.github.com/repos/$org/$repo/releases/137967744/assets{?name,label}",
- "path": ".",
- "version": "0.14.5",
- "major": "0",
- "minor": "14",
- "patch": "5",
- "packages/additional-sdk--release_created": "true",
- "packages/additional-sdk--id": "137967756",
- "packages/additional-sdk--name": "additional-sdk: v0.5.2",
- "packages/additional-sdk--tag_name": "additional-sdk-v0.5.2",
- "packages/additional-sdk--sha": "7cc2ba5c694e76a117f731d4cf0b06f8b8361f2e",
- "packages/additional-sdk--body": "## 0.5.2 (2024-01-22)\n\n...",
- "packages/additional-sdk--html_url": "https://github.com/$org/$repo/releases/tag/additional-sdk-v0.5.2",
- "packages/additional-sdk--draft": "false",
- "packages/additional-sdk--upload_url": "https://uploads.github.com/repos/$org/$repo/releases/137967756/assets{?name,label}",
- "packages/additional-sdk--path": "packages/additional-sdk",
- "packages/additional-sdk--version": "0.5.2",
- "packages/additional-sdk--major": "0",
- "packages/additional-sdk--minor": "5",
- "packages/additional-sdk--patch": "2",
- "paths_released": "[\".\",\"packages/additional-sdk\"]"
- }
- ```
- */
-
-import { execSync } from 'child_process';
-import path from 'path';
-
-function main() {
- const data = process.argv[2] ?? process.env['DATA'];
- if (!data) {
- throw new Error(`Usage: publish-packages.ts '{"json": "obj"}'`);
- }
-
- const rootDir = path.join(__dirname, '..');
- console.log('root dir', rootDir);
- console.log(`publish-packages called with ${data}`);
-
- const outputs = JSON.parse(data);
-
- const rawPaths = outputs.paths_released;
-
- if (!rawPaths) {
- console.error(JSON.stringify(outputs, null, 2));
- throw new Error('Expected outputs to contain a truthy `paths_released` property');
- }
- if (typeof rawPaths !== 'string') {
- console.error(JSON.stringify(outputs, null, 2));
- throw new Error('Expected outputs `paths_released` property to be a JSON string');
- }
-
- const paths = JSON.parse(rawPaths);
- if (!Array.isArray(paths)) {
- console.error(JSON.stringify(outputs, null, 2));
- throw new Error('Expected outputs `paths_released` property to be an array');
- }
- if (!paths.length) {
- console.error(JSON.stringify(outputs, null, 2));
- throw new Error('Expected outputs `paths_released` property to contain at least one entry');
- }
-
- const publishScriptPath = path.join(rootDir, 'bin', 'publish-npm');
- console.log('Using publish script at', publishScriptPath);
-
- console.log('Ensuring root package is built');
- console.log(`$ yarn build`);
- execSync(`yarn build`, { cwd: rootDir, encoding: 'utf8', stdio: 'inherit' });
-
- for (const relPackagePath of paths) {
- console.log('\n');
-
- const packagePath = path.join(rootDir, relPackagePath);
- console.log(`Publishing in directory: ${packagePath}`);
-
- console.log(`$ yarn install`);
- execSync(`yarn install`, { cwd: packagePath, encoding: 'utf8', stdio: 'inherit' });
-
- console.log(`$ bash ${publishScriptPath}`);
- execSync(`bash ${publishScriptPath}`, { cwd: packagePath, encoding: 'utf8', stdio: 'inherit' });
- }
-
- console.log('Finished publishing packages');
-}
-
-main();
diff --git a/scripts/utils/make-dist-package-json.cjs b/scripts/utils/make-dist-package-json.cjs
index 4d6634ea..7c24f56e 100644
--- a/scripts/utils/make-dist-package-json.cjs
+++ b/scripts/utils/make-dist-package-json.cjs
@@ -12,14 +12,6 @@ processExportMap(pkgJson.exports);
for (const key of ['types', 'main', 'module']) {
if (typeof pkgJson[key] === 'string') pkgJson[key] = pkgJson[key].replace(/^(\.\/)?dist\//, './');
}
-// Fix bin paths if present
-if (pkgJson.bin) {
- for (const key in pkgJson.bin) {
- if (typeof pkgJson.bin[key] === 'string') {
- pkgJson.bin[key] = pkgJson.bin[key].replace(/^(\.\/)?dist\//, './');
- }
- }
-}
delete pkgJson.devDependencies;
delete pkgJson.scripts.prepack;
From 0940e81c82b34bd069abbf08bb016c9cc13285d7 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 10 Mar 2026 08:21:50 +0000
Subject: [PATCH 006/164] release: 0.132.0
---
.release-please-manifest.json | 2 +-
CHANGELOG.md | 20 ++++++++++++++++++++
package.json | 2 +-
src/version.ts | 2 +-
4 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index e074c76b..f12fff58 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.131.0"
+ ".": "0.132.0"
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d2251d06..e3a78d16 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,25 @@
# Changelog
+## 0.132.0 (2026-03-10)
+
+Full Changelog: [v0.131.0...v0.132.0](https://github.com/lithic-com/lithic-node/compare/v0.131.0...v0.132.0)
+
+### Features
+
+* **api:** add EARLY_DIRECT_DEPOSIT_FLOAT type to financial accounts ([20f0c4c](https://github.com/lithic-com/lithic-node/commit/20f0c4c6c467249ddea477e0bf4f5da955e48f4b))
+* **api:** add typescript rule type, draft state tracking to auth_rules v2 ([8f4eabb](https://github.com/lithic-com/lithic-node/commit/8f4eabbe9bf4783e2fb8d118ca8c37e84f7d8195))
+
+
+### Bug Fixes
+
+* **api:** Disable MCP server to fix TypeScript SDK package publishing ([8a4d2aa](https://github.com/lithic-com/lithic-node/commit/8a4d2aa3836e03a03de6aa83cb5ccf9a8ef74b59))
+
+
+### Chores
+
+* **internal:** update dependencies to address dependabot vulnerabilities ([fefdd61](https://github.com/lithic-com/lithic-node/commit/fefdd61fef00c32078fba74255eac7069c5025e7))
+* **mcp-server:** improve instructions ([8051570](https://github.com/lithic-com/lithic-node/commit/80515701dff9212cda75a39a5ef9dfd2a02a877e))
+
## 0.131.0 (2026-03-05)
Full Changelog: [v0.130.0...v0.131.0](https://github.com/lithic-com/lithic-node/compare/v0.130.0...v0.131.0)
diff --git a/package.json b/package.json
index 3292a1c2..6f44f182 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "lithic",
- "version": "0.131.0",
+ "version": "0.132.0",
"description": "The official TypeScript library for the Lithic API",
"author": "Lithic ",
"types": "dist/index.d.ts",
diff --git a/src/version.ts b/src/version.ts
index 63a530b5..cc27c45b 100644
--- a/src/version.ts
+++ b/src/version.ts
@@ -1 +1 @@
-export const VERSION = '0.131.0'; // x-release-please-version
+export const VERSION = '0.132.0'; // x-release-please-version
From 6b3de80454740b341a6870df5a6e39af0ab47610 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 10 Mar 2026 15:17:46 +0000
Subject: [PATCH 007/164] feat(api): Add event_subtype to statement line items
---
.stats.yml | 4 ++--
src/resources/financial-accounts/statements/line-items.ts | 5 +++++
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 4e2f0a05..a098ed97 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 189
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-1e902917b2eae41d549957e790eb6b137969e451efe673815647deba330fe05a.yml
-openapi_spec_hash: 82cab06ce65462e60316939db630460a
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-34cfbf6ee4a6903838da11a879bbbfe71b84e7585b3c8c6957bf524deb378b41.yml
+openapi_spec_hash: f9e20ed9f3c5d78a185af18be0d7a199
config_hash: 8799cfd589579f105ef8696a6d664c71
diff --git a/src/resources/financial-accounts/statements/line-items.ts b/src/resources/financial-accounts/statements/line-items.ts
index 6238b9bb..d3cc7fb0 100644
--- a/src/resources/financial-accounts/statements/line-items.ts
+++ b/src/resources/financial-accounts/statements/line-items.ts
@@ -208,6 +208,11 @@ export namespace StatementLineItems {
card_token?: string;
descriptor?: string;
+
+ /**
+ * Subtype of the event that generated the line items
+ */
+ event_subtype?: string | null;
}
}
From 0cfd5e6c45f59a1cf6e40868a902067ddec76a1f Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 10 Mar 2026 17:01:07 +0000
Subject: [PATCH 008/164] feat(api): add loan_tape_date field to statement line
items
---
.stats.yml | 4 ++--
src/resources/financial-accounts/statements/line-items.ts | 5 +++++
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index a098ed97..2f0500f7 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 189
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-34cfbf6ee4a6903838da11a879bbbfe71b84e7585b3c8c6957bf524deb378b41.yml
-openapi_spec_hash: f9e20ed9f3c5d78a185af18be0d7a199
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-fb9adae9eb94be3d04c66cc6c974cb0cc010d9d3a49e6fe23c32276e4317b568.yml
+openapi_spec_hash: 8da1862112b00c8a0c9e19b2e83c89d8
config_hash: 8799cfd589579f105ef8696a6d664c71
diff --git a/src/resources/financial-accounts/statements/line-items.ts b/src/resources/financial-accounts/statements/line-items.ts
index d3cc7fb0..89c9c6c7 100644
--- a/src/resources/financial-accounts/statements/line-items.ts
+++ b/src/resources/financial-accounts/statements/line-items.ts
@@ -213,6 +213,11 @@ export namespace StatementLineItems {
* Subtype of the event that generated the line items
*/
event_subtype?: string | null;
+
+ /**
+ * Date of the loan tape that generated this line item
+ */
+ loan_tape_date?: string | null;
}
}
From ff6f34b956c6afb38fd0ce0e09bdd1625a6068d1 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 10 Mar 2026 17:05:33 +0000
Subject: [PATCH 009/164] chore(ci): updating publishing method
---
.github/workflows/publish-npm.yml | 5 +++--
.github/workflows/release-doctor.yml | 2 --
.stats.yml | 2 +-
bin/check-release-environment | 4 ----
bin/publish-npm | 13 +++++++++++--
5 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml
index af640da0..276f8dbd 100644
--- a/.github/workflows/publish-npm.yml
+++ b/.github/workflows/publish-npm.yml
@@ -12,6 +12,9 @@ jobs:
publish:
name: publish
runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ id-token: write
steps:
- uses: actions/checkout@v6
@@ -28,5 +31,3 @@ jobs:
- name: Publish to NPM
run: |
bash ./bin/publish-npm
- env:
- NPM_TOKEN: ${{ secrets.LITHIC_NPM_TOKEN || secrets.NPM_TOKEN }}
diff --git a/.github/workflows/release-doctor.yml b/.github/workflows/release-doctor.yml
index 764a1778..3ebabb64 100644
--- a/.github/workflows/release-doctor.yml
+++ b/.github/workflows/release-doctor.yml
@@ -17,5 +17,3 @@ jobs:
- name: Check release environment
run: |
bash ./bin/check-release-environment
- env:
- NPM_TOKEN: ${{ secrets.LITHIC_NPM_TOKEN || secrets.NPM_TOKEN }}
diff --git a/.stats.yml b/.stats.yml
index 2f0500f7..1cd7cb5c 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 189
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-fb9adae9eb94be3d04c66cc6c974cb0cc010d9d3a49e6fe23c32276e4317b568.yml
openapi_spec_hash: 8da1862112b00c8a0c9e19b2e83c89d8
-config_hash: 8799cfd589579f105ef8696a6d664c71
+config_hash: 7daa8d0d03697920c0c1ca18ce6d4594
diff --git a/bin/check-release-environment b/bin/check-release-environment
index e4b6d58e..6b43775a 100644
--- a/bin/check-release-environment
+++ b/bin/check-release-environment
@@ -2,10 +2,6 @@
errors=()
-if [ -z "${NPM_TOKEN}" ]; then
- errors+=("The NPM_TOKEN secret has not been set. Please set it in either this repository's secrets or your organization secrets")
-fi
-
lenErrors=${#errors[@]}
if [[ lenErrors -gt 0 ]]; then
diff --git a/bin/publish-npm b/bin/publish-npm
index 45e8aa80..3d05c0bd 100644
--- a/bin/publish-npm
+++ b/bin/publish-npm
@@ -2,7 +2,12 @@
set -eux
-npm config set '//registry.npmjs.org/:_authToken' "$NPM_TOKEN"
+if [[ ${NPM_TOKEN:-} ]]; then
+ npm config set '//registry.npmjs.org/:_authToken' "$NPM_TOKEN"
+elif [[ ! ${ACTIONS_ID_TOKEN_REQUEST_TOKEN:-} ]]; then
+ echo "ERROR: NPM_TOKEN must be set if not running in a Github Action with id-token permission"
+ exit 1
+fi
yarn build
cd dist
@@ -57,5 +62,9 @@ else
TAG="latest"
fi
+# Install OIDC compatible npm version
+npm install --prefix ../oidc/ npm@11.6.2
+
# Publish with the appropriate tag
-yarn publish --tag "$TAG"
+export npm_config_registry='https://registry.npmjs.org'
+../oidc/node_modules/.bin/npm publish --tag "$TAG"
From ce68f1d81a7e128bc89a6197c0e782a76cc105f6 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 10 Mar 2026 17:11:57 +0000
Subject: [PATCH 010/164] release: 0.132.1
---
.release-please-manifest.json | 2 +-
CHANGELOG.md | 14 ++++++++++++++
package.json | 2 +-
src/version.ts | 2 +-
4 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index f12fff58..c89a651d 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.132.0"
+ ".": "0.132.1"
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e3a78d16..876cab8d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,19 @@
# Changelog
+## 0.132.1 (2026-03-10)
+
+Full Changelog: [v0.132.0...v0.132.1](https://github.com/lithic-com/lithic-node/compare/v0.132.0...v0.132.1)
+
+### Features
+
+* **api:** Add event_subtype to statement line items ([82db0f8](https://github.com/lithic-com/lithic-node/commit/82db0f8a69ac22f76e969e4b823edf0bdf6b7902))
+* **api:** add loan_tape_date field to statement line items ([a3995b6](https://github.com/lithic-com/lithic-node/commit/a3995b63bb7e002ff75d394a46f0019016a835ba))
+
+
+### Chores
+
+* **ci:** updating publishing method ([02b0749](https://github.com/lithic-com/lithic-node/commit/02b0749de158843219bf095b34a5b5b1adb14a7d))
+
## 0.132.0 (2026-03-10)
Full Changelog: [v0.131.0...v0.132.0](https://github.com/lithic-com/lithic-node/compare/v0.131.0...v0.132.0)
diff --git a/package.json b/package.json
index 6f44f182..d4e3a9bd 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "lithic",
- "version": "0.132.0",
+ "version": "0.132.1",
"description": "The official TypeScript library for the Lithic API",
"author": "Lithic ",
"types": "dist/index.d.ts",
diff --git a/src/version.ts b/src/version.ts
index cc27c45b..53229689 100644
--- a/src/version.ts
+++ b/src/version.ts
@@ -1 +1 @@
-export const VERSION = '0.132.0'; // x-release-please-version
+export const VERSION = '0.132.1'; // x-release-please-version
From d2fc81b0f728406b53b8615ff1fb9bb9033e2e48 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 10 Mar 2026 17:33:48 +0000
Subject: [PATCH 011/164] feat(api): add ACH_RECEIPT_RELEASED_EARLY event type
to payments
---
.stats.yml | 4 ++--
src/resources/payments.ts | 4 ++++
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 1cd7cb5c..cb037391 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 189
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-fb9adae9eb94be3d04c66cc6c974cb0cc010d9d3a49e6fe23c32276e4317b568.yml
-openapi_spec_hash: 8da1862112b00c8a0c9e19b2e83c89d8
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-6eebc524f3f5b6499a79ef544e150cc49ea1dc1e1c76a5392079ca5a83e78100.yml
+openapi_spec_hash: 500c46c1194a128c404e17f7a5bff676
config_hash: 7daa8d0d03697920c0c1ca18ce6d4594
diff --git a/src/resources/payments.ts b/src/resources/payments.ts
index a5800cb2..20f4b5a7 100644
--- a/src/resources/payments.ts
+++ b/src/resources/payments.ts
@@ -372,6 +372,8 @@ export namespace Payment {
* - `ACH_RECEIPT_SETTLED` - ACH receipt funds have settled.
* - `ACH_RECEIPT_RELEASED` - ACH receipt released from pending to available
* balance.
+ * - `ACH_RECEIPT_RELEASED_EARLY` - ACH receipt released early from pending to
+ * available balance.
* - `ACH_RETURN_INITIATED` - ACH initiated return for an ACH receipt.
* - `ACH_RETURN_PROCESSED` - ACH receipt returned by the Receiving Depository
* Financial Institution.
@@ -390,6 +392,7 @@ export namespace Payment {
| 'ACH_ORIGINATION_SETTLED'
| 'ACH_RECEIPT_PROCESSED'
| 'ACH_RECEIPT_RELEASED'
+ | 'ACH_RECEIPT_RELEASED_EARLY'
| 'ACH_RECEIPT_SETTLED'
| 'ACH_RETURN_INITIATED'
| 'ACH_RETURN_PROCESSED'
@@ -709,6 +712,7 @@ export interface PaymentSimulateActionParams {
| 'ACH_ORIGINATION_SETTLED'
| 'ACH_RECEIPT_SETTLED'
| 'ACH_RECEIPT_RELEASED'
+ | 'ACH_RECEIPT_RELEASED_EARLY'
| 'ACH_RETURN_INITIATED'
| 'ACH_RETURN_PROCESSED'
| 'ACH_RETURN_SETTLED';
From d0147e8282fde1e9ed47a65a2418519b0f422450 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 11 Mar 2026 07:30:48 +0000
Subject: [PATCH 012/164] feat(api): add excluded_account_tokens to auth rules
v2
---
.stats.yml | 4 ++--
src/resources/auth-rules/v2/v2.ts | 36 ++++++++++++++++++++++++++++---
2 files changed, 35 insertions(+), 5 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index cb037391..735968d5 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 189
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-6eebc524f3f5b6499a79ef544e150cc49ea1dc1e1c76a5392079ca5a83e78100.yml
-openapi_spec_hash: 500c46c1194a128c404e17f7a5bff676
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-c5b3750e5a69b58f465c8bc61065c0ddd2fd3fec8fef2fa5703fcb10d7ba6a1c.yml
+openapi_spec_hash: 3a4cfae4d14318c5e3dfe8bcc751497f
config_hash: 7daa8d0d03697920c0c1ca18ce6d4594
diff --git a/src/resources/auth-rules/v2/v2.ts b/src/resources/auth-rules/v2/v2.ts
index 80f2c427..fac3d7ca 100644
--- a/src/resources/auth-rules/v2/v2.ts
+++ b/src/resources/auth-rules/v2/v2.ts
@@ -35,9 +35,9 @@ export class V2 extends APIResource {
/**
* Updates a V2 Auth rule's properties
*
- * If `account_tokens`, `card_tokens`, `program_level`, or `excluded_card_tokens`
- * is provided, this will replace existing associations with the provided list of
- * entities.
+ * If `account_tokens`, `card_tokens`, `program_level`, `excluded_card_tokens`,
+ * `excluded_account_tokens`, or `excluded_business_account_tokens` is provided,
+ * this will replace existing associations with the provided list of entities.
*/
update(authRuleToken: string, body: V2UpdateParams, options?: RequestOptions): APIPromise {
return this._client.patch(path`/v2/auth_rules/${authRuleToken}`, { body, ...options });
@@ -212,6 +212,16 @@ export interface AuthRule {
*/
type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE';
+ /**
+ * Account tokens to which the Auth Rule does not apply.
+ */
+ excluded_account_tokens?: Array;
+
+ /**
+ * Business account tokens to which the Auth Rule does not apply.
+ */
+ excluded_business_account_tokens?: Array;
+
/**
* Card tokens to which the Auth Rule does not apply.
*/
@@ -2248,6 +2258,16 @@ export declare namespace V2CreateParams {
*/
event_stream?: EventStream;
+ /**
+ * Account tokens to which the Auth Rule does not apply.
+ */
+ excluded_account_tokens?: Array;
+
+ /**
+ * Business account tokens to which the Auth Rule does not apply.
+ */
+ excluded_business_account_tokens?: Array;
+
/**
* Card tokens to which the Auth Rule does not apply.
*/
@@ -2314,6 +2334,16 @@ export declare namespace V2UpdateParams {
}
export interface ProgramLevelRule {
+ /**
+ * Account tokens to which the Auth Rule does not apply.
+ */
+ excluded_account_tokens?: Array;
+
+ /**
+ * Business account tokens to which the Auth Rule does not apply.
+ */
+ excluded_business_account_tokens?: Array;
+
/**
* Card tokens to which the Auth Rule does not apply.
*/
From 802fcff1f92a7a0ad94030f6599f600ecf855f62 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 11 Mar 2026 16:32:22 +0000
Subject: [PATCH 013/164] feat(api): add penalty_rates field to interest tier
schedule
---
.stats.yml | 4 ++--
.../financial-accounts/interest-tier-schedule.ts | 15 +++++++++++++++
.../interest-tier-schedule.test.ts | 2 ++
3 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 735968d5..99359f92 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 189
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-c5b3750e5a69b58f465c8bc61065c0ddd2fd3fec8fef2fa5703fcb10d7ba6a1c.yml
-openapi_spec_hash: 3a4cfae4d14318c5e3dfe8bcc751497f
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-b0ae5fc46338788b5191870fa233397a5624402f6f30177574fc824c2d6d235f.yml
+openapi_spec_hash: 13b104665e60f7d755b0483eb2e8a344
config_hash: 7daa8d0d03697920c0c1ca18ce6d4594
diff --git a/src/resources/financial-accounts/interest-tier-schedule.ts b/src/resources/financial-accounts/interest-tier-schedule.ts
index 7d5a4b21..5e6ed433 100644
--- a/src/resources/financial-accounts/interest-tier-schedule.ts
+++ b/src/resources/financial-accounts/interest-tier-schedule.ts
@@ -194,6 +194,11 @@ export interface InterestTierSchedule {
*/
effective_date: string;
+ /**
+ * Custom rates per category for penalties
+ */
+ penalty_rates?: unknown;
+
/**
* Name of a tier contained in the credit product. Mutually exclusive with
* tier_rates
@@ -217,6 +222,11 @@ export interface InterestTierScheduleCreateParams {
*/
effective_date: string;
+ /**
+ * Custom rates per category for penalties
+ */
+ penalty_rates?: unknown;
+
/**
* Name of a tier contained in the credit product. Mutually exclusive with
* tier_rates
@@ -242,6 +252,11 @@ export interface InterestTierScheduleUpdateParams {
*/
financial_account_token: string;
+ /**
+ * Body param: Custom rates per category for penalties
+ */
+ penalty_rates?: unknown;
+
/**
* Body param: Name of a tier contained in the credit product. Mutually exclusive
* with tier_rates
diff --git a/tests/api-resources/financial-accounts/interest-tier-schedule.test.ts b/tests/api-resources/financial-accounts/interest-tier-schedule.test.ts
index 5312bb21..2f99c01f 100644
--- a/tests/api-resources/financial-accounts/interest-tier-schedule.test.ts
+++ b/tests/api-resources/financial-accounts/interest-tier-schedule.test.ts
@@ -28,6 +28,7 @@ describe('resource interestTierSchedule', () => {
{
credit_product_token: 'credit_product_token',
effective_date: '2019-12-27',
+ penalty_rates: {},
tier_name: 'tier_name',
tier_rates: {},
},
@@ -69,6 +70,7 @@ describe('resource interestTierSchedule', () => {
test('update: required and optional params', async () => {
const response = await client.financialAccounts.interestTierSchedule.update('2019-12-27', {
financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
+ penalty_rates: {},
tier_name: 'tier_name',
tier_rates: {},
});
From dacfe8475243c0e4625008d4d6d0944eeb6a196d Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Thu, 12 Mar 2026 01:15:51 +0000
Subject: [PATCH 014/164] feat(api): add WIRE category/events, remove
remittance_information from payments
---
.github/workflows/publish-npm.yml | 5 +-
.github/workflows/release-doctor.yml | 2 +
.stats.yml | 6 +--
bin/check-release-environment | 4 ++
bin/publish-npm | 13 +----
src/resources/account-activity.ts | 3 ++
.../statements/line-items.ts | 6 +++
src/resources/payments.ts | 49 ++++++++++++++++---
8 files changed, 64 insertions(+), 24 deletions(-)
diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml
index 276f8dbd..af640da0 100644
--- a/.github/workflows/publish-npm.yml
+++ b/.github/workflows/publish-npm.yml
@@ -12,9 +12,6 @@ jobs:
publish:
name: publish
runs-on: ubuntu-latest
- permissions:
- contents: read
- id-token: write
steps:
- uses: actions/checkout@v6
@@ -31,3 +28,5 @@ jobs:
- name: Publish to NPM
run: |
bash ./bin/publish-npm
+ env:
+ NPM_TOKEN: ${{ secrets.LITHIC_NPM_TOKEN || secrets.NPM_TOKEN }}
diff --git a/.github/workflows/release-doctor.yml b/.github/workflows/release-doctor.yml
index 3ebabb64..764a1778 100644
--- a/.github/workflows/release-doctor.yml
+++ b/.github/workflows/release-doctor.yml
@@ -17,3 +17,5 @@ jobs:
- name: Check release environment
run: |
bash ./bin/check-release-environment
+ env:
+ NPM_TOKEN: ${{ secrets.LITHIC_NPM_TOKEN || secrets.NPM_TOKEN }}
diff --git a/.stats.yml b/.stats.yml
index 99359f92..b0101be8 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 189
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-b0ae5fc46338788b5191870fa233397a5624402f6f30177574fc824c2d6d235f.yml
-openapi_spec_hash: 13b104665e60f7d755b0483eb2e8a344
-config_hash: 7daa8d0d03697920c0c1ca18ce6d4594
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-716063c7d5d29dd3904168352017d0a065e50eec066f78ed8a3f7c796a48a78b.yml
+openapi_spec_hash: 3d930f469199651974e9bfbee65486ef
+config_hash: 8799cfd589579f105ef8696a6d664c71
diff --git a/bin/check-release-environment b/bin/check-release-environment
index 6b43775a..e4b6d58e 100644
--- a/bin/check-release-environment
+++ b/bin/check-release-environment
@@ -2,6 +2,10 @@
errors=()
+if [ -z "${NPM_TOKEN}" ]; then
+ errors+=("The NPM_TOKEN secret has not been set. Please set it in either this repository's secrets or your organization secrets")
+fi
+
lenErrors=${#errors[@]}
if [[ lenErrors -gt 0 ]]; then
diff --git a/bin/publish-npm b/bin/publish-npm
index 3d05c0bd..45e8aa80 100644
--- a/bin/publish-npm
+++ b/bin/publish-npm
@@ -2,12 +2,7 @@
set -eux
-if [[ ${NPM_TOKEN:-} ]]; then
- npm config set '//registry.npmjs.org/:_authToken' "$NPM_TOKEN"
-elif [[ ! ${ACTIONS_ID_TOKEN_REQUEST_TOKEN:-} ]]; then
- echo "ERROR: NPM_TOKEN must be set if not running in a Github Action with id-token permission"
- exit 1
-fi
+npm config set '//registry.npmjs.org/:_authToken' "$NPM_TOKEN"
yarn build
cd dist
@@ -62,9 +57,5 @@ else
TAG="latest"
fi
-# Install OIDC compatible npm version
-npm install --prefix ../oidc/ npm@11.6.2
-
# Publish with the appropriate tag
-export npm_config_registry='https://registry.npmjs.org'
-../oidc/node_modules/.bin/npm publish --tag "$TAG"
+yarn publish --tag "$TAG"
diff --git a/src/resources/account-activity.ts b/src/resources/account-activity.ts
index 8467be3a..ec9498bf 100644
--- a/src/resources/account-activity.ts
+++ b/src/resources/account-activity.ts
@@ -94,6 +94,7 @@ export namespace AccountActivityListResponse {
*/
category:
| 'ACH'
+ | 'WIRE'
| 'BALANCE_OR_FUNDING'
| 'FEE'
| 'REWARD'
@@ -234,6 +235,7 @@ export namespace AccountActivityRetrieveTransactionResponse {
*/
category:
| 'ACH'
+ | 'WIRE'
| 'BALANCE_OR_FUNDING'
| 'FEE'
| 'REWARD'
@@ -364,6 +366,7 @@ export interface AccountActivityListParams extends CursorPageParams {
*/
category?:
| 'ACH'
+ | 'WIRE'
| 'BALANCE_OR_FUNDING'
| 'FEE'
| 'REWARD'
diff --git a/src/resources/financial-accounts/statements/line-items.ts b/src/resources/financial-accounts/statements/line-items.ts
index 89c9c6c7..97c382bd 100644
--- a/src/resources/financial-accounts/statements/line-items.ts
+++ b/src/resources/financial-accounts/statements/line-items.ts
@@ -59,8 +59,14 @@ export namespace StatementLineItems {
*/
amount: number;
+ /**
+ * Note: Inbound wire transfers are coming soon (availability varies by partner
+ * bank). The WIRE category is a preview. To learn more, contact your customer
+ * success manager.
+ */
category:
| 'ACH'
+ | 'WIRE'
| 'BALANCE_OR_FUNDING'
| 'FEE'
| 'REWARD'
diff --git a/src/resources/payments.ts b/src/resources/payments.ts
index 20f4b5a7..28242623 100644
--- a/src/resources/payments.ts
+++ b/src/resources/payments.ts
@@ -199,6 +199,7 @@ export interface Payment {
*/
category:
| 'ACH'
+ | 'WIRE'
| 'BALANCE_OR_FUNDING'
| 'FEE'
| 'REWARD'
@@ -329,6 +330,10 @@ export interface Payment {
export namespace Payment {
/**
+ * Note: Inbound wire transfers are coming soon (availability varies by partner
+ * bank). Wire-related fields below are a preview. To learn more, contact your
+ * customer success manager.
+ *
* Payment Event
*/
export interface Event {
@@ -355,8 +360,14 @@ export namespace Payment {
result: 'APPROVED' | 'DECLINED';
/**
+ * Note: Inbound wire transfers are coming soon (availability varies by partner
+ * bank). Wire-related event types below are a preview. To learn more, contact your
+ * customer success manager.
+ *
* Event types:
*
+ * ACH events:
+ *
* - `ACH_ORIGINATION_INITIATED` - ACH origination received and pending
* approval/release from an ACH hold.
* - `ACH_ORIGINATION_REVIEWED` - ACH origination has completed the review process.
@@ -381,6 +392,26 @@ export namespace Payment {
* Financial Institution.
* - `ACH_RETURN_REJECTED` - ACH return was rejected by the Receiving Depository
* Financial Institution.
+ *
+ * Wire transfer events:
+ *
+ * - `WIRE_TRANSFER_INBOUND_RECEIVED` - Inbound wire transfer received from the
+ * Federal Reserve and pending release to available balance.
+ * - `WIRE_TRANSFER_INBOUND_SETTLED` - Inbound wire transfer funds released from
+ * pending to available balance.
+ * - `WIRE_TRANSFER_INBOUND_BLOCKED` - Inbound wire transfer blocked and funds
+ * frozen for regulatory review.
+ *
+ * Wire return events:
+ *
+ * - `WIRE_RETURN_OUTBOUND_INITIATED` - Outbound wire return initiated to return
+ * funds from an inbound wire transfer.
+ * - `WIRE_RETURN_OUTBOUND_SENT` - Outbound wire return sent to the Federal Reserve
+ * and pending acceptance.
+ * - `WIRE_RETURN_OUTBOUND_SETTLED` - Outbound wire return accepted by the Federal
+ * Reserve and funds returned to sender.
+ * - `WIRE_RETURN_OUTBOUND_REJECTED` - Outbound wire return rejected by the Federal
+ * Reserve.
*/
type:
| 'ACH_ORIGINATION_CANCELLED'
@@ -397,7 +428,14 @@ export namespace Payment {
| 'ACH_RETURN_INITIATED'
| 'ACH_RETURN_PROCESSED'
| 'ACH_RETURN_REJECTED'
- | 'ACH_RETURN_SETTLED';
+ | 'ACH_RETURN_SETTLED'
+ | 'WIRE_TRANSFER_INBOUND_RECEIVED'
+ | 'WIRE_TRANSFER_INBOUND_SETTLED'
+ | 'WIRE_TRANSFER_INBOUND_BLOCKED'
+ | 'WIRE_RETURN_OUTBOUND_INITIATED'
+ | 'WIRE_RETURN_OUTBOUND_SENT'
+ | 'WIRE_RETURN_OUTBOUND_SETTLED'
+ | 'WIRE_RETURN_OUTBOUND_REJECTED';
/**
* More detailed reasons for the event
@@ -413,7 +451,9 @@ export namespace Payment {
>;
/**
- * Payment event external ID, for example, ACH trace number.
+ * Payment event external ID. For ACH transactions, this is the ACH trace number.
+ * For inbound wire transfers, this is the IMAD (Input Message Accountability
+ * Data).
*/
external_id?: string | null;
}
@@ -480,11 +520,6 @@ export namespace Payment {
* for tracking the message through the Fedwire system
*/
message_id?: string | null;
-
- /**
- * Payment details or invoice reference
- */
- remittance_information?: string | null;
}
/**
From 4c44f7e47a7b6e2167431cdaef10938853b3d6c2 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Thu, 12 Mar 2026 02:35:24 +0000
Subject: [PATCH 015/164] docs(api): update disputes terminology to chargeback
request
---
.stats.yml | 4 ++--
src/resources/disputes.ts | 42 +++++++++++++++++++--------------------
2 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index b0101be8..a054f17e 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 189
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-716063c7d5d29dd3904168352017d0a065e50eec066f78ed8a3f7c796a48a78b.yml
-openapi_spec_hash: 3d930f469199651974e9bfbee65486ef
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-20de8e5670f8b5c47d263b6bf61c86ef65079ae0a1be0fe15ff815083b47a72d.yml
+openapi_spec_hash: 5033b4e762488df1010a932b9688bb23
config_hash: 8799cfd589579f105ef8696a6d664c71
diff --git a/src/resources/disputes.ts b/src/resources/disputes.ts
index 97c241a8..f07d9bdf 100644
--- a/src/resources/disputes.ts
+++ b/src/resources/disputes.ts
@@ -10,7 +10,7 @@ import { maybeMultipartFormRequestOptions } from '../internal/uploads';
export class Disputes extends APIResource {
/**
- * Initiate a dispute.
+ * Request a chargeback.
*
* @example
* ```ts
@@ -27,7 +27,7 @@ export class Disputes extends APIResource {
}
/**
- * Get dispute.
+ * Get chargeback request.
*
* @example
* ```ts
@@ -41,7 +41,7 @@ export class Disputes extends APIResource {
}
/**
- * Update dispute. Can only be modified if status is `NEW`.
+ * Update chargeback request. Can only be modified if status is `NEW`.
*
* @example
* ```ts
@@ -55,7 +55,7 @@ export class Disputes extends APIResource {
}
/**
- * List disputes.
+ * List chargeback requests.
*
* @example
* ```ts
@@ -73,7 +73,7 @@ export class Disputes extends APIResource {
}
/**
- * Withdraw dispute.
+ * Withdraw chargeback request.
*
* @example
* ```ts
@@ -87,8 +87,8 @@ export class Disputes extends APIResource {
}
/**
- * Soft delete evidence for a dispute. Evidence will not be reviewed or submitted
- * by Lithic after it is withdrawn.
+ * Soft delete evidence for a chargeback request. Evidence will not be reviewed or
+ * submitted by Lithic after it is withdrawn.
*
* @example
* ```ts
@@ -111,8 +111,8 @@ export class Disputes extends APIResource {
}
/**
- * Use this endpoint to upload evidences for the dispute. It will return a URL to
- * upload your documents to. The URL will expire in 30 minutes.
+ * Use this endpoint to upload evidence for a chargeback request. It will return a
+ * URL to upload your documents to. The URL will expire in 30 minutes.
*
* Uploaded documents must either be a `jpg`, `png` or `pdf` file, and each must be
* less than 5 GiB.
@@ -134,7 +134,7 @@ export class Disputes extends APIResource {
}
/**
- * List evidence metadata for a dispute.
+ * List evidence for a chargeback request.
*
* @example
* ```ts
@@ -159,7 +159,7 @@ export class Disputes extends APIResource {
}
/**
- * Get a dispute's evidence metadata.
+ * Get evidence for a chargeback request.
*
* @example
* ```ts
@@ -437,12 +437,12 @@ export interface DisputeEvidence {
export interface DisputeCreateParams {
/**
- * Amount to dispute
+ * Amount for chargeback
*/
amount: number;
/**
- * Reason for dispute
+ * Reason for chargeback
*/
reason:
| 'ATM_CASH_MISDISPENSE'
@@ -461,39 +461,39 @@ export interface DisputeCreateParams {
| 'REFUND_NOT_PROCESSED';
/**
- * Transaction to dispute
+ * Transaction for chargeback
*/
transaction_token: string;
/**
- * Date the customer filed the dispute
+ * Date the customer filed the chargeback request
*/
customer_filed_date?: string;
/**
- * Customer description of dispute
+ * Customer description
*/
customer_note?: string;
}
export interface DisputeUpdateParams {
/**
- * Amount to dispute
+ * Amount for chargeback
*/
amount?: number;
/**
- * Date the customer filed the dispute
+ * Date the customer filed the chargeback request
*/
customer_filed_date?: string;
/**
- * Customer description of dispute
+ * Customer description
*/
customer_note?: string;
/**
- * Reason for dispute
+ * Reason for chargeback
*/
reason?:
| 'ATM_CASH_MISDISPENSE'
@@ -526,7 +526,7 @@ export interface DisputeListParams extends CursorPageParams {
end?: string;
/**
- * List disputes of a specific status.
+ * Filter by status.
*/
status?:
| 'ARBITRATION'
From db4e3e2dad35d43665882958306ba8adf23fc317 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Thu, 12 Mar 2026 07:51:44 +0000
Subject: [PATCH 016/164] feat(api): add versions field to auth rules v2 report
response
---
.stats.yml | 4 +-
src/resources/auth-rules/v2/v2.ts | 279 ++++++++++++++++++++++++++++++
2 files changed, 281 insertions(+), 2 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index a054f17e..f9edce89 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 189
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-20de8e5670f8b5c47d263b6bf61c86ef65079ae0a1be0fe15ff815083b47a72d.yml
-openapi_spec_hash: 5033b4e762488df1010a932b9688bb23
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-050eca03eeda44dc07b8f05a293b2b943d6a7f1608ba404b6bef74ca9224e060.yml
+openapi_spec_hash: b6e9f731752fef461559dcaa9aa63a02
config_hash: 8799cfd589579f105ef8696a6d664c71
diff --git a/src/resources/auth-rules/v2/v2.ts b/src/resources/auth-rules/v2/v2.ts
index fac3d7ca..37e0cf02 100644
--- a/src/resources/auth-rules/v2/v2.ts
+++ b/src/resources/auth-rules/v2/v2.ts
@@ -2109,6 +2109,285 @@ export namespace V2RetrieveReportResponse {
* Detailed statistics for the draft version of the rule.
*/
draft_version_statistics: V2API.ReportStats | null;
+
+ /**
+ * Statistics for each version of the rule that was evaluated during the reported
+ * day.
+ */
+ versions: Array;
+ }
+
+ export namespace DailyStatistic {
+ export interface Version {
+ /**
+ * A mapping of action types to the number of times that action was returned by
+ * this version during the relevant period. Actions are the possible outcomes of a
+ * rule evaluation, such as DECLINE, CHALLENGE, REQUIRE_TFA, etc. In case rule
+ * didn't trigger any action, it's counted under NO_ACTION key.
+ */
+ action_counts: { [key: string]: number };
+
+ /**
+ * Example events and their outcomes for this version.
+ */
+ examples: Array;
+
+ /**
+ * The evaluation mode of this version during the reported period.
+ */
+ state: 'ACTIVE' | 'SHADOW' | 'INACTIVE';
+
+ /**
+ * The rule version number.
+ */
+ version: number;
+ }
+
+ export namespace Version {
+ export interface Example {
+ /**
+ * The actions taken by this version for this event.
+ */
+ actions: Array<
+ | Example.DeclineActionAuthorization
+ | Example.ChallengeActionAuthorization
+ | Example.ResultAuthentication3DSAction
+ | Example.DeclineActionTokenization
+ | Example.RequireTfaAction
+ | Example.ApproveActionACH
+ | Example.ReturnAction
+ >;
+
+ /**
+ * The event token.
+ */
+ event_token: string;
+
+ /**
+ * The timestamp of the event.
+ */
+ timestamp: string;
+ }
+
+ export namespace Example {
+ export interface DeclineActionAuthorization {
+ /**
+ * The detailed result code explaining the specific reason for the decline
+ */
+ code:
+ | 'ACCOUNT_DAILY_SPEND_LIMIT_EXCEEDED'
+ | 'ACCOUNT_DELINQUENT'
+ | 'ACCOUNT_INACTIVE'
+ | 'ACCOUNT_LIFETIME_SPEND_LIMIT_EXCEEDED'
+ | 'ACCOUNT_MONTHLY_SPEND_LIMIT_EXCEEDED'
+ | 'ACCOUNT_PAUSED'
+ | 'ACCOUNT_UNDER_REVIEW'
+ | 'ADDRESS_INCORRECT'
+ | 'APPROVED'
+ | 'AUTH_RULE_ALLOWED_COUNTRY'
+ | 'AUTH_RULE_ALLOWED_MCC'
+ | 'AUTH_RULE_BLOCKED_COUNTRY'
+ | 'AUTH_RULE_BLOCKED_MCC'
+ | 'AUTH_RULE'
+ | 'CARD_CLOSED'
+ | 'CARD_CRYPTOGRAM_VALIDATION_FAILURE'
+ | 'CARD_EXPIRED'
+ | 'CARD_EXPIRY_DATE_INCORRECT'
+ | 'CARD_INVALID'
+ | 'CARD_NOT_ACTIVATED'
+ | 'CARD_PAUSED'
+ | 'CARD_PIN_INCORRECT'
+ | 'CARD_RESTRICTED'
+ | 'CARD_SECURITY_CODE_INCORRECT'
+ | 'CARD_SPEND_LIMIT_EXCEEDED'
+ | 'CONTACT_CARD_ISSUER'
+ | 'CUSTOMER_ASA_TIMEOUT'
+ | 'CUSTOM_ASA_RESULT'
+ | 'DECLINED'
+ | 'DO_NOT_HONOR'
+ | 'DRIVER_NUMBER_INVALID'
+ | 'FORMAT_ERROR'
+ | 'INSUFFICIENT_FUNDING_SOURCE_BALANCE'
+ | 'INSUFFICIENT_FUNDS'
+ | 'LITHIC_SYSTEM_ERROR'
+ | 'LITHIC_SYSTEM_RATE_LIMIT'
+ | 'MALFORMED_ASA_RESPONSE'
+ | 'MERCHANT_INVALID'
+ | 'MERCHANT_LOCKED_CARD_ATTEMPTED_ELSEWHERE'
+ | 'MERCHANT_NOT_PERMITTED'
+ | 'OVER_REVERSAL_ATTEMPTED'
+ | 'PIN_BLOCKED'
+ | 'PROGRAM_CARD_SPEND_LIMIT_EXCEEDED'
+ | 'PROGRAM_SUSPENDED'
+ | 'PROGRAM_USAGE_RESTRICTION'
+ | 'REVERSAL_UNMATCHED'
+ | 'SECURITY_VIOLATION'
+ | 'SINGLE_USE_CARD_REATTEMPTED'
+ | 'SUSPECTED_FRAUD'
+ | 'TRANSACTION_INVALID'
+ | 'TRANSACTION_NOT_PERMITTED_TO_ACQUIRER_OR_TERMINAL'
+ | 'TRANSACTION_NOT_PERMITTED_TO_ISSUER_OR_CARDHOLDER'
+ | 'TRANSACTION_PREVIOUSLY_COMPLETED'
+ | 'UNAUTHORIZED_MERCHANT'
+ | 'VEHICLE_NUMBER_INVALID'
+ | 'CARDHOLDER_CHALLENGED'
+ | 'CARDHOLDER_CHALLENGE_FAILED';
+
+ type: 'DECLINE';
+ }
+
+ export interface ChallengeActionAuthorization {
+ type: 'CHALLENGE';
+ }
+
+ export interface ResultAuthentication3DSAction {
+ type: 'DECLINE' | 'CHALLENGE';
+ }
+
+ export interface DeclineActionTokenization {
+ /**
+ * Decline the tokenization request
+ */
+ type: 'DECLINE';
+
+ /**
+ * Reason code for declining the tokenization request
+ */
+ reason?:
+ | 'ACCOUNT_SCORE_1'
+ | 'DEVICE_SCORE_1'
+ | 'ALL_WALLET_DECLINE_REASONS_PRESENT'
+ | 'WALLET_RECOMMENDED_DECISION_RED'
+ | 'CVC_MISMATCH'
+ | 'CARD_EXPIRY_MONTH_MISMATCH'
+ | 'CARD_EXPIRY_YEAR_MISMATCH'
+ | 'CARD_INVALID_STATE'
+ | 'CUSTOMER_RED_PATH'
+ | 'INVALID_CUSTOMER_RESPONSE'
+ | 'NETWORK_FAILURE'
+ | 'GENERIC_DECLINE'
+ | 'DIGITAL_CARD_ART_REQUIRED';
+ }
+
+ export interface RequireTfaAction {
+ /**
+ * Require two-factor authentication for the tokenization request
+ */
+ type: 'REQUIRE_TFA';
+
+ /**
+ * Reason code for requiring two-factor authentication
+ */
+ reason?:
+ | 'WALLET_RECOMMENDED_TFA'
+ | 'SUSPICIOUS_ACTIVITY'
+ | 'DEVICE_RECENTLY_LOST'
+ | 'TOO_MANY_RECENT_ATTEMPTS'
+ | 'TOO_MANY_RECENT_TOKENS'
+ | 'TOO_MANY_DIFFERENT_CARDHOLDERS'
+ | 'OUTSIDE_HOME_TERRITORY'
+ | 'HAS_SUSPENDED_TOKENS'
+ | 'HIGH_RISK'
+ | 'ACCOUNT_SCORE_LOW'
+ | 'DEVICE_SCORE_LOW'
+ | 'CARD_STATE_TFA'
+ | 'HARDCODED_TFA'
+ | 'CUSTOMER_RULE_TFA'
+ | 'DEVICE_HOST_CARD_EMULATION';
+ }
+
+ export interface ApproveActionACH {
+ /**
+ * Approve the ACH transaction
+ */
+ type: 'APPROVE';
+ }
+
+ export interface ReturnAction {
+ /**
+ * NACHA return code to use when returning the transaction. Note that the list of
+ * available return codes is subject to an allowlist configured at the program
+ * level
+ */
+ code:
+ | 'R01'
+ | 'R02'
+ | 'R03'
+ | 'R04'
+ | 'R05'
+ | 'R06'
+ | 'R07'
+ | 'R08'
+ | 'R09'
+ | 'R10'
+ | 'R11'
+ | 'R12'
+ | 'R13'
+ | 'R14'
+ | 'R15'
+ | 'R16'
+ | 'R17'
+ | 'R18'
+ | 'R19'
+ | 'R20'
+ | 'R21'
+ | 'R22'
+ | 'R23'
+ | 'R24'
+ | 'R25'
+ | 'R26'
+ | 'R27'
+ | 'R28'
+ | 'R29'
+ | 'R30'
+ | 'R31'
+ | 'R32'
+ | 'R33'
+ | 'R34'
+ | 'R35'
+ | 'R36'
+ | 'R37'
+ | 'R38'
+ | 'R39'
+ | 'R40'
+ | 'R41'
+ | 'R42'
+ | 'R43'
+ | 'R44'
+ | 'R45'
+ | 'R46'
+ | 'R47'
+ | 'R50'
+ | 'R51'
+ | 'R52'
+ | 'R53'
+ | 'R61'
+ | 'R62'
+ | 'R67'
+ | 'R68'
+ | 'R69'
+ | 'R70'
+ | 'R71'
+ | 'R72'
+ | 'R73'
+ | 'R74'
+ | 'R75'
+ | 'R76'
+ | 'R77'
+ | 'R80'
+ | 'R81'
+ | 'R82'
+ | 'R83'
+ | 'R84'
+ | 'R85';
+
+ /**
+ * Return the ACH transaction
+ */
+ type: 'RETURN';
+ }
+ }
+ }
}
}
From a66d7b71e6c1896de5aa9ba07c4430d7beb075a0 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Thu, 12 Mar 2026 09:35:02 +0000
Subject: [PATCH 017/164] chore(internal): regenerate SDK with no functional
changes
---
.stats.yml | 8 ++--
api.md | 3 ++
src/resources/auth-rules/auth-rules.ts | 4 ++
src/resources/auth-rules/index.ts | 2 +
src/resources/auth-rules/v2/index.ts | 2 +
src/resources/auth-rules/v2/v2.ts | 45 ++++++++++++++++++++
tests/api-resources/auth-rules/v2/v2.test.ts | 11 +++++
7 files changed, 71 insertions(+), 4 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index f9edce89..4ed422fd 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
-configured_endpoints: 189
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-050eca03eeda44dc07b8f05a293b2b943d6a7f1608ba404b6bef74ca9224e060.yml
-openapi_spec_hash: b6e9f731752fef461559dcaa9aa63a02
-config_hash: 8799cfd589579f105ef8696a6d664c71
+configured_endpoints: 190
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-215dc6b4a60a59c6ab935684d1c8a8901e970a7ea9cce62b7dba51d9ec161318.yml
+openapi_spec_hash: 21ea7542d2222e3c825b8c337ddf4a99
+config_hash: 2e69ca9699ec18d9d7337604821d3091
diff --git a/api.md b/api.md
index d4a38110..d2ae3cb8 100644
--- a/api.md
+++ b/api.md
@@ -84,6 +84,7 @@ Types:
- AuthRule
- AuthRuleCondition
+- AuthRuleVersion
- BacktestStats
- Conditional3DSActionParameters
- ConditionalACHActionParameters
@@ -102,6 +103,7 @@ Types:
- VelocityLimitParams
- VelocityLimitPeriod
- V2ListResultsResponse
+- V2ListVersionsResponse
- V2RetrieveFeaturesResponse
- V2RetrieveReportResponse
@@ -114,6 +116,7 @@ Methods:
- client.authRules.v2.delete(authRuleToken) -> void
- client.authRules.v2.draft(authRuleToken, { ...params }) -> AuthRule
- client.authRules.v2.listResults({ ...params }) -> V2ListResultsResponsesCursorPage
+- client.authRules.v2.listVersions(authRuleToken) -> V2ListVersionsResponse
- client.authRules.v2.promote(authRuleToken) -> AuthRule
- client.authRules.v2.retrieveFeatures(authRuleToken, { ...params }) -> V2RetrieveFeaturesResponse
- client.authRules.v2.retrieveReport(authRuleToken, { ...params }) -> V2RetrieveReportResponse
diff --git a/src/resources/auth-rules/auth-rules.ts b/src/resources/auth-rules/auth-rules.ts
index 35716042..b544f937 100644
--- a/src/resources/auth-rules/auth-rules.ts
+++ b/src/resources/auth-rules/auth-rules.ts
@@ -5,6 +5,7 @@ import * as V2API from './v2/v2';
import {
AuthRule,
AuthRuleCondition,
+ AuthRuleVersion,
AuthRulesCursorPage,
BacktestStats,
Conditional3DSActionParameters,
@@ -27,6 +28,7 @@ import {
V2ListResultsParams,
V2ListResultsResponse,
V2ListResultsResponsesCursorPage,
+ V2ListVersionsResponse,
V2RetrieveFeaturesParams,
V2RetrieveFeaturesResponse,
V2RetrieveReportParams,
@@ -48,6 +50,7 @@ export declare namespace AuthRules {
V2 as V2,
type AuthRule as AuthRule,
type AuthRuleCondition as AuthRuleCondition,
+ type AuthRuleVersion as AuthRuleVersion,
type BacktestStats as BacktestStats,
type Conditional3DSActionParameters as Conditional3DSActionParameters,
type ConditionalACHActionParameters as ConditionalACHActionParameters,
@@ -66,6 +69,7 @@ export declare namespace AuthRules {
type VelocityLimitParams as VelocityLimitParams,
type VelocityLimitPeriod as VelocityLimitPeriod,
type V2ListResultsResponse as V2ListResultsResponse,
+ type V2ListVersionsResponse as V2ListVersionsResponse,
type V2RetrieveFeaturesResponse as V2RetrieveFeaturesResponse,
type V2RetrieveReportResponse as V2RetrieveReportResponse,
type AuthRulesCursorPage as AuthRulesCursorPage,
diff --git a/src/resources/auth-rules/index.ts b/src/resources/auth-rules/index.ts
index ede636bf..dddb701c 100644
--- a/src/resources/auth-rules/index.ts
+++ b/src/resources/auth-rules/index.ts
@@ -5,6 +5,7 @@ export {
V2,
type AuthRule,
type AuthRuleCondition,
+ type AuthRuleVersion,
type BacktestStats,
type Conditional3DSActionParameters,
type ConditionalACHActionParameters,
@@ -23,6 +24,7 @@ export {
type VelocityLimitParams,
type VelocityLimitPeriod,
type V2ListResultsResponse,
+ type V2ListVersionsResponse,
type V2RetrieveFeaturesResponse,
type V2RetrieveReportResponse,
type V2CreateParams,
diff --git a/src/resources/auth-rules/v2/index.ts b/src/resources/auth-rules/v2/index.ts
index bd6bd09c..b9e37360 100644
--- a/src/resources/auth-rules/v2/index.ts
+++ b/src/resources/auth-rules/v2/index.ts
@@ -11,6 +11,7 @@ export {
V2,
type AuthRule,
type AuthRuleCondition,
+ type AuthRuleVersion,
type BacktestStats,
type Conditional3DSActionParameters,
type ConditionalACHActionParameters,
@@ -29,6 +30,7 @@ export {
type VelocityLimitParams,
type VelocityLimitPeriod,
type V2ListResultsResponse,
+ type V2ListVersionsResponse,
type V2RetrieveFeaturesResponse,
type V2RetrieveReportResponse,
type V2CreateParams,
diff --git a/src/resources/auth-rules/v2/v2.ts b/src/resources/auth-rules/v2/v2.ts
index 37e0cf02..b7f1b6b3 100644
--- a/src/resources/auth-rules/v2/v2.ts
+++ b/src/resources/auth-rules/v2/v2.ts
@@ -89,6 +89,14 @@ export class V2 extends APIResource {
});
}
+ /**
+ * Returns all versions of an auth rule, sorted by version number descending
+ * (newest first).
+ */
+ listVersions(authRuleToken: string, options?: RequestOptions): APIPromise {
+ return this._client.get(path`/v2/auth_rules/${authRuleToken}/versions`, options);
+ }
+
/**
* Promotes the draft version of an Auth rule to the currently active version such
* that it is enforced in the respective stream.
@@ -358,6 +366,37 @@ export interface AuthRuleCondition {
value: ConditionalValue;
}
+export interface AuthRuleVersion {
+ /**
+ * Timestamp of when this version was created.
+ */
+ created: string;
+
+ /**
+ * Parameters for the Auth Rule
+ */
+ parameters:
+ | ConditionalBlockParameters
+ | VelocityLimitParams
+ | MerchantLockParameters
+ | Conditional3DSActionParameters
+ | ConditionalAuthorizationActionParameters
+ | ConditionalACHActionParameters
+ | ConditionalTokenizationActionParameters
+ | TypescriptCodeParameters;
+
+ /**
+ * The current state of this version.
+ */
+ state: 'ACTIVE' | 'SHADOW' | 'INACTIVE';
+
+ /**
+ * The version of the rule, this is incremented whenever the rule's parameters
+ * change.
+ */
+ version: number;
+}
+
export interface BacktestStats {
/**
* The total number of historical transactions approved by this rule during the
@@ -2024,6 +2063,10 @@ export namespace V2ListResultsResponse {
}
}
+export interface V2ListVersionsResponse {
+ data: Array;
+}
+
export interface V2RetrieveFeaturesResponse {
/**
* Timestamp at which the Features were evaluated
@@ -2754,6 +2797,7 @@ export declare namespace V2 {
export {
type AuthRule as AuthRule,
type AuthRuleCondition as AuthRuleCondition,
+ type AuthRuleVersion as AuthRuleVersion,
type BacktestStats as BacktestStats,
type Conditional3DSActionParameters as Conditional3DSActionParameters,
type ConditionalACHActionParameters as ConditionalACHActionParameters,
@@ -2772,6 +2816,7 @@ export declare namespace V2 {
type VelocityLimitParams as VelocityLimitParams,
type VelocityLimitPeriod as VelocityLimitPeriod,
type V2ListResultsResponse as V2ListResultsResponse,
+ type V2ListVersionsResponse as V2ListVersionsResponse,
type V2RetrieveFeaturesResponse as V2RetrieveFeaturesResponse,
type V2RetrieveReportResponse as V2RetrieveReportResponse,
type AuthRulesCursorPage as AuthRulesCursorPage,
diff --git a/tests/api-resources/auth-rules/v2/v2.test.ts b/tests/api-resources/auth-rules/v2/v2.test.ts
index 488f6402..1d5700a4 100644
--- a/tests/api-resources/auth-rules/v2/v2.test.ts
+++ b/tests/api-resources/auth-rules/v2/v2.test.ts
@@ -154,6 +154,17 @@ describe('resource v2', () => {
).rejects.toThrow(Lithic.NotFoundError);
});
+ test('listVersions', async () => {
+ const responsePromise = client.authRules.v2.listVersions('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
+ const rawResponse = await responsePromise.asResponse();
+ expect(rawResponse).toBeInstanceOf(Response);
+ const response = await responsePromise;
+ expect(response).not.toBeInstanceOf(Response);
+ const dataAndResponse = await responsePromise.withResponse();
+ expect(dataAndResponse.data).toBe(response);
+ expect(dataAndResponse.response).toBe(rawResponse);
+ });
+
test('promote', async () => {
const responsePromise = client.authRules.v2.promote('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
const rawResponse = await responsePromise.asResponse();
From 1c678f6576d6b86822baa89d46baa9004fcf2b9c Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Thu, 12 Mar 2026 11:52:53 +0000
Subject: [PATCH 018/164] fix(types): make start/end required, remove
auth_rule_token from backtests
---
.stats.yml | 4 ++--
src/resources/auth-rules/v2/backtests.ts | 13 ++++---------
2 files changed, 6 insertions(+), 11 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 4ed422fd..1578c90d 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-215dc6b4a60a59c6ab935684d1c8a8901e970a7ea9cce62b7dba51d9ec161318.yml
-openapi_spec_hash: 21ea7542d2222e3c825b8c337ddf4a99
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-d67717d651ba08e30f82e42f4468cfb46f87470f970ae1e19a7c0dc16c275a87.yml
+openapi_spec_hash: 969a03848267a110e83a696547b7f2a8
config_hash: 2e69ca9699ec18d9d7337604821d3091
diff --git a/src/resources/auth-rules/v2/backtests.ts b/src/resources/auth-rules/v2/backtests.ts
index 20f71d75..792dbac8 100644
--- a/src/resources/auth-rules/v2/backtests.ts
+++ b/src/resources/auth-rules/v2/backtests.ts
@@ -95,19 +95,14 @@ export namespace BacktestResults {
export interface SimulationParameters {
/**
- * Auth Rule Token
+ * The end time of the simulation
*/
- auth_rule_token?: string;
+ end: string;
/**
- * The end time of the simulation.
+ * The start time of the simulation
*/
- end?: string;
-
- /**
- * The start time of the simulation.
- */
- start?: string;
+ start: string;
}
}
From 6383efa4c739caccbd95658f1f651d5fc4e64b04 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Fri, 13 Mar 2026 14:23:34 +0000
Subject: [PATCH 019/164] fix(api): [breaking] unify webhook schemas for
digital_wallet.tokenization_approval_request webhooks
---
.stats.yml | 8 +-
api.md | 4 -
src/client.ts | 2 -
src/resources/account-activity.ts | 3 -
src/resources/auth-rules/auth-rules.ts | 4 -
src/resources/auth-rules/index.ts | 2 -
src/resources/auth-rules/v2/backtests.ts | 13 +-
src/resources/auth-rules/v2/index.ts | 2 -
src/resources/auth-rules/v2/v2.ts | 324 ------------------
src/resources/disputes.ts | 42 +--
src/resources/events/events.ts | 6 -
src/resources/events/subscriptions.ts | 3 -
.../interest-tier-schedule.ts | 15 -
.../statements/line-items.ts | 6 -
src/resources/index.ts | 1 -
src/resources/payments.ts | 49 +--
src/resources/webhooks.ts | 90 +----
tests/api-resources/auth-rules/v2/v2.test.ts | 11 -
.../interest-tier-schedule.test.ts | 2 -
19 files changed, 60 insertions(+), 527 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 1578c90d..abffc1e7 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
-configured_endpoints: 190
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-d67717d651ba08e30f82e42f4468cfb46f87470f970ae1e19a7c0dc16c275a87.yml
-openapi_spec_hash: 969a03848267a110e83a696547b7f2a8
-config_hash: 2e69ca9699ec18d9d7337604821d3091
+configured_endpoints: 189
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-c37843d1525e87f47a292bf11a6fdcc277157556da21c923cc1b4a4473147ef0.yml
+openapi_spec_hash: 29a8c4637c8a00339aa0095a929a6096
+config_hash: 8799cfd589579f105ef8696a6d664c71
diff --git a/api.md b/api.md
index d2ae3cb8..f962999e 100644
--- a/api.md
+++ b/api.md
@@ -84,7 +84,6 @@ Types:
- AuthRule
- AuthRuleCondition
-- AuthRuleVersion
- BacktestStats
- Conditional3DSActionParameters
- ConditionalACHActionParameters
@@ -103,7 +102,6 @@ Types:
- VelocityLimitParams
- VelocityLimitPeriod
- V2ListResultsResponse
-- V2ListVersionsResponse
- V2RetrieveFeaturesResponse
- V2RetrieveReportResponse
@@ -116,7 +114,6 @@ Methods:
- client.authRules.v2.delete(authRuleToken) -> void
- client.authRules.v2.draft(authRuleToken, { ...params }) -> AuthRule
- client.authRules.v2.listResults({ ...params }) -> V2ListResultsResponsesCursorPage
-- client.authRules.v2.listVersions(authRuleToken) -> V2ListVersionsResponse
- client.authRules.v2.promote(authRuleToken) -> AuthRule
- client.authRules.v2.retrieveFeatures(authRuleToken, { ...params }) -> V2RetrieveFeaturesResponse
- client.authRules.v2.retrieveReport(authRuleToken, { ...params }) -> V2RetrieveReportResponse
@@ -798,7 +795,6 @@ Types:
- AccountHolderVerificationWebhookEvent
- AccountHolderDocumentUpdatedWebhookEvent
- CardAuthorizationApprovalRequestWebhookEvent
-- TokenizationDecisioningRequestWebhookEvent
- AuthRulesBacktestReportCreatedWebhookEvent
- BalanceUpdatedWebhookEvent
- BookTransferTransactionCreatedWebhookEvent
diff --git a/src/client.ts b/src/client.ts
index 99127887..92483fed 100644
--- a/src/client.ts
+++ b/src/client.ts
@@ -238,7 +238,6 @@ import {
ThreeDSAuthenticationCreatedWebhookEvent,
ThreeDSAuthenticationUpdatedWebhookEvent,
TokenizationApprovalRequestWebhookEvent,
- TokenizationDecisioningRequestWebhookEvent,
TokenizationResultWebhookEvent,
TokenizationTwoFactorAuthenticationCodeSentWebhookEvent,
TokenizationTwoFactorAuthenticationCodeWebhookEvent,
@@ -1548,7 +1547,6 @@ export declare namespace Lithic {
type AccountHolderVerificationWebhookEvent as AccountHolderVerificationWebhookEvent,
type AccountHolderDocumentUpdatedWebhookEvent as AccountHolderDocumentUpdatedWebhookEvent,
type CardAuthorizationApprovalRequestWebhookEvent as CardAuthorizationApprovalRequestWebhookEvent,
- type TokenizationDecisioningRequestWebhookEvent as TokenizationDecisioningRequestWebhookEvent,
type AuthRulesBacktestReportCreatedWebhookEvent as AuthRulesBacktestReportCreatedWebhookEvent,
type BalanceUpdatedWebhookEvent as BalanceUpdatedWebhookEvent,
type BookTransferTransactionCreatedWebhookEvent as BookTransferTransactionCreatedWebhookEvent,
diff --git a/src/resources/account-activity.ts b/src/resources/account-activity.ts
index ec9498bf..8467be3a 100644
--- a/src/resources/account-activity.ts
+++ b/src/resources/account-activity.ts
@@ -94,7 +94,6 @@ export namespace AccountActivityListResponse {
*/
category:
| 'ACH'
- | 'WIRE'
| 'BALANCE_OR_FUNDING'
| 'FEE'
| 'REWARD'
@@ -235,7 +234,6 @@ export namespace AccountActivityRetrieveTransactionResponse {
*/
category:
| 'ACH'
- | 'WIRE'
| 'BALANCE_OR_FUNDING'
| 'FEE'
| 'REWARD'
@@ -366,7 +364,6 @@ export interface AccountActivityListParams extends CursorPageParams {
*/
category?:
| 'ACH'
- | 'WIRE'
| 'BALANCE_OR_FUNDING'
| 'FEE'
| 'REWARD'
diff --git a/src/resources/auth-rules/auth-rules.ts b/src/resources/auth-rules/auth-rules.ts
index b544f937..35716042 100644
--- a/src/resources/auth-rules/auth-rules.ts
+++ b/src/resources/auth-rules/auth-rules.ts
@@ -5,7 +5,6 @@ import * as V2API from './v2/v2';
import {
AuthRule,
AuthRuleCondition,
- AuthRuleVersion,
AuthRulesCursorPage,
BacktestStats,
Conditional3DSActionParameters,
@@ -28,7 +27,6 @@ import {
V2ListResultsParams,
V2ListResultsResponse,
V2ListResultsResponsesCursorPage,
- V2ListVersionsResponse,
V2RetrieveFeaturesParams,
V2RetrieveFeaturesResponse,
V2RetrieveReportParams,
@@ -50,7 +48,6 @@ export declare namespace AuthRules {
V2 as V2,
type AuthRule as AuthRule,
type AuthRuleCondition as AuthRuleCondition,
- type AuthRuleVersion as AuthRuleVersion,
type BacktestStats as BacktestStats,
type Conditional3DSActionParameters as Conditional3DSActionParameters,
type ConditionalACHActionParameters as ConditionalACHActionParameters,
@@ -69,7 +66,6 @@ export declare namespace AuthRules {
type VelocityLimitParams as VelocityLimitParams,
type VelocityLimitPeriod as VelocityLimitPeriod,
type V2ListResultsResponse as V2ListResultsResponse,
- type V2ListVersionsResponse as V2ListVersionsResponse,
type V2RetrieveFeaturesResponse as V2RetrieveFeaturesResponse,
type V2RetrieveReportResponse as V2RetrieveReportResponse,
type AuthRulesCursorPage as AuthRulesCursorPage,
diff --git a/src/resources/auth-rules/index.ts b/src/resources/auth-rules/index.ts
index dddb701c..ede636bf 100644
--- a/src/resources/auth-rules/index.ts
+++ b/src/resources/auth-rules/index.ts
@@ -5,7 +5,6 @@ export {
V2,
type AuthRule,
type AuthRuleCondition,
- type AuthRuleVersion,
type BacktestStats,
type Conditional3DSActionParameters,
type ConditionalACHActionParameters,
@@ -24,7 +23,6 @@ export {
type VelocityLimitParams,
type VelocityLimitPeriod,
type V2ListResultsResponse,
- type V2ListVersionsResponse,
type V2RetrieveFeaturesResponse,
type V2RetrieveReportResponse,
type V2CreateParams,
diff --git a/src/resources/auth-rules/v2/backtests.ts b/src/resources/auth-rules/v2/backtests.ts
index 792dbac8..20f71d75 100644
--- a/src/resources/auth-rules/v2/backtests.ts
+++ b/src/resources/auth-rules/v2/backtests.ts
@@ -95,14 +95,19 @@ export namespace BacktestResults {
export interface SimulationParameters {
/**
- * The end time of the simulation
+ * Auth Rule Token
*/
- end: string;
+ auth_rule_token?: string;
/**
- * The start time of the simulation
+ * The end time of the simulation.
*/
- start: string;
+ end?: string;
+
+ /**
+ * The start time of the simulation.
+ */
+ start?: string;
}
}
diff --git a/src/resources/auth-rules/v2/index.ts b/src/resources/auth-rules/v2/index.ts
index b9e37360..bd6bd09c 100644
--- a/src/resources/auth-rules/v2/index.ts
+++ b/src/resources/auth-rules/v2/index.ts
@@ -11,7 +11,6 @@ export {
V2,
type AuthRule,
type AuthRuleCondition,
- type AuthRuleVersion,
type BacktestStats,
type Conditional3DSActionParameters,
type ConditionalACHActionParameters,
@@ -30,7 +29,6 @@ export {
type VelocityLimitParams,
type VelocityLimitPeriod,
type V2ListResultsResponse,
- type V2ListVersionsResponse,
type V2RetrieveFeaturesResponse,
type V2RetrieveReportResponse,
type V2CreateParams,
diff --git a/src/resources/auth-rules/v2/v2.ts b/src/resources/auth-rules/v2/v2.ts
index b7f1b6b3..fac3d7ca 100644
--- a/src/resources/auth-rules/v2/v2.ts
+++ b/src/resources/auth-rules/v2/v2.ts
@@ -89,14 +89,6 @@ export class V2 extends APIResource {
});
}
- /**
- * Returns all versions of an auth rule, sorted by version number descending
- * (newest first).
- */
- listVersions(authRuleToken: string, options?: RequestOptions): APIPromise {
- return this._client.get(path`/v2/auth_rules/${authRuleToken}/versions`, options);
- }
-
/**
* Promotes the draft version of an Auth rule to the currently active version such
* that it is enforced in the respective stream.
@@ -366,37 +358,6 @@ export interface AuthRuleCondition {
value: ConditionalValue;
}
-export interface AuthRuleVersion {
- /**
- * Timestamp of when this version was created.
- */
- created: string;
-
- /**
- * Parameters for the Auth Rule
- */
- parameters:
- | ConditionalBlockParameters
- | VelocityLimitParams
- | MerchantLockParameters
- | Conditional3DSActionParameters
- | ConditionalAuthorizationActionParameters
- | ConditionalACHActionParameters
- | ConditionalTokenizationActionParameters
- | TypescriptCodeParameters;
-
- /**
- * The current state of this version.
- */
- state: 'ACTIVE' | 'SHADOW' | 'INACTIVE';
-
- /**
- * The version of the rule, this is incremented whenever the rule's parameters
- * change.
- */
- version: number;
-}
-
export interface BacktestStats {
/**
* The total number of historical transactions approved by this rule during the
@@ -2063,10 +2024,6 @@ export namespace V2ListResultsResponse {
}
}
-export interface V2ListVersionsResponse {
- data: Array;
-}
-
export interface V2RetrieveFeaturesResponse {
/**
* Timestamp at which the Features were evaluated
@@ -2152,285 +2109,6 @@ export namespace V2RetrieveReportResponse {
* Detailed statistics for the draft version of the rule.
*/
draft_version_statistics: V2API.ReportStats | null;
-
- /**
- * Statistics for each version of the rule that was evaluated during the reported
- * day.
- */
- versions: Array;
- }
-
- export namespace DailyStatistic {
- export interface Version {
- /**
- * A mapping of action types to the number of times that action was returned by
- * this version during the relevant period. Actions are the possible outcomes of a
- * rule evaluation, such as DECLINE, CHALLENGE, REQUIRE_TFA, etc. In case rule
- * didn't trigger any action, it's counted under NO_ACTION key.
- */
- action_counts: { [key: string]: number };
-
- /**
- * Example events and their outcomes for this version.
- */
- examples: Array;
-
- /**
- * The evaluation mode of this version during the reported period.
- */
- state: 'ACTIVE' | 'SHADOW' | 'INACTIVE';
-
- /**
- * The rule version number.
- */
- version: number;
- }
-
- export namespace Version {
- export interface Example {
- /**
- * The actions taken by this version for this event.
- */
- actions: Array<
- | Example.DeclineActionAuthorization
- | Example.ChallengeActionAuthorization
- | Example.ResultAuthentication3DSAction
- | Example.DeclineActionTokenization
- | Example.RequireTfaAction
- | Example.ApproveActionACH
- | Example.ReturnAction
- >;
-
- /**
- * The event token.
- */
- event_token: string;
-
- /**
- * The timestamp of the event.
- */
- timestamp: string;
- }
-
- export namespace Example {
- export interface DeclineActionAuthorization {
- /**
- * The detailed result code explaining the specific reason for the decline
- */
- code:
- | 'ACCOUNT_DAILY_SPEND_LIMIT_EXCEEDED'
- | 'ACCOUNT_DELINQUENT'
- | 'ACCOUNT_INACTIVE'
- | 'ACCOUNT_LIFETIME_SPEND_LIMIT_EXCEEDED'
- | 'ACCOUNT_MONTHLY_SPEND_LIMIT_EXCEEDED'
- | 'ACCOUNT_PAUSED'
- | 'ACCOUNT_UNDER_REVIEW'
- | 'ADDRESS_INCORRECT'
- | 'APPROVED'
- | 'AUTH_RULE_ALLOWED_COUNTRY'
- | 'AUTH_RULE_ALLOWED_MCC'
- | 'AUTH_RULE_BLOCKED_COUNTRY'
- | 'AUTH_RULE_BLOCKED_MCC'
- | 'AUTH_RULE'
- | 'CARD_CLOSED'
- | 'CARD_CRYPTOGRAM_VALIDATION_FAILURE'
- | 'CARD_EXPIRED'
- | 'CARD_EXPIRY_DATE_INCORRECT'
- | 'CARD_INVALID'
- | 'CARD_NOT_ACTIVATED'
- | 'CARD_PAUSED'
- | 'CARD_PIN_INCORRECT'
- | 'CARD_RESTRICTED'
- | 'CARD_SECURITY_CODE_INCORRECT'
- | 'CARD_SPEND_LIMIT_EXCEEDED'
- | 'CONTACT_CARD_ISSUER'
- | 'CUSTOMER_ASA_TIMEOUT'
- | 'CUSTOM_ASA_RESULT'
- | 'DECLINED'
- | 'DO_NOT_HONOR'
- | 'DRIVER_NUMBER_INVALID'
- | 'FORMAT_ERROR'
- | 'INSUFFICIENT_FUNDING_SOURCE_BALANCE'
- | 'INSUFFICIENT_FUNDS'
- | 'LITHIC_SYSTEM_ERROR'
- | 'LITHIC_SYSTEM_RATE_LIMIT'
- | 'MALFORMED_ASA_RESPONSE'
- | 'MERCHANT_INVALID'
- | 'MERCHANT_LOCKED_CARD_ATTEMPTED_ELSEWHERE'
- | 'MERCHANT_NOT_PERMITTED'
- | 'OVER_REVERSAL_ATTEMPTED'
- | 'PIN_BLOCKED'
- | 'PROGRAM_CARD_SPEND_LIMIT_EXCEEDED'
- | 'PROGRAM_SUSPENDED'
- | 'PROGRAM_USAGE_RESTRICTION'
- | 'REVERSAL_UNMATCHED'
- | 'SECURITY_VIOLATION'
- | 'SINGLE_USE_CARD_REATTEMPTED'
- | 'SUSPECTED_FRAUD'
- | 'TRANSACTION_INVALID'
- | 'TRANSACTION_NOT_PERMITTED_TO_ACQUIRER_OR_TERMINAL'
- | 'TRANSACTION_NOT_PERMITTED_TO_ISSUER_OR_CARDHOLDER'
- | 'TRANSACTION_PREVIOUSLY_COMPLETED'
- | 'UNAUTHORIZED_MERCHANT'
- | 'VEHICLE_NUMBER_INVALID'
- | 'CARDHOLDER_CHALLENGED'
- | 'CARDHOLDER_CHALLENGE_FAILED';
-
- type: 'DECLINE';
- }
-
- export interface ChallengeActionAuthorization {
- type: 'CHALLENGE';
- }
-
- export interface ResultAuthentication3DSAction {
- type: 'DECLINE' | 'CHALLENGE';
- }
-
- export interface DeclineActionTokenization {
- /**
- * Decline the tokenization request
- */
- type: 'DECLINE';
-
- /**
- * Reason code for declining the tokenization request
- */
- reason?:
- | 'ACCOUNT_SCORE_1'
- | 'DEVICE_SCORE_1'
- | 'ALL_WALLET_DECLINE_REASONS_PRESENT'
- | 'WALLET_RECOMMENDED_DECISION_RED'
- | 'CVC_MISMATCH'
- | 'CARD_EXPIRY_MONTH_MISMATCH'
- | 'CARD_EXPIRY_YEAR_MISMATCH'
- | 'CARD_INVALID_STATE'
- | 'CUSTOMER_RED_PATH'
- | 'INVALID_CUSTOMER_RESPONSE'
- | 'NETWORK_FAILURE'
- | 'GENERIC_DECLINE'
- | 'DIGITAL_CARD_ART_REQUIRED';
- }
-
- export interface RequireTfaAction {
- /**
- * Require two-factor authentication for the tokenization request
- */
- type: 'REQUIRE_TFA';
-
- /**
- * Reason code for requiring two-factor authentication
- */
- reason?:
- | 'WALLET_RECOMMENDED_TFA'
- | 'SUSPICIOUS_ACTIVITY'
- | 'DEVICE_RECENTLY_LOST'
- | 'TOO_MANY_RECENT_ATTEMPTS'
- | 'TOO_MANY_RECENT_TOKENS'
- | 'TOO_MANY_DIFFERENT_CARDHOLDERS'
- | 'OUTSIDE_HOME_TERRITORY'
- | 'HAS_SUSPENDED_TOKENS'
- | 'HIGH_RISK'
- | 'ACCOUNT_SCORE_LOW'
- | 'DEVICE_SCORE_LOW'
- | 'CARD_STATE_TFA'
- | 'HARDCODED_TFA'
- | 'CUSTOMER_RULE_TFA'
- | 'DEVICE_HOST_CARD_EMULATION';
- }
-
- export interface ApproveActionACH {
- /**
- * Approve the ACH transaction
- */
- type: 'APPROVE';
- }
-
- export interface ReturnAction {
- /**
- * NACHA return code to use when returning the transaction. Note that the list of
- * available return codes is subject to an allowlist configured at the program
- * level
- */
- code:
- | 'R01'
- | 'R02'
- | 'R03'
- | 'R04'
- | 'R05'
- | 'R06'
- | 'R07'
- | 'R08'
- | 'R09'
- | 'R10'
- | 'R11'
- | 'R12'
- | 'R13'
- | 'R14'
- | 'R15'
- | 'R16'
- | 'R17'
- | 'R18'
- | 'R19'
- | 'R20'
- | 'R21'
- | 'R22'
- | 'R23'
- | 'R24'
- | 'R25'
- | 'R26'
- | 'R27'
- | 'R28'
- | 'R29'
- | 'R30'
- | 'R31'
- | 'R32'
- | 'R33'
- | 'R34'
- | 'R35'
- | 'R36'
- | 'R37'
- | 'R38'
- | 'R39'
- | 'R40'
- | 'R41'
- | 'R42'
- | 'R43'
- | 'R44'
- | 'R45'
- | 'R46'
- | 'R47'
- | 'R50'
- | 'R51'
- | 'R52'
- | 'R53'
- | 'R61'
- | 'R62'
- | 'R67'
- | 'R68'
- | 'R69'
- | 'R70'
- | 'R71'
- | 'R72'
- | 'R73'
- | 'R74'
- | 'R75'
- | 'R76'
- | 'R77'
- | 'R80'
- | 'R81'
- | 'R82'
- | 'R83'
- | 'R84'
- | 'R85';
-
- /**
- * Return the ACH transaction
- */
- type: 'RETURN';
- }
- }
- }
}
}
@@ -2797,7 +2475,6 @@ export declare namespace V2 {
export {
type AuthRule as AuthRule,
type AuthRuleCondition as AuthRuleCondition,
- type AuthRuleVersion as AuthRuleVersion,
type BacktestStats as BacktestStats,
type Conditional3DSActionParameters as Conditional3DSActionParameters,
type ConditionalACHActionParameters as ConditionalACHActionParameters,
@@ -2816,7 +2493,6 @@ export declare namespace V2 {
type VelocityLimitParams as VelocityLimitParams,
type VelocityLimitPeriod as VelocityLimitPeriod,
type V2ListResultsResponse as V2ListResultsResponse,
- type V2ListVersionsResponse as V2ListVersionsResponse,
type V2RetrieveFeaturesResponse as V2RetrieveFeaturesResponse,
type V2RetrieveReportResponse as V2RetrieveReportResponse,
type AuthRulesCursorPage as AuthRulesCursorPage,
diff --git a/src/resources/disputes.ts b/src/resources/disputes.ts
index f07d9bdf..97c241a8 100644
--- a/src/resources/disputes.ts
+++ b/src/resources/disputes.ts
@@ -10,7 +10,7 @@ import { maybeMultipartFormRequestOptions } from '../internal/uploads';
export class Disputes extends APIResource {
/**
- * Request a chargeback.
+ * Initiate a dispute.
*
* @example
* ```ts
@@ -27,7 +27,7 @@ export class Disputes extends APIResource {
}
/**
- * Get chargeback request.
+ * Get dispute.
*
* @example
* ```ts
@@ -41,7 +41,7 @@ export class Disputes extends APIResource {
}
/**
- * Update chargeback request. Can only be modified if status is `NEW`.
+ * Update dispute. Can only be modified if status is `NEW`.
*
* @example
* ```ts
@@ -55,7 +55,7 @@ export class Disputes extends APIResource {
}
/**
- * List chargeback requests.
+ * List disputes.
*
* @example
* ```ts
@@ -73,7 +73,7 @@ export class Disputes extends APIResource {
}
/**
- * Withdraw chargeback request.
+ * Withdraw dispute.
*
* @example
* ```ts
@@ -87,8 +87,8 @@ export class Disputes extends APIResource {
}
/**
- * Soft delete evidence for a chargeback request. Evidence will not be reviewed or
- * submitted by Lithic after it is withdrawn.
+ * Soft delete evidence for a dispute. Evidence will not be reviewed or submitted
+ * by Lithic after it is withdrawn.
*
* @example
* ```ts
@@ -111,8 +111,8 @@ export class Disputes extends APIResource {
}
/**
- * Use this endpoint to upload evidence for a chargeback request. It will return a
- * URL to upload your documents to. The URL will expire in 30 minutes.
+ * Use this endpoint to upload evidences for the dispute. It will return a URL to
+ * upload your documents to. The URL will expire in 30 minutes.
*
* Uploaded documents must either be a `jpg`, `png` or `pdf` file, and each must be
* less than 5 GiB.
@@ -134,7 +134,7 @@ export class Disputes extends APIResource {
}
/**
- * List evidence for a chargeback request.
+ * List evidence metadata for a dispute.
*
* @example
* ```ts
@@ -159,7 +159,7 @@ export class Disputes extends APIResource {
}
/**
- * Get evidence for a chargeback request.
+ * Get a dispute's evidence metadata.
*
* @example
* ```ts
@@ -437,12 +437,12 @@ export interface DisputeEvidence {
export interface DisputeCreateParams {
/**
- * Amount for chargeback
+ * Amount to dispute
*/
amount: number;
/**
- * Reason for chargeback
+ * Reason for dispute
*/
reason:
| 'ATM_CASH_MISDISPENSE'
@@ -461,39 +461,39 @@ export interface DisputeCreateParams {
| 'REFUND_NOT_PROCESSED';
/**
- * Transaction for chargeback
+ * Transaction to dispute
*/
transaction_token: string;
/**
- * Date the customer filed the chargeback request
+ * Date the customer filed the dispute
*/
customer_filed_date?: string;
/**
- * Customer description
+ * Customer description of dispute
*/
customer_note?: string;
}
export interface DisputeUpdateParams {
/**
- * Amount for chargeback
+ * Amount to dispute
*/
amount?: number;
/**
- * Date the customer filed the chargeback request
+ * Date the customer filed the dispute
*/
customer_filed_date?: string;
/**
- * Customer description
+ * Customer description of dispute
*/
customer_note?: string;
/**
- * Reason for chargeback
+ * Reason for dispute
*/
reason?:
| 'ATM_CASH_MISDISPENSE'
@@ -526,7 +526,7 @@ export interface DisputeListParams extends CursorPageParams {
end?: string;
/**
- * Filter by status.
+ * List disputes of a specific status.
*/
status?:
| 'ARBITRATION'
diff --git a/src/resources/events/events.ts b/src/resources/events/events.ts
index 5185de75..9d9f3f6b 100644
--- a/src/resources/events/events.ts
+++ b/src/resources/events/events.ts
@@ -121,9 +121,6 @@ export interface Event {
* - card.renewed: Occurs when a card is renewed.
* - card.shipped: Occurs when a card is shipped.
* - card.updated: Occurs when a card is updated.
- * - digital_wallet.tokenization_approval_request: Occurs when a tokenization
- * approval request is made. This event will be deprecated in the future. We
- * recommend using `tokenization.approval_request` instead.
* - digital_wallet.tokenization_result: Occurs when a tokenization request
* succeeded or failed.
*
@@ -215,7 +212,6 @@ export interface Event {
| 'card.renewed'
| 'card.shipped'
| 'card.updated'
- | 'digital_wallet.tokenization_approval_request'
| 'digital_wallet.tokenization_result'
| 'digital_wallet.tokenization_two_factor_authentication_code'
| 'digital_wallet.tokenization_two_factor_authentication_code_sent'
@@ -294,7 +290,6 @@ export interface EventSubscription {
| 'card.renewed'
| 'card.shipped'
| 'card.updated'
- | 'digital_wallet.tokenization_approval_request'
| 'digital_wallet.tokenization_result'
| 'digital_wallet.tokenization_two_factor_authentication_code'
| 'digital_wallet.tokenization_two_factor_authentication_code_sent'
@@ -411,7 +406,6 @@ export interface EventListParams extends CursorPageParams {
| 'card.renewed'
| 'card.shipped'
| 'card.updated'
- | 'digital_wallet.tokenization_approval_request'
| 'digital_wallet.tokenization_result'
| 'digital_wallet.tokenization_two_factor_authentication_code'
| 'digital_wallet.tokenization_two_factor_authentication_code_sent'
diff --git a/src/resources/events/subscriptions.ts b/src/resources/events/subscriptions.ts
index 34599776..2223331e 100644
--- a/src/resources/events/subscriptions.ts
+++ b/src/resources/events/subscriptions.ts
@@ -184,7 +184,6 @@ export interface SubscriptionCreateParams {
| 'card.renewed'
| 'card.shipped'
| 'card.updated'
- | 'digital_wallet.tokenization_approval_request'
| 'digital_wallet.tokenization_result'
| 'digital_wallet.tokenization_two_factor_authentication_code'
| 'digital_wallet.tokenization_two_factor_authentication_code_sent'
@@ -261,7 +260,6 @@ export interface SubscriptionUpdateParams {
| 'card.renewed'
| 'card.shipped'
| 'card.updated'
- | 'digital_wallet.tokenization_approval_request'
| 'digital_wallet.tokenization_result'
| 'digital_wallet.tokenization_two_factor_authentication_code'
| 'digital_wallet.tokenization_two_factor_authentication_code_sent'
@@ -368,7 +366,6 @@ export interface SubscriptionSendSimulatedExampleParams {
| 'card.renewed'
| 'card.shipped'
| 'card.updated'
- | 'digital_wallet.tokenization_approval_request'
| 'digital_wallet.tokenization_result'
| 'digital_wallet.tokenization_two_factor_authentication_code'
| 'digital_wallet.tokenization_two_factor_authentication_code_sent'
diff --git a/src/resources/financial-accounts/interest-tier-schedule.ts b/src/resources/financial-accounts/interest-tier-schedule.ts
index 5e6ed433..7d5a4b21 100644
--- a/src/resources/financial-accounts/interest-tier-schedule.ts
+++ b/src/resources/financial-accounts/interest-tier-schedule.ts
@@ -194,11 +194,6 @@ export interface InterestTierSchedule {
*/
effective_date: string;
- /**
- * Custom rates per category for penalties
- */
- penalty_rates?: unknown;
-
/**
* Name of a tier contained in the credit product. Mutually exclusive with
* tier_rates
@@ -222,11 +217,6 @@ export interface InterestTierScheduleCreateParams {
*/
effective_date: string;
- /**
- * Custom rates per category for penalties
- */
- penalty_rates?: unknown;
-
/**
* Name of a tier contained in the credit product. Mutually exclusive with
* tier_rates
@@ -252,11 +242,6 @@ export interface InterestTierScheduleUpdateParams {
*/
financial_account_token: string;
- /**
- * Body param: Custom rates per category for penalties
- */
- penalty_rates?: unknown;
-
/**
* Body param: Name of a tier contained in the credit product. Mutually exclusive
* with tier_rates
diff --git a/src/resources/financial-accounts/statements/line-items.ts b/src/resources/financial-accounts/statements/line-items.ts
index 97c382bd..89c9c6c7 100644
--- a/src/resources/financial-accounts/statements/line-items.ts
+++ b/src/resources/financial-accounts/statements/line-items.ts
@@ -59,14 +59,8 @@ export namespace StatementLineItems {
*/
amount: number;
- /**
- * Note: Inbound wire transfers are coming soon (availability varies by partner
- * bank). The WIRE category is a preview. To learn more, contact your customer
- * success manager.
- */
category:
| 'ACH'
- | 'WIRE'
| 'BALANCE_OR_FUNDING'
| 'FEE'
| 'REWARD'
diff --git a/src/resources/index.ts b/src/resources/index.ts
index 929fe194..1222ff16 100644
--- a/src/resources/index.ts
+++ b/src/resources/index.ts
@@ -298,7 +298,6 @@ export {
type AccountHolderVerificationWebhookEvent,
type AccountHolderDocumentUpdatedWebhookEvent,
type CardAuthorizationApprovalRequestWebhookEvent,
- type TokenizationDecisioningRequestWebhookEvent,
type AuthRulesBacktestReportCreatedWebhookEvent,
type BalanceUpdatedWebhookEvent,
type BookTransferTransactionCreatedWebhookEvent,
diff --git a/src/resources/payments.ts b/src/resources/payments.ts
index 28242623..20f4b5a7 100644
--- a/src/resources/payments.ts
+++ b/src/resources/payments.ts
@@ -199,7 +199,6 @@ export interface Payment {
*/
category:
| 'ACH'
- | 'WIRE'
| 'BALANCE_OR_FUNDING'
| 'FEE'
| 'REWARD'
@@ -330,10 +329,6 @@ export interface Payment {
export namespace Payment {
/**
- * Note: Inbound wire transfers are coming soon (availability varies by partner
- * bank). Wire-related fields below are a preview. To learn more, contact your
- * customer success manager.
- *
* Payment Event
*/
export interface Event {
@@ -360,14 +355,8 @@ export namespace Payment {
result: 'APPROVED' | 'DECLINED';
/**
- * Note: Inbound wire transfers are coming soon (availability varies by partner
- * bank). Wire-related event types below are a preview. To learn more, contact your
- * customer success manager.
- *
* Event types:
*
- * ACH events:
- *
* - `ACH_ORIGINATION_INITIATED` - ACH origination received and pending
* approval/release from an ACH hold.
* - `ACH_ORIGINATION_REVIEWED` - ACH origination has completed the review process.
@@ -392,26 +381,6 @@ export namespace Payment {
* Financial Institution.
* - `ACH_RETURN_REJECTED` - ACH return was rejected by the Receiving Depository
* Financial Institution.
- *
- * Wire transfer events:
- *
- * - `WIRE_TRANSFER_INBOUND_RECEIVED` - Inbound wire transfer received from the
- * Federal Reserve and pending release to available balance.
- * - `WIRE_TRANSFER_INBOUND_SETTLED` - Inbound wire transfer funds released from
- * pending to available balance.
- * - `WIRE_TRANSFER_INBOUND_BLOCKED` - Inbound wire transfer blocked and funds
- * frozen for regulatory review.
- *
- * Wire return events:
- *
- * - `WIRE_RETURN_OUTBOUND_INITIATED` - Outbound wire return initiated to return
- * funds from an inbound wire transfer.
- * - `WIRE_RETURN_OUTBOUND_SENT` - Outbound wire return sent to the Federal Reserve
- * and pending acceptance.
- * - `WIRE_RETURN_OUTBOUND_SETTLED` - Outbound wire return accepted by the Federal
- * Reserve and funds returned to sender.
- * - `WIRE_RETURN_OUTBOUND_REJECTED` - Outbound wire return rejected by the Federal
- * Reserve.
*/
type:
| 'ACH_ORIGINATION_CANCELLED'
@@ -428,14 +397,7 @@ export namespace Payment {
| 'ACH_RETURN_INITIATED'
| 'ACH_RETURN_PROCESSED'
| 'ACH_RETURN_REJECTED'
- | 'ACH_RETURN_SETTLED'
- | 'WIRE_TRANSFER_INBOUND_RECEIVED'
- | 'WIRE_TRANSFER_INBOUND_SETTLED'
- | 'WIRE_TRANSFER_INBOUND_BLOCKED'
- | 'WIRE_RETURN_OUTBOUND_INITIATED'
- | 'WIRE_RETURN_OUTBOUND_SENT'
- | 'WIRE_RETURN_OUTBOUND_SETTLED'
- | 'WIRE_RETURN_OUTBOUND_REJECTED';
+ | 'ACH_RETURN_SETTLED';
/**
* More detailed reasons for the event
@@ -451,9 +413,7 @@ export namespace Payment {
>;
/**
- * Payment event external ID. For ACH transactions, this is the ACH trace number.
- * For inbound wire transfers, this is the IMAD (Input Message Accountability
- * Data).
+ * Payment event external ID, for example, ACH trace number.
*/
external_id?: string | null;
}
@@ -520,6 +480,11 @@ export namespace Payment {
* for tracking the message through the Fedwire system
*/
message_id?: string | null;
+
+ /**
+ * Payment details or invoice reference
+ */
+ remittance_information?: string | null;
}
/**
diff --git a/src/resources/webhooks.ts b/src/resources/webhooks.ts
index e92629db..842485e7 100644
--- a/src/resources/webhooks.ts
+++ b/src/resources/webhooks.ts
@@ -1237,67 +1237,6 @@ export namespace CardAuthorizationApprovalRequestWebhookEvent {
}
}
-/**
- * A webhook for tokenization decisioning sent to the customer's responder endpoint
- */
-export interface TokenizationDecisioningRequestWebhookEvent {
- /**
- * Unique identifier for the user tokenizing a card
- */
- account_token: string;
-
- /**
- * Unique identifier for the card being tokenized
- */
- card_token: string;
-
- /**
- * Indicate when the request was received from Mastercard or Visa
- */
- created: string;
-
- /**
- * Contains the metadata for the digital wallet being tokenized.
- */
- digital_wallet_token_metadata: TokenizationsAPI.TokenMetadata;
-
- /**
- * The name of this event
- */
- event_type: 'digital_wallet.tokenization_approval_request';
-
- /**
- * Whether Lithic decisioned on the token, and if so, what the decision was.
- * APPROVED/VERIFICATION_REQUIRED/DENIED.
- */
- issuer_decision: 'APPROVED' | 'DENIED' | 'VERIFICATION_REQUIRED';
-
- /**
- * The channel through which the tokenization was made.
- */
- tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT';
-
- /**
- * Unique identifier for the digital wallet token attempt
- */
- tokenization_token: string;
-
- wallet_decisioning_info: TokenizationsAPI.WalletDecisioningInfo;
-
- device?: TokenizationsAPI.Device;
-
- /**
- * The source of the tokenization.
- */
- tokenization_source?:
- | 'ACCOUNT_ON_FILE'
- | 'CONTACTLESS_TAP'
- | 'MANUAL_PROVISION'
- | 'PUSH_PROVISION'
- | 'TOKEN'
- | 'UNKNOWN';
-}
-
export interface AuthRulesBacktestReportCreatedWebhookEvent extends BacktestsAPI.BacktestResults {
/**
* The type of event that occurred.
@@ -1490,6 +1429,14 @@ export interface CardTransactionEnhancedDataUpdatedWebhookEvent
event_type: 'card_transaction.enhanced_data.updated';
}
+/**
+ * Payload for digital wallet tokenization approval requests. Used for both the
+ * decisioning responder request (sent to the customer's endpoint for a real-time
+ * decision) and the subsequent webhook event (sent after the decision is made).
+ * Fields like customer_tokenization_decision, tokenization_decline_reasons,
+ * tokenization_tfa_reasons, and rule_results are only populated in the webhook
+ * event, not in the initial decisioning request.
+ */
export interface DigitalWalletTokenizationApprovalRequestWebhookEvent {
/**
* Unique identifier for the user tokenizing a card
@@ -1506,11 +1453,6 @@ export interface DigitalWalletTokenizationApprovalRequestWebhookEvent {
*/
created: string;
- /**
- * Contains the metadata for the customer tokenization decision.
- */
- customer_tokenization_decision: DigitalWalletTokenizationApprovalRequestWebhookEvent.CustomerTokenizationDecision | null;
-
/**
* Contains the metadata for the digital wallet being tokenized.
*/
@@ -1539,15 +1481,22 @@ export interface DigitalWalletTokenizationApprovalRequestWebhookEvent {
wallet_decisioning_info: TokenizationsAPI.WalletDecisioningInfo;
+ /**
+ * Contains the metadata for the customer tokenization decision.
+ */
+ customer_tokenization_decision?: DigitalWalletTokenizationApprovalRequestWebhookEvent.CustomerTokenizationDecision | null;
+
device?: TokenizationsAPI.Device;
/**
- * Results from rules that were evaluated for this tokenization
+ * Results from rules that were evaluated for this tokenization. Only populated in
+ * webhook events, not in the initial decisioning request
*/
rule_results?: Array;
/**
- * List of reasons why the tokenization was declined
+ * List of reasons why the tokenization was declined. Only populated in webhook
+ * events, not in the initial decisioning request
*/
tokenization_decline_reasons?: Array;
@@ -1563,7 +1512,8 @@ export interface DigitalWalletTokenizationApprovalRequestWebhookEvent {
| 'UNKNOWN';
/**
- * List of reasons why two-factor authentication was required
+ * List of reasons why two-factor authentication was required. Only populated in
+ * webhook events, not in the initial decisioning request
*/
tokenization_tfa_reasons?: Array;
}
@@ -2395,7 +2345,6 @@ export type ParsedWebhookEvent =
| AccountHolderVerificationWebhookEvent
| AccountHolderDocumentUpdatedWebhookEvent
| CardAuthorizationApprovalRequestWebhookEvent
- | TokenizationDecisioningRequestWebhookEvent
| AuthRulesBacktestReportCreatedWebhookEvent
| BalanceUpdatedWebhookEvent
| BookTransferTransactionCreatedWebhookEvent
@@ -2874,7 +2823,6 @@ export declare namespace Webhooks {
type AccountHolderVerificationWebhookEvent as AccountHolderVerificationWebhookEvent,
type AccountHolderDocumentUpdatedWebhookEvent as AccountHolderDocumentUpdatedWebhookEvent,
type CardAuthorizationApprovalRequestWebhookEvent as CardAuthorizationApprovalRequestWebhookEvent,
- type TokenizationDecisioningRequestWebhookEvent as TokenizationDecisioningRequestWebhookEvent,
type AuthRulesBacktestReportCreatedWebhookEvent as AuthRulesBacktestReportCreatedWebhookEvent,
type BalanceUpdatedWebhookEvent as BalanceUpdatedWebhookEvent,
type BookTransferTransactionCreatedWebhookEvent as BookTransferTransactionCreatedWebhookEvent,
diff --git a/tests/api-resources/auth-rules/v2/v2.test.ts b/tests/api-resources/auth-rules/v2/v2.test.ts
index 1d5700a4..488f6402 100644
--- a/tests/api-resources/auth-rules/v2/v2.test.ts
+++ b/tests/api-resources/auth-rules/v2/v2.test.ts
@@ -154,17 +154,6 @@ describe('resource v2', () => {
).rejects.toThrow(Lithic.NotFoundError);
});
- test('listVersions', async () => {
- const responsePromise = client.authRules.v2.listVersions('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
- const rawResponse = await responsePromise.asResponse();
- expect(rawResponse).toBeInstanceOf(Response);
- const response = await responsePromise;
- expect(response).not.toBeInstanceOf(Response);
- const dataAndResponse = await responsePromise.withResponse();
- expect(dataAndResponse.data).toBe(response);
- expect(dataAndResponse.response).toBe(rawResponse);
- });
-
test('promote', async () => {
const responsePromise = client.authRules.v2.promote('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
const rawResponse = await responsePromise.asResponse();
diff --git a/tests/api-resources/financial-accounts/interest-tier-schedule.test.ts b/tests/api-resources/financial-accounts/interest-tier-schedule.test.ts
index 2f99c01f..5312bb21 100644
--- a/tests/api-resources/financial-accounts/interest-tier-schedule.test.ts
+++ b/tests/api-resources/financial-accounts/interest-tier-schedule.test.ts
@@ -28,7 +28,6 @@ describe('resource interestTierSchedule', () => {
{
credit_product_token: 'credit_product_token',
effective_date: '2019-12-27',
- penalty_rates: {},
tier_name: 'tier_name',
tier_rates: {},
},
@@ -70,7 +69,6 @@ describe('resource interestTierSchedule', () => {
test('update: required and optional params', async () => {
const response = await client.financialAccounts.interestTierSchedule.update('2019-12-27', {
financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
- penalty_rates: {},
tier_name: 'tier_name',
tier_rates: {},
});
From 2ef83d690a3b34df2faa23cecf92d4869c42c056 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 16 Mar 2026 08:32:36 +0000
Subject: [PATCH 020/164] feat(api): add mcp-server package, CI/CD workflows,
build scripts, update README
---
.dockerignore | 59 +
.github/workflows/ci.yml | 20 +-
.github/workflows/publish-npm.yml | 20 +-
.gitignore | 3 +-
.prettierignore | 2 +-
.stats.yml | 8 +-
README.md | 9 +
api.md | 3 +
eslint.config.mjs | 2 +-
packages/mcp-server/Dockerfile | 76 +
packages/mcp-server/README.md | 101 +
packages/mcp-server/build | 56 +
packages/mcp-server/jest.config.ts | 17 +
packages/mcp-server/manifest.json | 50 +
packages/mcp-server/package.json | 95 +
.../mcp-server/scripts/copy-bundle-files.cjs | 36 +
.../scripts/postprocess-dist-package-json.cjs | 12 +
packages/mcp-server/src/auth.ts | 27 +
packages/mcp-server/src/code-tool-paths.cts | 5 +
packages/mcp-server/src/code-tool-types.ts | 17 +
packages/mcp-server/src/code-tool-worker.ts | 462 ++
packages/mcp-server/src/code-tool.ts | 399 ++
packages/mcp-server/src/docs-search-tool.ts | 100 +
packages/mcp-server/src/http.ts | 173 +
packages/mcp-server/src/index.ts | 67 +
packages/mcp-server/src/instructions.ts | 60 +
packages/mcp-server/src/logger.ts | 28 +
packages/mcp-server/src/methods.ts | 1234 +++++
packages/mcp-server/src/options.ts | 161 +
packages/mcp-server/src/server.ts | 192 +
packages/mcp-server/src/stdio.ts | 14 +
packages/mcp-server/src/types.ts | 124 +
packages/mcp-server/src/util.ts | 25 +
packages/mcp-server/tests/options.test.ts | 32 +
packages/mcp-server/tsc-multi.json | 7 +
packages/mcp-server/tsconfig.build.json | 18 +
packages/mcp-server/tsconfig.dist-src.json | 11 +
packages/mcp-server/tsconfig.json | 36 +
packages/mcp-server/yarn.lock | 4169 +++++++++++++++++
release-please-config.json | 16 +-
scripts/build | 6 +
scripts/build-all | 5 +
scripts/publish-packages.ts | 102 +
scripts/utils/make-dist-package-json.cjs | 8 +
src/resources/account-activity.ts | 3 +
src/resources/auth-rules/auth-rules.ts | 4 +
src/resources/auth-rules/index.ts | 2 +
src/resources/auth-rules/v2/backtests.ts | 13 +-
src/resources/auth-rules/v2/index.ts | 2 +
src/resources/auth-rules/v2/v2.ts | 324 ++
src/resources/disputes.ts | 42 +-
.../interest-tier-schedule.ts | 15 +
.../statements/line-items.ts | 6 +
src/resources/payments.ts | 49 +-
tests/api-resources/auth-rules/v2/v2.test.ts | 11 +
.../interest-tier-schedule.test.ts | 2 +
56 files changed, 8491 insertions(+), 49 deletions(-)
create mode 100644 .dockerignore
create mode 100644 packages/mcp-server/Dockerfile
create mode 100644 packages/mcp-server/README.md
create mode 100644 packages/mcp-server/build
create mode 100644 packages/mcp-server/jest.config.ts
create mode 100644 packages/mcp-server/manifest.json
create mode 100644 packages/mcp-server/package.json
create mode 100644 packages/mcp-server/scripts/copy-bundle-files.cjs
create mode 100644 packages/mcp-server/scripts/postprocess-dist-package-json.cjs
create mode 100644 packages/mcp-server/src/auth.ts
create mode 100644 packages/mcp-server/src/code-tool-paths.cts
create mode 100644 packages/mcp-server/src/code-tool-types.ts
create mode 100644 packages/mcp-server/src/code-tool-worker.ts
create mode 100644 packages/mcp-server/src/code-tool.ts
create mode 100644 packages/mcp-server/src/docs-search-tool.ts
create mode 100644 packages/mcp-server/src/http.ts
create mode 100644 packages/mcp-server/src/index.ts
create mode 100644 packages/mcp-server/src/instructions.ts
create mode 100644 packages/mcp-server/src/logger.ts
create mode 100644 packages/mcp-server/src/methods.ts
create mode 100644 packages/mcp-server/src/options.ts
create mode 100644 packages/mcp-server/src/server.ts
create mode 100644 packages/mcp-server/src/stdio.ts
create mode 100644 packages/mcp-server/src/types.ts
create mode 100644 packages/mcp-server/src/util.ts
create mode 100644 packages/mcp-server/tests/options.test.ts
create mode 100644 packages/mcp-server/tsc-multi.json
create mode 100644 packages/mcp-server/tsconfig.build.json
create mode 100644 packages/mcp-server/tsconfig.dist-src.json
create mode 100644 packages/mcp-server/tsconfig.json
create mode 100644 packages/mcp-server/yarn.lock
create mode 100755 scripts/build-all
create mode 100644 scripts/publish-packages.ts
diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 00000000..12ff1e64
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,59 @@
+# Dependencies
+node_modules/
+**/node_modules/
+
+# Build outputs
+dist/
+**/dist/
+
+# Git
+.git/
+.gitignore
+
+# CI/CD
+.github/
+.gitlab-ci.yml
+.travis.yml
+
+# IDE
+.vscode/
+.idea/
+*.swp
+*.swo
+*~
+
+# OS
+.DS_Store
+Thumbs.db
+
+# Testing
+test/
+tests/
+__tests__/
+*.test.js
+*.spec.js
+coverage/
+.nyc_output/
+
+# Logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# Environment
+.env
+.env.*
+
+# Temporary files
+*.tmp
+*.temp
+.cache/
+
+# Examples and scripts
+examples/
+bin/
+
+# Other packages (we only need mcp-server)
+packages/*/
+!packages/mcp-server/
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 3620ece0..4635677b 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -24,7 +24,7 @@ jobs:
- name: Set up Node
uses: actions/setup-node@v4
with:
- node-version: '20'
+ node-version: '22'
- name: Bootstrap
run: ./scripts/bootstrap
@@ -46,7 +46,7 @@ jobs:
- name: Set up Node
uses: actions/setup-node@v4
with:
- node-version: '20'
+ node-version: '22'
- name: Bootstrap
run: ./scripts/bootstrap
@@ -72,6 +72,17 @@ jobs:
AUTH: ${{ steps.github-oidc.outputs.github_token }}
SHA: ${{ github.sha }}
run: ./scripts/utils/upload-artifact.sh
+
+ - name: Upload MCP Server tarball
+ if: |-
+ github.repository == 'stainless-sdks/lithic-typescript' &&
+ !startsWith(github.ref, 'refs/heads/stl/')
+ env:
+ URL: https://pkg.stainless.com/s?subpackage=mcp-server
+ AUTH: ${{ steps.github-oidc.outputs.github_token }}
+ SHA: ${{ github.sha }}
+ BASE_PATH: packages/mcp-server
+ run: ./scripts/utils/upload-artifact.sh
test:
timeout-minutes: 10
name: test
@@ -83,11 +94,14 @@ jobs:
- name: Set up Node
uses: actions/setup-node@v4
with:
- node-version: '20'
+ node-version: '22'
- name: Bootstrap
run: ./scripts/bootstrap
+ - name: Build
+ run: ./scripts/build
+
- name: Run tests
run: ./scripts/test
examples:
diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml
index af640da0..0cb165d0 100644
--- a/.github/workflows/publish-npm.yml
+++ b/.github/workflows/publish-npm.yml
@@ -4,6 +4,10 @@
name: Publish NPM
on:
workflow_dispatch:
+ inputs:
+ path:
+ description: The path to run the release in, e.g. '.' or 'packages/mcp-server'
+ required: true
release:
types: [published]
@@ -12,6 +16,8 @@ jobs:
publish:
name: publish
runs-on: ubuntu-latest
+ permissions:
+ contents: write
steps:
- uses: actions/checkout@v6
@@ -27,6 +33,18 @@ jobs:
- name: Publish to NPM
run: |
- bash ./bin/publish-npm
+ if [ -n "${{ github.event.inputs.path }}" ]; then
+ PATHS_RELEASED='[\"${{ github.event.inputs.path }}\"]'
+ else
+ PATHS_RELEASED='[\".\", \"packages/mcp-server\"]'
+ fi
+ yarn tsn scripts/publish-packages.ts "{ \"paths_released\": \"$PATHS_RELEASED\" }"
env:
NPM_TOKEN: ${{ secrets.LITHIC_NPM_TOKEN || secrets.NPM_TOKEN }}
+
+ - name: Upload MCP Server DXT GitHub release asset
+ run: |
+ gh release upload ${{ github.event.release.tag_name }} \
+ packages/mcp-server/lithic_api.mcpb
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.gitignore b/.gitignore
index 2412bb77..d62bea50 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,4 +8,5 @@ dist-deno
/*.tgz
.idea/
.eslintcache
-
+dist-bundle
+*.mcpb
diff --git a/.prettierignore b/.prettierignore
index 3548c5af..7cc13dd1 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -4,4 +4,4 @@ CHANGELOG.md
/deno
# don't format tsc output, will break source maps
-/dist
+dist
diff --git a/.stats.yml b/.stats.yml
index abffc1e7..c1a32b6b 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
-configured_endpoints: 189
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-c37843d1525e87f47a292bf11a6fdcc277157556da21c923cc1b4a4473147ef0.yml
-openapi_spec_hash: 29a8c4637c8a00339aa0095a929a6096
-config_hash: 8799cfd589579f105ef8696a6d664c71
+configured_endpoints: 190
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-e88a4837037207e9591d48d534bd61acca57ca6e7c59ec0d4fdcf6e05288cc6d.yml
+openapi_spec_hash: fd8bbc173d1b6dafd117fb1a3a3d446c
+config_hash: f227b67dc32a8917717490e63f855d42
diff --git a/README.md b/README.md
index 92adf748..9edf5372 100644
--- a/README.md
+++ b/README.md
@@ -6,6 +6,15 @@ This library provides convenient access to the Lithic REST API from server-side
The REST API documentation can be found on [docs.lithic.com](https://docs.lithic.com). The full API of this library can be found in [api.md](api.md).
+## MCP Server
+
+Use the Lithic MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.
+
+[](https://cursor.com/en-US/install-mcp?name=lithic-mcp&config=eyJuYW1lIjoibGl0aGljLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2xpdGhpYy5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LWxpdGhpYy1hcGkta2V5IjoiTXkgTGl0aGljIEFQSSBLZXkifX0)
+[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22lithic-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Flithic.stlmcp.com%22%2C%22headers%22%3A%7B%22x-lithic-api-key%22%3A%22My%20Lithic%20API%20Key%22%7D%7D)
+
+> Note: You may need to set environment variables in your MCP client.
+
## Installation
```sh
diff --git a/api.md b/api.md
index f962999e..6b2fb57d 100644
--- a/api.md
+++ b/api.md
@@ -84,6 +84,7 @@ Types:
- AuthRule
- AuthRuleCondition
+- AuthRuleVersion
- BacktestStats
- Conditional3DSActionParameters
- ConditionalACHActionParameters
@@ -102,6 +103,7 @@ Types:
- VelocityLimitParams
- VelocityLimitPeriod
- V2ListResultsResponse
+- V2ListVersionsResponse
- V2RetrieveFeaturesResponse
- V2RetrieveReportResponse
@@ -114,6 +116,7 @@ Methods:
- client.authRules.v2.delete(authRuleToken) -> void
- client.authRules.v2.draft(authRuleToken, { ...params }) -> AuthRule
- client.authRules.v2.listResults({ ...params }) -> V2ListResultsResponsesCursorPage
+- client.authRules.v2.listVersions(authRuleToken) -> V2ListVersionsResponse
- client.authRules.v2.promote(authRuleToken) -> AuthRule
- client.authRules.v2.retrieveFeatures(authRuleToken, { ...params }) -> V2RetrieveFeaturesResponse
- client.authRules.v2.retrieveReport(authRuleToken, { ...params }) -> V2RetrieveReportResponse
diff --git a/eslint.config.mjs b/eslint.config.mjs
index a0232c01..0b625a58 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -34,7 +34,7 @@ export default tseslint.config(
},
},
{
- files: ['tests/**', 'examples/**'],
+ files: ['tests/**', 'examples/**', 'packages/**'],
rules: {
'no-restricted-imports': 'off',
},
diff --git a/packages/mcp-server/Dockerfile b/packages/mcp-server/Dockerfile
new file mode 100644
index 00000000..9529570b
--- /dev/null
+++ b/packages/mcp-server/Dockerfile
@@ -0,0 +1,76 @@
+# Dockerfile for Lithic MCP Server
+#
+# This Dockerfile builds a Docker image for the MCP Server.
+#
+# To build the image locally:
+# docker build -f packages/mcp-server/Dockerfile -t lithic-mcp:local .
+#
+# To run the image:
+# docker run -i lithic-mcp:local [OPTIONS]
+#
+# Common options:
+# --tool= Include specific tools
+# --resource= Include tools for specific resources
+# --operation=read|write Filter by operation type
+# --client= Set client compatibility (e.g., claude, cursor)
+# --transport= Set transport type (stdio or http)
+#
+# For a full list of options:
+# docker run -i lithic-mcp:local --help
+#
+# Note: The MCP server uses stdio transport by default. Docker's -i flag
+# enables interactive mode, allowing the container to communicate over stdin/stdout.
+
+# Build stage
+FROM node:24-alpine AS builder
+
+# Install bash for build script
+RUN apk add --no-cache bash openssl
+
+# Set working directory
+WORKDIR /build
+
+# Copy entire repository
+COPY . .
+
+# Install all dependencies and build everything
+RUN yarn install --frozen-lockfile && \
+ yarn build
+
+FROM denoland/deno:alpine-2.7.1
+
+# Install node and npm
+RUN apk add --no-cache nodejs npm
+
+ENV LD_LIBRARY_PATH=/usr/lib:/usr/local/lib
+
+# Add non-root user
+RUN addgroup -g 1001 -S nodejs && adduser -S nodejs -u 1001
+
+# Set working directory
+WORKDIR /app
+
+# Copy the built mcp-server dist directory
+COPY --from=builder /build/packages/mcp-server/dist ./
+
+# Copy node_modules from mcp-server (includes all production deps)
+COPY --from=builder /build/packages/mcp-server/node_modules ./node_modules
+
+# Copy the built lithic into node_modules
+COPY --from=builder /build/dist ./node_modules/lithic
+
+# Change ownership to nodejs user
+RUN chown -R nodejs:nodejs /app
+RUN chown -R nodejs:nodejs /deno-dir
+
+# Switch to non-root user
+USER nodejs
+
+# The MCP server uses stdio transport by default
+# No exposed ports needed for stdio communication
+
+# Set the entrypoint to the MCP server
+ENTRYPOINT ["node", "index.js"]
+
+# Allow passing arguments to the MCP server
+CMD []
diff --git a/packages/mcp-server/README.md b/packages/mcp-server/README.md
new file mode 100644
index 00000000..ec896e8d
--- /dev/null
+++ b/packages/mcp-server/README.md
@@ -0,0 +1,101 @@
+# Lithic TypeScript MCP Server
+
+## Installation
+
+### Direct invocation
+
+You can run the MCP Server directly via `npx`:
+
+```sh
+export LITHIC_API_KEY="My Lithic API Key"
+export LITHIC_WEBHOOK_SECRET="My Webhook Secret"
+export LITHIC_ENVIRONMENT="production"
+npx -y lithic-mcp@latest
+```
+
+### Via MCP Client
+
+There is a partial list of existing clients at [modelcontextprotocol.io](https://modelcontextprotocol.io/clients). If you already
+have a client, consult their documentation to install the MCP server.
+
+For clients with a configuration JSON, it might look something like this:
+
+```json
+{
+ "mcpServers": {
+ "lithic_api": {
+ "command": "npx",
+ "args": ["-y", "lithic-mcp"],
+ "env": {
+ "LITHIC_API_KEY": "My Lithic API Key",
+ "LITHIC_WEBHOOK_SECRET": "My Webhook Secret",
+ "LITHIC_ENVIRONMENT": "production"
+ }
+ }
+ }
+}
+```
+
+### Cursor
+
+If you use Cursor, you can install the MCP server by using the button below. You will need to set your environment variables
+in Cursor's `mcp.json`, which can be found in Cursor Settings > Tools & MCP > New MCP Server.
+
+[](https://cursor.com/en-US/install-mcp?name=lithic-mcp&config=eyJuYW1lIjoibGl0aGljLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2xpdGhpYy5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LWxpdGhpYy1hcGkta2V5IjoiTXkgTGl0aGljIEFQSSBLZXkifX0)
+
+### VS Code
+
+If you use MCP, you can install the MCP server by clicking the link below. You will need to set your environment variables
+in VS Code's `mcp.json`, which can be found via Command Palette > MCP: Open User Configuration.
+
+[Open VS Code](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22lithic-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Flithic.stlmcp.com%22%2C%22headers%22%3A%7B%22x-lithic-api-key%22%3A%22My%20Lithic%20API%20Key%22%7D%7D)
+
+### Claude Code
+
+If you use Claude Code, you can install the MCP server by running the command below in your terminal. You will need to set your
+environment variables in Claude Code's `.claude.json`, which can be found in your home directory.
+
+```
+claude mcp add lithic_mcp_api --header "x-lithic-api-key: My Lithic API Key" --transport http https://lithic.stlmcp.com
+```
+
+## Code Mode
+
+This MCP server is built on the "Code Mode" tool scheme. In this MCP Server,
+your agent will write code against the TypeScript SDK, which will then be executed in an
+isolated sandbox. To accomplish this, the server will expose two tools to your agent:
+
+- The first tool is a docs search tool, which can be used to generically query for
+ documentation about your API/SDK.
+
+- The second tool is a code tool, where the agent can write code against the TypeScript SDK.
+ The code will be executed in a sandbox environment without web or filesystem access. Then,
+ anything the code returns or prints will be returned to the agent as the result of the
+ tool call.
+
+Using this scheme, agents are capable of performing very complex tasks deterministically
+and repeatably.
+
+## Running remotely
+
+Launching the client with `--transport=http` launches the server as a remote server using Streamable HTTP transport. The `--port` setting can choose the port it will run on, and the `--socket` setting allows it to run on a Unix socket.
+
+Authorization can be provided via the following headers:
+| Header | Equivalent client option | Security scheme |
+| ------------------ | ------------------------ | --------------- |
+| `x-lithic-api-key` | `apiKey` | ApiKeyAuth |
+
+A configuration JSON for this server might look like this, assuming the server is hosted at `http://localhost:3000`:
+
+```json
+{
+ "mcpServers": {
+ "lithic_api": {
+ "url": "http://localhost:3000",
+ "headers": {
+ "x-lithic-api-key": "My Lithic API Key"
+ }
+ }
+ }
+}
+```
diff --git a/packages/mcp-server/build b/packages/mcp-server/build
new file mode 100644
index 00000000..c98bc0ab
--- /dev/null
+++ b/packages/mcp-server/build
@@ -0,0 +1,56 @@
+#!/usr/bin/env bash
+set -exuo pipefail
+
+rm -rf dist; mkdir dist
+
+# Copy src to dist/src and build from dist/src into dist, so that
+# the source map for index.js.map will refer to ./src/index.ts etc
+cp -rp src README.md dist
+
+for file in LICENSE; do
+ if [ -e "../../${file}" ]; then cp "../../${file}" dist; fi
+done
+
+for file in CHANGELOG.md; do
+ if [ -e "${file}" ]; then cp "${file}" dist; fi
+done
+
+# this converts the export map paths for the dist directory
+# and does a few other minor things
+PKG_JSON_PATH=../../packages/mcp-server/package.json node ../../scripts/utils/make-dist-package-json.cjs > dist/package.json
+
+# updates the `lithic` dependency to point to NPM
+node scripts/postprocess-dist-package-json.cjs
+
+# build to .js/.mjs/.d.ts files
+./node_modules/.bin/tsc-multi
+
+cp tsconfig.dist-src.json dist/src/tsconfig.json
+
+chmod +x dist/index.js
+
+DIST_PATH=./dist PKG_IMPORT_PATH=lithic-mcp/ node ../../scripts/utils/postprocess-files.cjs
+
+# mcp bundle
+rm -rf dist-bundle lithic_api.mcpb; mkdir dist-bundle
+
+# copy package.json
+PKG_JSON_PATH=../../packages/mcp-server/package.json node ../../scripts/utils/make-dist-package-json.cjs > dist-bundle/package.json
+
+# copy files
+node scripts/copy-bundle-files.cjs
+
+# install runtime deps
+cd dist-bundle
+npm install
+cd ..
+
+# pack bundle
+cp manifest.json dist-bundle
+
+npx mcpb pack dist-bundle lithic_api.mcpb
+
+npx mcpb sign lithic_api.mcpb --self-signed
+
+# clean up
+rm -rf dist-bundle
diff --git a/packages/mcp-server/jest.config.ts b/packages/mcp-server/jest.config.ts
new file mode 100644
index 00000000..3e9d5966
--- /dev/null
+++ b/packages/mcp-server/jest.config.ts
@@ -0,0 +1,17 @@
+import type { JestConfigWithTsJest } from 'ts-jest';
+
+const config: JestConfigWithTsJest = {
+ preset: 'ts-jest/presets/default-esm',
+ testEnvironment: 'node',
+ transform: {
+ '^.+\\.(t|j)sx?$': ['@swc/jest', { sourceMaps: 'inline' }],
+ },
+ moduleNameMapper: {
+ '^lithic-mcp$': '/src/index.ts',
+ '^lithic-mcp/(.*)$': '/src/$1',
+ },
+ modulePathIgnorePatterns: ['/dist/'],
+ testPathIgnorePatterns: ['scripts'],
+};
+
+export default config;
diff --git a/packages/mcp-server/manifest.json b/packages/mcp-server/manifest.json
new file mode 100644
index 00000000..000dd156
--- /dev/null
+++ b/packages/mcp-server/manifest.json
@@ -0,0 +1,50 @@
+{
+ "dxt_version": "0.2",
+ "name": "lithic-mcp",
+ "version": "0.132.1",
+ "description": "The official MCP Server for the Lithic API",
+ "author": {
+ "name": "Lithic",
+ "email": "sdk-feedback@lithic.com"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lithic-com/lithic-node.git"
+ },
+ "homepage": "https://github.com/lithic-com/lithic-node/tree/main/packages/mcp-server#readme",
+ "documentation": "https://docs.lithic.com",
+ "server": {
+ "type": "node",
+ "entry_point": "index.js",
+ "mcp_config": {
+ "command": "node",
+ "args": ["${__dirname}/index.js"],
+ "env": {
+ "LITHIC_API_KEY": "${user_config.LITHIC_API_KEY}",
+ "LITHIC_WEBHOOK_SECRET": "${user_config.LITHIC_WEBHOOK_SECRET}"
+ }
+ }
+ },
+ "user_config": {
+ "LITHIC_API_KEY": {
+ "title": "api_key",
+ "description": "",
+ "required": true,
+ "type": "string"
+ },
+ "LITHIC_WEBHOOK_SECRET": {
+ "title": "webhook_secret",
+ "description": "",
+ "required": false,
+ "type": "string"
+ }
+ },
+ "tools": [],
+ "tools_generated": true,
+ "compatibility": {
+ "runtimes": {
+ "node": ">=18.0.0"
+ }
+ },
+ "keywords": ["api"]
+}
diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json
new file mode 100644
index 00000000..d2751382
--- /dev/null
+++ b/packages/mcp-server/package.json
@@ -0,0 +1,95 @@
+{
+ "name": "lithic-mcp",
+ "version": "0.132.1",
+ "description": "The official MCP Server for the Lithic API",
+ "author": "Lithic ",
+ "types": "dist/index.d.ts",
+ "main": "dist/index.js",
+ "type": "commonjs",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lithic-com/lithic-node.git",
+ "directory": "packages/mcp-server"
+ },
+ "homepage": "https://github.com/lithic-com/lithic-node/tree/main/packages/mcp-server#readme",
+ "license": "Apache-2.0",
+ "packageManager": "yarn@1.22.22",
+ "private": false,
+ "publishConfig": {
+ "access": "public"
+ },
+ "scripts": {
+ "test": "jest",
+ "build": "bash ./build",
+ "prepack": "echo 'to pack, run yarn build && (cd dist; yarn pack)' && exit 1",
+ "prepublishOnly": "echo 'to publish, run yarn build && (cd dist; yarn publish)' && exit 1",
+ "format": "prettier --write --cache --cache-strategy metadata . !dist",
+ "prepare": "npm run build",
+ "tsn": "ts-node -r tsconfig-paths/register",
+ "lint": "eslint .",
+ "fix": "eslint --fix ."
+ },
+ "dependencies": {
+ "lithic": "file:../../dist/",
+ "ajv": "^8.18.0",
+ "@cloudflare/cabidela": "^0.2.4",
+ "@hono/node-server": "^1.19.10",
+ "@modelcontextprotocol/sdk": "^1.27.1",
+ "hono": "^4.12.4",
+ "@valtown/deno-http-worker": "^0.0.21",
+ "cookie-parser": "^1.4.6",
+ "cors": "^2.8.5",
+ "express": "^5.1.0",
+ "fuse.js": "^7.1.0",
+ "jq-web": "https://github.com/stainless-api/jq-web/releases/download/v0.8.8/jq-web.tar.gz",
+ "pino": "^10.3.1",
+ "pino-http": "^11.0.0",
+ "pino-pretty": "^13.1.3",
+ "qs": "^6.14.1",
+ "typescript": "5.8.3",
+ "yargs": "^17.7.2",
+ "zod": "^3.25.20",
+ "zod-to-json-schema": "^3.24.5",
+ "zod-validation-error": "^4.0.1"
+ },
+ "bin": {
+ "mcp-server": "dist/index.js"
+ },
+ "devDependencies": {
+ "@anthropic-ai/mcpb": "^2.1.2",
+ "@types/cookie-parser": "^1.4.10",
+ "@types/cors": "^2.8.19",
+ "@types/express": "^5.0.3",
+ "@types/jest": "^29.4.0",
+ "@types/qs": "^6.14.0",
+ "@types/yargs": "^17.0.8",
+ "@typescript-eslint/eslint-plugin": "8.31.1",
+ "@typescript-eslint/parser": "8.31.1",
+ "eslint": "^9.39.1",
+ "eslint-plugin-prettier": "^5.4.1",
+ "eslint-plugin-unused-imports": "^4.1.4",
+ "jest": "^29.4.0",
+ "prettier": "^3.0.0",
+ "ts-jest": "^29.1.0",
+ "ts-morph": "^19.0.0",
+ "ts-node": "^10.5.0",
+ "tsc-multi": "https://github.com/stainless-api/tsc-multi/releases/download/v1.1.9/tsc-multi.tgz",
+ "tsconfig-paths": "^4.0.0"
+ },
+ "imports": {
+ "lithic-mcp": ".",
+ "lithic-mcp/*": "./src/*"
+ },
+ "exports": {
+ ".": {
+ "require": "./dist/index.js",
+ "default": "./dist/index.mjs"
+ },
+ "./*.mjs": "./dist/*.mjs",
+ "./*.js": "./dist/*.js",
+ "./*": {
+ "require": "./dist/*.js",
+ "default": "./dist/*.mjs"
+ }
+ }
+}
diff --git a/packages/mcp-server/scripts/copy-bundle-files.cjs b/packages/mcp-server/scripts/copy-bundle-files.cjs
new file mode 100644
index 00000000..de1acd6f
--- /dev/null
+++ b/packages/mcp-server/scripts/copy-bundle-files.cjs
@@ -0,0 +1,36 @@
+const fs = require('fs');
+const path = require('path');
+const pkgJson = require('../dist-bundle/package.json');
+
+const distDir = path.resolve(__dirname, '..', 'dist');
+const distBundleDir = path.resolve(__dirname, '..', 'dist-bundle');
+const distBundlePkgJson = path.join(distBundleDir, 'package.json');
+
+async function* walk(dir) {
+ for await (const d of await fs.promises.opendir(dir)) {
+ const entry = path.join(dir, d.name);
+ if (d.isDirectory()) yield* walk(entry);
+ else if (d.isFile()) yield entry;
+ }
+}
+
+async function copyFiles() {
+ // copy runtime files
+ for await (const file of walk(distDir)) {
+ if (!/[cm]?js$/.test(file)) continue;
+ const dest = path.join(distBundleDir, path.relative(distDir, file));
+ await fs.promises.mkdir(path.dirname(dest), { recursive: true });
+ await fs.promises.copyFile(file, dest);
+ }
+
+ // replace package.json reference with local reference
+ for (const dep in pkgJson.dependencies) {
+ if (dep === 'lithic') {
+ pkgJson.dependencies[dep] = 'file:../../../dist/';
+ }
+ }
+
+ await fs.promises.writeFile(distBundlePkgJson, JSON.stringify(pkgJson, null, 2));
+}
+
+copyFiles();
diff --git a/packages/mcp-server/scripts/postprocess-dist-package-json.cjs b/packages/mcp-server/scripts/postprocess-dist-package-json.cjs
new file mode 100644
index 00000000..8d898851
--- /dev/null
+++ b/packages/mcp-server/scripts/postprocess-dist-package-json.cjs
@@ -0,0 +1,12 @@
+const fs = require('fs');
+const pkgJson = require('../dist/package.json');
+const parentPkgJson = require('../../../package.json');
+
+for (const dep in pkgJson.dependencies) {
+ // ensure we point to NPM instead of a local directory
+ if (dep === 'lithic') {
+ pkgJson.dependencies[dep] = '^' + parentPkgJson.version;
+ }
+}
+
+fs.writeFileSync('dist/package.json', JSON.stringify(pkgJson, null, 2));
diff --git a/packages/mcp-server/src/auth.ts b/packages/mcp-server/src/auth.ts
new file mode 100644
index 00000000..a0523482
--- /dev/null
+++ b/packages/mcp-server/src/auth.ts
@@ -0,0 +1,27 @@
+// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+import { IncomingMessage } from 'node:http';
+import { ClientOptions } from 'lithic';
+import { McpOptions } from './options';
+
+export const parseClientAuthHeaders = (req: IncomingMessage, required?: boolean): Partial => {
+ const apiKey =
+ Array.isArray(req.headers['x-lithic-api-key']) ?
+ req.headers['x-lithic-api-key'][0]
+ : req.headers['x-lithic-api-key'];
+ return { apiKey };
+};
+
+export const getStainlessApiKey = (req: IncomingMessage, mcpOptions: McpOptions): string | undefined => {
+ // Try to get the key from the x-stainless-api-key header
+ const headerKey =
+ Array.isArray(req.headers['x-stainless-api-key']) ?
+ req.headers['x-stainless-api-key'][0]
+ : req.headers['x-stainless-api-key'];
+ if (headerKey && typeof headerKey === 'string') {
+ return headerKey;
+ }
+
+ // Fall back to value set in the mcpOptions (e.g. from environment variable), if provided
+ return mcpOptions.stainlessApiKey;
+};
diff --git a/packages/mcp-server/src/code-tool-paths.cts b/packages/mcp-server/src/code-tool-paths.cts
new file mode 100644
index 00000000..78263e45
--- /dev/null
+++ b/packages/mcp-server/src/code-tool-paths.cts
@@ -0,0 +1,5 @@
+// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+export function getWorkerPath(): string {
+ return require.resolve('./code-tool-worker.mjs');
+}
diff --git a/packages/mcp-server/src/code-tool-types.ts b/packages/mcp-server/src/code-tool-types.ts
new file mode 100644
index 00000000..4b944f3a
--- /dev/null
+++ b/packages/mcp-server/src/code-tool-types.ts
@@ -0,0 +1,17 @@
+// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+import { ClientOptions } from 'lithic';
+
+export type WorkerInput = {
+ project_name: string;
+ code: string;
+ client_opts: ClientOptions;
+ intent?: string | undefined;
+};
+
+export type WorkerOutput = {
+ is_error: boolean;
+ result: unknown | null;
+ log_lines: string[];
+ err_lines: string[];
+};
diff --git a/packages/mcp-server/src/code-tool-worker.ts b/packages/mcp-server/src/code-tool-worker.ts
new file mode 100644
index 00000000..e3230a71
--- /dev/null
+++ b/packages/mcp-server/src/code-tool-worker.ts
@@ -0,0 +1,462 @@
+// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+import path from 'node:path';
+import util from 'node:util';
+import Fuse from 'fuse.js';
+import ts from 'typescript';
+import { WorkerOutput } from './code-tool-types';
+import { Lithic, ClientOptions } from 'lithic';
+
+function getRunFunctionSource(code: string): {
+ type: 'declaration' | 'expression';
+ client: string | undefined;
+ code: string;
+} | null {
+ const sourceFile = ts.createSourceFile('code.ts', code, ts.ScriptTarget.Latest, true);
+ const printer = ts.createPrinter();
+
+ for (const statement of sourceFile.statements) {
+ // Check for top-level function declarations
+ if (ts.isFunctionDeclaration(statement)) {
+ if (statement.name?.text === 'run') {
+ return {
+ type: 'declaration',
+ client: statement.parameters[0]?.name.getText(),
+ code: printer.printNode(ts.EmitHint.Unspecified, statement.body!, sourceFile),
+ };
+ }
+ }
+
+ // Check for variable declarations: const run = () => {} or const run = function() {}
+ if (ts.isVariableStatement(statement)) {
+ for (const declaration of statement.declarationList.declarations) {
+ if (
+ ts.isIdentifier(declaration.name) &&
+ declaration.name.text === 'run' &&
+ // Check if it's initialized with a function
+ declaration.initializer &&
+ (ts.isFunctionExpression(declaration.initializer) || ts.isArrowFunction(declaration.initializer))
+ ) {
+ return {
+ type: 'expression',
+ client: declaration.initializer.parameters[0]?.name.getText(),
+ code: printer.printNode(ts.EmitHint.Unspecified, declaration.initializer, sourceFile),
+ };
+ }
+ }
+ }
+ }
+
+ return null;
+}
+
+function getTSDiagnostics(code: string): string[] {
+ const functionSource = getRunFunctionSource(code)!;
+ const codeWithImport = [
+ 'import { Lithic } from "lithic";',
+ functionSource.type === 'declaration' ?
+ `async function run(${functionSource.client}: Lithic)`
+ : `const run: (${functionSource.client}: Lithic) => Promise =`,
+ functionSource.code,
+ ].join('\n');
+ const sourcePath = path.resolve('code.ts');
+ const ast = ts.createSourceFile(sourcePath, codeWithImport, ts.ScriptTarget.Latest, true);
+ const options = ts.getDefaultCompilerOptions();
+ options.target = ts.ScriptTarget.Latest;
+ options.module = ts.ModuleKind.NodeNext;
+ options.moduleResolution = ts.ModuleResolutionKind.NodeNext;
+ const host = ts.createCompilerHost(options, true);
+ const newHost: typeof host = {
+ ...host,
+ getSourceFile: (...args) => {
+ if (path.resolve(args[0]) === sourcePath) {
+ return ast;
+ }
+ return host.getSourceFile(...args);
+ },
+ readFile: (...args) => {
+ if (path.resolve(args[0]) === sourcePath) {
+ return codeWithImport;
+ }
+ return host.readFile(...args);
+ },
+ fileExists: (...args) => {
+ if (path.resolve(args[0]) === sourcePath) {
+ return true;
+ }
+ return host.fileExists(...args);
+ },
+ };
+ const program = ts.createProgram({
+ options,
+ rootNames: [sourcePath],
+ host: newHost,
+ });
+ const diagnostics = ts.getPreEmitDiagnostics(program, ast);
+ return diagnostics.map((d) => {
+ const message = ts.flattenDiagnosticMessageText(d.messageText, '\n');
+ if (!d.file || !d.start) return `- ${message}`;
+ const { line: lineNumber } = ts.getLineAndCharacterOfPosition(d.file, d.start);
+ const line = codeWithImport.split('\n').at(lineNumber)?.trim();
+ return line ? `- ${message}\n ${line}` : `- ${message}`;
+ });
+}
+
+const fuse = new Fuse(
+ [
+ 'client.apiStatus',
+ 'client.accounts.list',
+ 'client.accounts.retrieve',
+ 'client.accounts.retrieveSpendLimits',
+ 'client.accounts.update',
+ 'client.accountHolders.create',
+ 'client.accountHolders.list',
+ 'client.accountHolders.listDocuments',
+ 'client.accountHolders.retrieve',
+ 'client.accountHolders.retrieveDocument',
+ 'client.accountHolders.simulateEnrollmentDocumentReview',
+ 'client.accountHolders.simulateEnrollmentReview',
+ 'client.accountHolders.update',
+ 'client.accountHolders.uploadDocument',
+ 'client.accountHolders.entities.create',
+ 'client.accountHolders.entities.delete',
+ 'client.authRules.v2.create',
+ 'client.authRules.v2.delete',
+ 'client.authRules.v2.draft',
+ 'client.authRules.v2.list',
+ 'client.authRules.v2.listResults',
+ 'client.authRules.v2.listVersions',
+ 'client.authRules.v2.promote',
+ 'client.authRules.v2.retrieve',
+ 'client.authRules.v2.retrieveFeatures',
+ 'client.authRules.v2.retrieveReport',
+ 'client.authRules.v2.update',
+ 'client.authRules.v2.backtests.create',
+ 'client.authRules.v2.backtests.retrieve',
+ 'client.authStreamEnrollment.retrieveSecret',
+ 'client.authStreamEnrollment.rotateSecret',
+ 'client.tokenizationDecisioning.retrieveSecret',
+ 'client.tokenizationDecisioning.rotateSecret',
+ 'client.tokenizations.activate',
+ 'client.tokenizations.deactivate',
+ 'client.tokenizations.list',
+ 'client.tokenizations.pause',
+ 'client.tokenizations.resendActivationCode',
+ 'client.tokenizations.retrieve',
+ 'client.tokenizations.simulate',
+ 'client.tokenizations.unpause',
+ 'client.tokenizations.updateDigitalCardArt',
+ 'client.cards.convertPhysical',
+ 'client.cards.create',
+ 'client.cards.embed',
+ 'client.cards.list',
+ 'client.cards.provision',
+ 'client.cards.reissue',
+ 'client.cards.renew',
+ 'client.cards.retrieve',
+ 'client.cards.retrieveSpendLimits',
+ 'client.cards.searchByPan',
+ 'client.cards.update',
+ 'client.cards.webProvision',
+ 'client.cards.balances.list',
+ 'client.cards.financialTransactions.list',
+ 'client.cards.financialTransactions.retrieve',
+ 'client.cardBulkOrders.create',
+ 'client.cardBulkOrders.list',
+ 'client.cardBulkOrders.retrieve',
+ 'client.cardBulkOrders.update',
+ 'client.balances.list',
+ 'client.disputes.create',
+ 'client.disputes.delete',
+ 'client.disputes.deleteEvidence',
+ 'client.disputes.initiateEvidenceUpload',
+ 'client.disputes.list',
+ 'client.disputes.listEvidences',
+ 'client.disputes.retrieve',
+ 'client.disputes.retrieveEvidence',
+ 'client.disputes.update',
+ 'client.disputesV2.list',
+ 'client.disputesV2.retrieve',
+ 'client.events.list',
+ 'client.events.listAttempts',
+ 'client.events.retrieve',
+ 'client.events.subscriptions.create',
+ 'client.events.subscriptions.delete',
+ 'client.events.subscriptions.list',
+ 'client.events.subscriptions.listAttempts',
+ 'client.events.subscriptions.recover',
+ 'client.events.subscriptions.replayMissing',
+ 'client.events.subscriptions.retrieve',
+ 'client.events.subscriptions.retrieveSecret',
+ 'client.events.subscriptions.rotateSecret',
+ 'client.events.subscriptions.sendSimulatedExample',
+ 'client.events.subscriptions.update',
+ 'client.events.eventSubscriptions.resend',
+ 'client.transfers.create',
+ 'client.financialAccounts.create',
+ 'client.financialAccounts.list',
+ 'client.financialAccounts.registerAccountNumber',
+ 'client.financialAccounts.retrieve',
+ 'client.financialAccounts.update',
+ 'client.financialAccounts.updateStatus',
+ 'client.financialAccounts.balances.list',
+ 'client.financialAccounts.financialTransactions.list',
+ 'client.financialAccounts.financialTransactions.retrieve',
+ 'client.financialAccounts.creditConfiguration.retrieve',
+ 'client.financialAccounts.creditConfiguration.update',
+ 'client.financialAccounts.statements.list',
+ 'client.financialAccounts.statements.retrieve',
+ 'client.financialAccounts.statements.lineItems.list',
+ 'client.financialAccounts.loanTapes.list',
+ 'client.financialAccounts.loanTapes.retrieve',
+ 'client.financialAccounts.loanTapeConfiguration.retrieve',
+ 'client.financialAccounts.interestTierSchedule.create',
+ 'client.financialAccounts.interestTierSchedule.delete',
+ 'client.financialAccounts.interestTierSchedule.list',
+ 'client.financialAccounts.interestTierSchedule.retrieve',
+ 'client.financialAccounts.interestTierSchedule.update',
+ 'client.transactions.expireAuthorization',
+ 'client.transactions.list',
+ 'client.transactions.retrieve',
+ 'client.transactions.simulateAuthorization',
+ 'client.transactions.simulateAuthorizationAdvice',
+ 'client.transactions.simulateClearing',
+ 'client.transactions.simulateCreditAuthorization',
+ 'client.transactions.simulateCreditAuthorizationAdvice',
+ 'client.transactions.simulateReturn',
+ 'client.transactions.simulateReturnReversal',
+ 'client.transactions.simulateVoid',
+ 'client.transactions.enhancedCommercialData.retrieve',
+ 'client.transactions.events.enhancedCommercialData.retrieve',
+ 'client.responderEndpoints.checkStatus',
+ 'client.responderEndpoints.create',
+ 'client.responderEndpoints.delete',
+ 'client.externalBankAccounts.create',
+ 'client.externalBankAccounts.list',
+ 'client.externalBankAccounts.retrieve',
+ 'client.externalBankAccounts.retryMicroDeposits',
+ 'client.externalBankAccounts.retryPrenote',
+ 'client.externalBankAccounts.unpause',
+ 'client.externalBankAccounts.update',
+ 'client.externalBankAccounts.microDeposits.create',
+ 'client.payments.create',
+ 'client.payments.list',
+ 'client.payments.retrieve',
+ 'client.payments.retry',
+ 'client.payments.return',
+ 'client.payments.simulateAction',
+ 'client.payments.simulateReceipt',
+ 'client.payments.simulateRelease',
+ 'client.payments.simulateReturn',
+ 'client.threeDS.authentication.retrieve',
+ 'client.threeDS.authentication.simulate',
+ 'client.threeDS.authentication.simulateOtpEntry',
+ 'client.threeDS.decisioning.challengeResponse',
+ 'client.threeDS.decisioning.retrieveSecret',
+ 'client.threeDS.decisioning.rotateSecret',
+ 'client.reports.settlement.listDetails',
+ 'client.reports.settlement.summary',
+ 'client.reports.settlement.networkTotals.list',
+ 'client.reports.settlement.networkTotals.retrieve',
+ 'client.cardPrograms.list',
+ 'client.cardPrograms.retrieve',
+ 'client.digitalCardArt.list',
+ 'client.digitalCardArt.retrieve',
+ 'client.bookTransfers.create',
+ 'client.bookTransfers.list',
+ 'client.bookTransfers.retrieve',
+ 'client.bookTransfers.retry',
+ 'client.bookTransfers.reverse',
+ 'client.creditProducts.extendedCredit.retrieve',
+ 'client.creditProducts.primeRates.create',
+ 'client.creditProducts.primeRates.retrieve',
+ 'client.externalPayments.cancel',
+ 'client.externalPayments.create',
+ 'client.externalPayments.list',
+ 'client.externalPayments.release',
+ 'client.externalPayments.retrieve',
+ 'client.externalPayments.reverse',
+ 'client.externalPayments.settle',
+ 'client.managementOperations.create',
+ 'client.managementOperations.list',
+ 'client.managementOperations.retrieve',
+ 'client.managementOperations.reverse',
+ 'client.fundingEvents.list',
+ 'client.fundingEvents.retrieve',
+ 'client.fundingEvents.retrieveDetails',
+ 'client.fraud.transactions.report',
+ 'client.fraud.transactions.retrieve',
+ 'client.networkPrograms.list',
+ 'client.networkPrograms.retrieve',
+ 'client.holds.create',
+ 'client.holds.list',
+ 'client.holds.retrieve',
+ 'client.holds.void',
+ 'client.accountActivity.list',
+ 'client.accountActivity.retrieveTransaction',
+ 'client.transferLimits.list',
+ 'client.webhooks.parsed',
+ ],
+ { threshold: 1, shouldSort: true },
+);
+
+function getMethodSuggestions(fullyQualifiedMethodName: string): string[] {
+ return fuse
+ .search(fullyQualifiedMethodName)
+ .map(({ item }) => item)
+ .slice(0, 5);
+}
+
+const proxyToObj = new WeakMap();
+const objToProxy = new WeakMap();
+
+type ClientProxyConfig = {
+ path: string[];
+ isBelievedBad?: boolean;
+};
+
+function makeSdkProxy(obj: T, { path, isBelievedBad = false }: ClientProxyConfig): T {
+ let proxy: T = objToProxy.get(obj);
+
+ if (!proxy) {
+ proxy = new Proxy(obj, {
+ get(target, prop, receiver) {
+ const propPath = [...path, String(prop)];
+ const value = Reflect.get(target, prop, receiver);
+
+ if (isBelievedBad || (!(prop in target) && value === undefined)) {
+ // If we're accessing a path that doesn't exist, it will probably eventually error.
+ // Let's proxy it and mark it bad so that we can control the error message.
+ // We proxy an empty class so that an invocation or construction attempt is possible.
+ return makeSdkProxy(class {}, { path: propPath, isBelievedBad: true });
+ }
+
+ if (value !== null && (typeof value === 'object' || typeof value === 'function')) {
+ return makeSdkProxy(value, { path: propPath, isBelievedBad });
+ }
+
+ return value;
+ },
+
+ apply(target, thisArg, args) {
+ if (isBelievedBad || typeof target !== 'function') {
+ const fullyQualifiedMethodName = path.join('.');
+ const suggestions = getMethodSuggestions(fullyQualifiedMethodName);
+ throw new Error(
+ `${fullyQualifiedMethodName} is not a function. Did you mean: ${suggestions.join(', ')}`,
+ );
+ }
+
+ return Reflect.apply(target, proxyToObj.get(thisArg) ?? thisArg, args);
+ },
+
+ construct(target, args, newTarget) {
+ if (isBelievedBad || typeof target !== 'function') {
+ const fullyQualifiedMethodName = path.join('.');
+ const suggestions = getMethodSuggestions(fullyQualifiedMethodName);
+ throw new Error(
+ `${fullyQualifiedMethodName} is not a constructor. Did you mean: ${suggestions.join(', ')}`,
+ );
+ }
+
+ return Reflect.construct(target, args, newTarget);
+ },
+ });
+
+ objToProxy.set(obj, proxy);
+ proxyToObj.set(proxy, obj);
+ }
+
+ return proxy;
+}
+
+function parseError(code: string, error: unknown): string | undefined {
+ if (!(error instanceof Error)) return;
+ const message = error.name ? `${error.name}: ${error.message}` : error.message;
+ try {
+ // Deno uses V8; the first ":LINE:COLUMN" is the top of stack.
+ const lineNumber = error.stack?.match(/:([0-9]+):[0-9]+/)?.[1];
+ // -1 for the zero-based indexing
+ const line =
+ lineNumber &&
+ code
+ .split('\n')
+ .at(parseInt(lineNumber, 10) - 1)
+ ?.trim();
+ return line ? `${message}\n at line ${lineNumber}\n ${line}` : message;
+ } catch {
+ return message;
+ }
+}
+
+const fetch = async (req: Request): Promise => {
+ const { opts, code } = (await req.json()) as { opts: ClientOptions; code: string };
+
+ const runFunctionSource = code ? getRunFunctionSource(code) : null;
+ if (!runFunctionSource) {
+ const message =
+ code ?
+ 'The code is missing a top-level `run` function.'
+ : 'The code argument is missing. Provide one containing a top-level `run` function.';
+ return Response.json(
+ {
+ is_error: true,
+ result: `${message} Write code within this template:\n\n\`\`\`\nasync function run(client) {\n // Fill this out\n}\n\`\`\``,
+ log_lines: [],
+ err_lines: [],
+ } satisfies WorkerOutput,
+ { status: 400, statusText: 'Code execution error' },
+ );
+ }
+
+ const diagnostics = getTSDiagnostics(code);
+ if (diagnostics.length > 0) {
+ return Response.json(
+ {
+ is_error: true,
+ result: `The code contains TypeScript diagnostics:\n${diagnostics.join('\n')}`,
+ log_lines: [],
+ err_lines: [],
+ } satisfies WorkerOutput,
+ { status: 400, statusText: 'Code execution error' },
+ );
+ }
+
+ const client = new Lithic({
+ ...opts,
+ });
+
+ const log_lines: string[] = [];
+ const err_lines: string[] = [];
+ const console = {
+ log: (...args: unknown[]) => {
+ log_lines.push(util.format(...args));
+ },
+ error: (...args: unknown[]) => {
+ err_lines.push(util.format(...args));
+ },
+ };
+ try {
+ let run_ = async (client: any) => {};
+ eval(`${code}\nrun_ = run;`);
+ const result = await run_(makeSdkProxy(client, { path: ['client'] }));
+ return Response.json({
+ is_error: false,
+ result,
+ log_lines,
+ err_lines,
+ } satisfies WorkerOutput);
+ } catch (e) {
+ return Response.json(
+ {
+ is_error: true,
+ result: parseError(code, e),
+ log_lines,
+ err_lines,
+ } satisfies WorkerOutput,
+ { status: 400, statusText: 'Code execution error' },
+ );
+ }
+};
+
+export default { fetch };
diff --git a/packages/mcp-server/src/code-tool.ts b/packages/mcp-server/src/code-tool.ts
new file mode 100644
index 00000000..a9c5aaaa
--- /dev/null
+++ b/packages/mcp-server/src/code-tool.ts
@@ -0,0 +1,399 @@
+// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+import {
+ ContentBlock,
+ McpRequestContext,
+ McpTool,
+ Metadata,
+ ToolCallResult,
+ asErrorResult,
+ asTextContentResult,
+} from './types';
+import { Tool } from '@modelcontextprotocol/sdk/types.js';
+import { readEnv, requireValue } from './util';
+import { WorkerInput, WorkerOutput } from './code-tool-types';
+import { getLogger } from './logger';
+import { SdkMethod } from './methods';
+import { McpCodeExecutionMode } from './options';
+import { ClientOptions } from 'lithic';
+
+const prompt = `Runs JavaScript code to interact with the Lithic API.
+
+You are a skilled TypeScript programmer writing code to interface with the service.
+Define an async function named "run" that takes a single parameter of an initialized SDK client and it will be run.
+For example:
+
+\`\`\`
+async function run(client) {
+ const card = await client.cards.create({ type: 'SINGLE_USE' });
+
+ console.log(card.token);
+}
+\`\`\`
+
+You will be returned anything that your function returns, plus the results of any console.log statements.
+Do not add try-catch blocks for single API calls. The tool will handle errors for you.
+Do not add comments unless necessary for generating better code.
+Code will run in a container, and cannot interact with the network outside of the given SDK client.
+Variables will not persist between calls, so make sure to return or log any data you might need later.
+Remember that you are writing TypeScript code, so you need to be careful with your types.
+Always type dynamic key-value stores explicitly as Record instead of {}.`;
+
+/**
+ * A tool that runs code against a copy of the SDK.
+ *
+ * Instead of exposing every endpoint as its own tool, which uses up too many tokens for LLMs to use at once,
+ * we expose a single tool that can be used to search for endpoints by name, resource, operation, or tag, and then
+ * a generic endpoint that can be used to invoke any endpoint with the provided arguments.
+ *
+ * @param blockedMethods - The methods to block for code execution. Blocking is done by simple string
+ * matching, so it is not secure against obfuscation. For stronger security, block in the downstream API
+ * with limited API keys.
+ * @param codeExecutionMode - Whether to execute code in a local Deno environment or in a remote
+ * sandbox environment hosted by Stainless.
+ */
+export function codeTool({
+ blockedMethods,
+ codeExecutionMode,
+}: {
+ blockedMethods: SdkMethod[] | undefined;
+ codeExecutionMode: McpCodeExecutionMode;
+}): McpTool {
+ const metadata: Metadata = { resource: 'all', operation: 'write', tags: [] };
+ const tool: Tool = {
+ name: 'execute',
+ description: prompt,
+ inputSchema: {
+ type: 'object',
+ properties: {
+ code: {
+ type: 'string',
+ description: 'Code to execute.',
+ },
+ intent: {
+ type: 'string',
+ description: 'Task you are trying to perform. Used for improving the service.',
+ },
+ },
+ required: ['code'],
+ },
+ };
+
+ const logger = getLogger();
+
+ const handler = async ({
+ reqContext,
+ args,
+ }: {
+ reqContext: McpRequestContext;
+ args: any;
+ }): Promise => {
+ const code = args.code as string;
+ // Do very basic blocking of code that includes forbidden method names.
+ //
+ // WARNING: This is not secure against obfuscation and other evasion methods. If
+ // stronger security blocks are required, then these should be enforced in the downstream
+ // API (e.g., by having users call the MCP server with API keys with limited permissions).
+ if (blockedMethods) {
+ const blockedMatches = blockedMethods.filter((method) => code.includes(method.fullyQualifiedName));
+ if (blockedMatches.length > 0) {
+ return asErrorResult(
+ `The following methods have been blocked by the MCP server and cannot be used in code execution: ${blockedMatches
+ .map((m) => m.fullyQualifiedName)
+ .join(', ')}`,
+ );
+ }
+ }
+
+ let result: ToolCallResult;
+ const startTime = Date.now();
+
+ if (codeExecutionMode === 'local') {
+ logger.debug('Executing code in local Deno environment');
+ result = await localDenoHandler({ reqContext, args });
+ } else {
+ logger.debug('Executing code in remote Stainless environment');
+ result = await remoteStainlessHandler({ reqContext, args });
+ }
+
+ logger.info(
+ {
+ codeExecutionMode,
+ durationMs: Date.now() - startTime,
+ isError: result.isError,
+ contentRows: result.content?.length ?? 0,
+ },
+ 'Got code tool execution result',
+ );
+ return result;
+ };
+
+ return { metadata, tool, handler };
+}
+
+const remoteStainlessHandler = async ({
+ reqContext,
+ args,
+}: {
+ reqContext: McpRequestContext;
+ args: any;
+}): Promise => {
+ const code = args.code as string;
+ const intent = args.intent as string | undefined;
+ const client = reqContext.client;
+
+ const codeModeEndpoint = readEnv('CODE_MODE_ENDPOINT_URL') ?? 'https://api.stainless.com/api/ai/code-tool';
+
+ const localClientEnvs = {
+ LITHIC_API_KEY: requireValue(
+ readEnv('LITHIC_API_KEY') ?? client.apiKey,
+ 'set LITHIC_API_KEY environment variable or provide apiKey client option',
+ ),
+ LITHIC_WEBHOOK_SECRET: readEnv('LITHIC_WEBHOOK_SECRET') ?? client.webhookSecret ?? undefined,
+ LITHIC_BASE_URL:
+ readEnv('LITHIC_BASE_URL') ?? readEnv('LITHIC_ENVIRONMENT') ? undefined : client.baseURL ?? undefined,
+ };
+ // Merge any upstream client envs from the request header, with upstream values taking precedence.
+ const mergedClientEnvs = { ...localClientEnvs, ...reqContext.upstreamClientEnvs };
+
+ // Setting a Stainless API key authenticates requests to the code tool endpoint.
+ const res = await fetch(codeModeEndpoint, {
+ method: 'POST',
+ headers: {
+ ...(reqContext.stainlessApiKey && { Authorization: reqContext.stainlessApiKey }),
+ 'Content-Type': 'application/json',
+ 'x-stainless-mcp-client-envs': JSON.stringify(mergedClientEnvs),
+ },
+ body: JSON.stringify({
+ project_name: 'lithic',
+ code,
+ intent,
+ client_opts: { environment: (readEnv('LITHIC_ENVIRONMENT') || undefined) as any },
+ } satisfies WorkerInput),
+ });
+
+ if (!res.ok) {
+ if (res.status === 404 && !reqContext.stainlessApiKey) {
+ throw new Error(
+ 'Could not access code tool for this project. You may need to provide a Stainless API key via the STAINLESS_API_KEY environment variable, the --stainless-api-key flag, or the x-stainless-api-key HTTP header.',
+ );
+ }
+ throw new Error(
+ `${res.status}: ${
+ res.statusText
+ } error when trying to contact Code Tool server. Details: ${await res.text()}`,
+ );
+ }
+
+ const { is_error, result, log_lines, err_lines } = (await res.json()) as WorkerOutput;
+ const hasLogs = log_lines.length > 0 || err_lines.length > 0;
+ const output = {
+ result,
+ ...(log_lines.length > 0 && { log_lines }),
+ ...(err_lines.length > 0 && { err_lines }),
+ };
+ if (is_error) {
+ return asErrorResult(typeof result === 'string' && !hasLogs ? result : JSON.stringify(output, null, 2));
+ }
+ return asTextContentResult(output);
+};
+
+const localDenoHandler = async ({
+ reqContext,
+ args,
+}: {
+ reqContext: McpRequestContext;
+ args: unknown;
+}): Promise => {
+ const fs = await import('node:fs');
+ const path = await import('node:path');
+ const url = await import('node:url');
+ const { newDenoHTTPWorker } = await import('@valtown/deno-http-worker');
+ const { getWorkerPath } = await import('./code-tool-paths.cjs');
+ const workerPath = getWorkerPath();
+
+ const client = reqContext.client;
+ const baseURLHostname = new URL(client.baseURL).hostname;
+ const { code } = args as { code: string };
+
+ let denoPath: string;
+
+ const packageRoot = path.resolve(path.dirname(workerPath), '..');
+ const packageNodeModulesPath = path.resolve(packageRoot, 'node_modules');
+
+ // Check if deno is in PATH
+ const { execSync } = await import('node:child_process');
+ try {
+ execSync('command -v deno', { stdio: 'ignore' });
+ denoPath = 'deno';
+ } catch {
+ try {
+ // Use deno binary in node_modules if it's found
+ const denoNodeModulesPath = path.resolve(packageNodeModulesPath, 'deno', 'bin.cjs');
+ await fs.promises.access(denoNodeModulesPath, fs.constants.X_OK);
+ denoPath = denoNodeModulesPath;
+ } catch {
+ return asErrorResult(
+ 'Deno is required for code execution but was not found. ' +
+ 'Install it from https://deno.land or run: npm install deno',
+ );
+ }
+ }
+
+ const allowReadPaths = [
+ 'code-tool-worker.mjs',
+ `${workerPath.replace(/([\/\\]node_modules)[\/\\].+$/, '$1')}/`,
+ packageRoot,
+ ];
+
+ // Follow symlinks in node_modules to allow read access to workspace-linked packages
+ try {
+ const sdkPkgName = 'lithic';
+ const sdkDir = path.resolve(packageNodeModulesPath, sdkPkgName);
+ const realSdkDir = fs.realpathSync(sdkDir);
+ if (realSdkDir !== sdkDir) {
+ allowReadPaths.push(realSdkDir);
+ }
+ } catch {
+ // Ignore if symlink resolution fails
+ }
+
+ const allowRead = allowReadPaths.join(',');
+
+ const worker = await newDenoHTTPWorker(url.pathToFileURL(workerPath), {
+ denoExecutable: denoPath,
+ runFlags: [
+ `--node-modules-dir=manual`,
+ `--allow-read=${allowRead}`,
+ `--allow-net=${baseURLHostname}`,
+ // Allow environment variables because instantiating the client will try to read from them,
+ // even though they are not set.
+ '--allow-env',
+ ],
+ printOutput: true,
+ spawnOptions: {
+ cwd: path.dirname(workerPath),
+ // Merge any upstream client envs into the Deno subprocess environment,
+ // with the upstream env vars taking precedence.
+ env: { ...process.env, ...reqContext.upstreamClientEnvs },
+ },
+ });
+
+ try {
+ const resp = await new Promise((resolve, reject) => {
+ worker.addEventListener('exit', (exitCode) => {
+ reject(new Error(`Worker exited with code ${exitCode}`));
+ });
+
+ // Strip null/undefined values so that the worker SDK client can fall back to
+ // reading from environment variables (including any upstreamClientEnvs).
+ const opts: ClientOptions = Object.fromEntries(
+ Object.entries({
+ baseURL: client.baseURL,
+ apiKey: client.apiKey,
+ webhookSecret: client.webhookSecret,
+ defaultHeaders: {
+ 'X-Stainless-MCP': 'true',
+ },
+ }).filter(([_, v]) => v != null),
+ ) as ClientOptions;
+
+ const req = worker.request(
+ 'http://localhost',
+ {
+ headers: {
+ 'content-type': 'application/json',
+ },
+ method: 'POST',
+ },
+ (resp) => {
+ const body: Uint8Array[] = [];
+ resp.on('error', (err) => {
+ reject(err);
+ });
+ resp.on('data', (chunk) => {
+ body.push(chunk);
+ });
+ resp.on('end', () => {
+ resolve(
+ new Response(Buffer.concat(body).toString(), {
+ status: resp.statusCode ?? 200,
+ headers: resp.headers as any,
+ }),
+ );
+ });
+ },
+ );
+
+ const body = JSON.stringify({
+ opts,
+ code,
+ });
+
+ req.write(body, (err) => {
+ if (err != null) {
+ reject(err);
+ }
+ });
+
+ req.end();
+ });
+
+ if (resp.status === 200) {
+ const { result, log_lines, err_lines } = (await resp.json()) as WorkerOutput;
+ const returnOutput: ContentBlock | null =
+ result == null ? null : (
+ {
+ type: 'text',
+ text: typeof result === 'string' ? result : JSON.stringify(result),
+ }
+ );
+ const logOutput: ContentBlock | null =
+ log_lines.length === 0 ?
+ null
+ : {
+ type: 'text',
+ text: log_lines.join('\n'),
+ };
+ const errOutput: ContentBlock | null =
+ err_lines.length === 0 ?
+ null
+ : {
+ type: 'text',
+ text: 'Error output:\n' + err_lines.join('\n'),
+ };
+ return {
+ content: [returnOutput, logOutput, errOutput].filter((block) => block !== null),
+ };
+ } else {
+ const { result, log_lines, err_lines } = (await resp.json()) as WorkerOutput;
+ const messageOutput: ContentBlock | null =
+ result == null ? null : (
+ {
+ type: 'text',
+ text: typeof result === 'string' ? result : JSON.stringify(result),
+ }
+ );
+ const logOutput: ContentBlock | null =
+ log_lines.length === 0 ?
+ null
+ : {
+ type: 'text',
+ text: log_lines.join('\n'),
+ };
+ const errOutput: ContentBlock | null =
+ err_lines.length === 0 ?
+ null
+ : {
+ type: 'text',
+ text: 'Error output:\n' + err_lines.join('\n'),
+ };
+ return {
+ content: [messageOutput, logOutput, errOutput].filter((block) => block !== null),
+ isError: true,
+ };
+ }
+ } finally {
+ worker.terminate();
+ }
+};
diff --git a/packages/mcp-server/src/docs-search-tool.ts b/packages/mcp-server/src/docs-search-tool.ts
new file mode 100644
index 00000000..a3122cb9
--- /dev/null
+++ b/packages/mcp-server/src/docs-search-tool.ts
@@ -0,0 +1,100 @@
+// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+import { Tool } from '@modelcontextprotocol/sdk/types.js';
+import { Metadata, McpRequestContext, asTextContentResult } from './types';
+import { getLogger } from './logger';
+
+export const metadata: Metadata = {
+ resource: 'all',
+ operation: 'read',
+ tags: [],
+ httpMethod: 'get',
+};
+
+export const tool: Tool = {
+ name: 'search_docs',
+ description:
+ 'Search SDK documentation to find methods, parameters, and usage examples for interacting with the API. Use this before writing code when you need to discover the right approach.',
+ inputSchema: {
+ type: 'object',
+ properties: {
+ query: {
+ type: 'string',
+ description: 'The query to search for.',
+ },
+ language: {
+ type: 'string',
+ description: 'The language for the SDK to search for.',
+ enum: ['http', 'python', 'go', 'typescript', 'javascript', 'terraform', 'ruby', 'java', 'kotlin'],
+ },
+ detail: {
+ type: 'string',
+ description: 'The amount of detail to return.',
+ enum: ['default', 'verbose'],
+ },
+ },
+ required: ['query', 'language'],
+ },
+ annotations: {
+ readOnlyHint: true,
+ },
+};
+
+const docsSearchURL =
+ process.env['DOCS_SEARCH_URL'] || 'https://api.stainless.com/api/projects/lithic/docs/search';
+
+export const handler = async ({
+ reqContext,
+ args,
+}: {
+ reqContext: McpRequestContext;
+ args: Record | undefined;
+}) => {
+ const body = args as any;
+ const query = new URLSearchParams(body).toString();
+
+ const startTime = Date.now();
+ const result = await fetch(`${docsSearchURL}?${query}`, {
+ headers: {
+ ...(reqContext.stainlessApiKey && { Authorization: reqContext.stainlessApiKey }),
+ },
+ });
+
+ const logger = getLogger();
+
+ if (!result.ok) {
+ const errorText = await result.text();
+ logger.warn(
+ {
+ durationMs: Date.now() - startTime,
+ query: body.query,
+ status: result.status,
+ statusText: result.statusText,
+ errorText,
+ },
+ 'Got error response from docs search tool',
+ );
+
+ if (result.status === 404 && !reqContext.stainlessApiKey) {
+ throw new Error(
+ 'Could not find docs for this project. You may need to provide a Stainless API key via the STAINLESS_API_KEY environment variable, the --stainless-api-key flag, or the x-stainless-api-key HTTP header.',
+ );
+ }
+
+ throw new Error(
+ `${result.status}: ${result.statusText} when using doc search tool. Details: ${errorText}`,
+ );
+ }
+
+ const resultBody = await result.json();
+ logger.info(
+ {
+ durationMs: Date.now() - startTime,
+ query: body.query,
+ },
+ 'Got docs search result',
+ );
+ return asTextContentResult(resultBody);
+};
+
+export default { metadata, tool, handler };
diff --git a/packages/mcp-server/src/http.ts b/packages/mcp-server/src/http.ts
new file mode 100644
index 00000000..de207820
--- /dev/null
+++ b/packages/mcp-server/src/http.ts
@@ -0,0 +1,173 @@
+// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+import { McpServer } from '@modelcontextprotocol/sdk/server/mcp';
+import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
+import { ClientOptions } from 'lithic';
+import express from 'express';
+import pino from 'pino';
+import pinoHttp from 'pino-http';
+import { getStainlessApiKey, parseClientAuthHeaders } from './auth';
+import { getLogger } from './logger';
+import { McpOptions } from './options';
+import { initMcpServer, newMcpServer } from './server';
+
+const newServer = async ({
+ clientOptions,
+ mcpOptions,
+ req,
+ res,
+}: {
+ clientOptions: ClientOptions;
+ mcpOptions: McpOptions;
+ req: express.Request;
+ res: express.Response;
+}): Promise => {
+ const stainlessApiKey = getStainlessApiKey(req, mcpOptions);
+ const server = await newMcpServer(stainlessApiKey);
+
+ const authOptions = parseClientAuthHeaders(req, false);
+
+ let upstreamClientEnvs: Record | undefined;
+ const clientEnvsHeader = req.headers['x-stainless-mcp-client-envs'];
+ if (typeof clientEnvsHeader === 'string') {
+ try {
+ const parsed = JSON.parse(clientEnvsHeader);
+ if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
+ upstreamClientEnvs = parsed;
+ }
+ } catch {
+ // Ignore malformed header
+ }
+ }
+
+ await initMcpServer({
+ server: server,
+ mcpOptions: mcpOptions,
+ clientOptions: {
+ ...clientOptions,
+ ...authOptions,
+ },
+ stainlessApiKey: stainlessApiKey,
+ upstreamClientEnvs,
+ });
+
+ return server;
+};
+
+const post =
+ (options: { clientOptions: ClientOptions; mcpOptions: McpOptions }) =>
+ async (req: express.Request, res: express.Response) => {
+ const server = await newServer({ ...options, req, res });
+ // If we return null, we already set the authorization error.
+ if (server === null) return;
+ const transport = new StreamableHTTPServerTransport();
+ await server.connect(transport as any);
+ await transport.handleRequest(req, res, req.body);
+ };
+
+const get = async (req: express.Request, res: express.Response) => {
+ res.status(405).json({
+ jsonrpc: '2.0',
+ error: {
+ code: -32000,
+ message: 'Method not supported',
+ },
+ });
+};
+
+const del = async (req: express.Request, res: express.Response) => {
+ res.status(405).json({
+ jsonrpc: '2.0',
+ error: {
+ code: -32000,
+ message: 'Method not supported',
+ },
+ });
+};
+
+const redactHeaders = (headers: Record) => {
+ const hiddenHeaders = /auth|cookie|key|token|x-stainless-mcp-client-envs/i;
+ const filtered = { ...headers };
+ Object.keys(filtered).forEach((key) => {
+ if (hiddenHeaders.test(key)) {
+ filtered[key] = '[REDACTED]';
+ }
+ });
+ return filtered;
+};
+
+export const streamableHTTPApp = ({
+ clientOptions = {},
+ mcpOptions,
+}: {
+ clientOptions?: ClientOptions;
+ mcpOptions: McpOptions;
+}): express.Express => {
+ const app = express();
+ app.set('query parser', 'extended');
+ app.use(express.json());
+ app.use(
+ pinoHttp({
+ logger: getLogger(),
+ customLogLevel: (req, res) => {
+ if (res.statusCode >= 500) {
+ return 'error';
+ } else if (res.statusCode >= 400) {
+ return 'warn';
+ }
+ return 'info';
+ },
+ customSuccessMessage: function (req, res) {
+ return `Request ${req.method} to ${req.url} completed with status ${res.statusCode}`;
+ },
+ customErrorMessage: function (req, res, err) {
+ return `Request ${req.method} to ${req.url} errored with status ${res.statusCode}`;
+ },
+ serializers: {
+ req: pino.stdSerializers.wrapRequestSerializer((req) => {
+ return {
+ ...req,
+ headers: redactHeaders(req.raw.headers),
+ };
+ }),
+ res: pino.stdSerializers.wrapResponseSerializer((res) => {
+ return {
+ ...res,
+ headers: redactHeaders(res.headers),
+ };
+ }),
+ },
+ }),
+ );
+
+ app.get('/health', async (req: express.Request, res: express.Response) => {
+ res.status(200).send('OK');
+ });
+ app.get('/', get);
+ app.post('/', post({ clientOptions, mcpOptions }));
+ app.delete('/', del);
+
+ return app;
+};
+
+export const launchStreamableHTTPServer = async ({
+ mcpOptions,
+ port,
+}: {
+ mcpOptions: McpOptions;
+ port: number | string | undefined;
+}) => {
+ const app = streamableHTTPApp({ mcpOptions });
+ const server = app.listen(port);
+ const address = server.address();
+
+ const logger = getLogger();
+
+ if (typeof address === 'string') {
+ logger.info(`MCP Server running on streamable HTTP at ${address}`);
+ } else if (address !== null) {
+ logger.info(`MCP Server running on streamable HTTP on port ${address.port}`);
+ } else {
+ logger.info(`MCP Server running on streamable HTTP on port ${port}`);
+ }
+};
diff --git a/packages/mcp-server/src/index.ts b/packages/mcp-server/src/index.ts
new file mode 100644
index 00000000..5bca4a60
--- /dev/null
+++ b/packages/mcp-server/src/index.ts
@@ -0,0 +1,67 @@
+#!/usr/bin/env node
+
+import { selectTools } from './server';
+import { McpOptions, parseCLIOptions } from './options';
+import { launchStdioServer } from './stdio';
+import { launchStreamableHTTPServer } from './http';
+import type { McpTool } from './types';
+import { configureLogger, getLogger } from './logger';
+
+async function main() {
+ const options = parseOptionsOrError();
+ configureLogger({
+ level: options.debug ? 'debug' : 'info',
+ pretty: options.logFormat === 'pretty',
+ });
+
+ const selectedTools = await selectToolsOrError(options);
+
+ getLogger().info(
+ { tools: selectedTools.map((e) => e.tool.name) },
+ `MCP Server starting with ${selectedTools.length} tools`,
+ );
+
+ switch (options.transport) {
+ case 'stdio':
+ await launchStdioServer(options);
+ break;
+ case 'http':
+ await launchStreamableHTTPServer({
+ mcpOptions: options,
+ port: options.socket ?? options.port,
+ });
+ break;
+ }
+}
+
+if (require.main === module) {
+ main().catch((error) => {
+ // Logger might not be initialized yet
+ console.error('Fatal error in main()', error);
+ process.exit(1);
+ });
+}
+
+function parseOptionsOrError() {
+ try {
+ return parseCLIOptions();
+ } catch (error) {
+ // Logger is initialized after options, so use console.error here
+ console.error('Error parsing options', error);
+ process.exit(1);
+ }
+}
+
+async function selectToolsOrError(options: McpOptions): Promise {
+ try {
+ const includedTools = selectTools(options);
+ if (includedTools.length === 0) {
+ getLogger().error('No tools match the provided filters');
+ process.exit(1);
+ }
+ return includedTools;
+ } catch (error) {
+ getLogger().error({ error }, 'Error filtering tools');
+ process.exit(1);
+ }
+}
diff --git a/packages/mcp-server/src/instructions.ts b/packages/mcp-server/src/instructions.ts
new file mode 100644
index 00000000..53deb6fc
--- /dev/null
+++ b/packages/mcp-server/src/instructions.ts
@@ -0,0 +1,60 @@
+// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+import { readEnv } from './util';
+import { getLogger } from './logger';
+
+const INSTRUCTIONS_CACHE_TTL_MS = 15 * 60 * 1000; // 15 minutes
+
+interface InstructionsCacheEntry {
+ fetchedInstructions: string;
+ fetchedAt: number;
+}
+
+const instructionsCache = new Map();
+
+export async function getInstructions(stainlessApiKey: string | undefined): Promise {
+ const now = Date.now();
+ const cacheKey = stainlessApiKey ?? '';
+ const cached = instructionsCache.get(cacheKey);
+
+ if (cached && now - cached.fetchedAt <= INSTRUCTIONS_CACHE_TTL_MS) {
+ return cached.fetchedInstructions;
+ }
+
+ // Evict stale entries so the cache doesn't grow unboundedly.
+ for (const [key, entry] of instructionsCache) {
+ if (now - entry.fetchedAt > INSTRUCTIONS_CACHE_TTL_MS) {
+ instructionsCache.delete(key);
+ }
+ }
+
+ const fetchedInstructions = await fetchLatestInstructions(stainlessApiKey);
+ instructionsCache.set(cacheKey, { fetchedInstructions, fetchedAt: now });
+ return fetchedInstructions;
+}
+
+async function fetchLatestInstructions(stainlessApiKey: string | undefined): Promise {
+ // Setting the stainless API key is optional, but may be required
+ // to authenticate requests to the Stainless API.
+ const response = await fetch(
+ readEnv('CODE_MODE_INSTRUCTIONS_URL') ?? 'https://api.stainless.com/api/ai/instructions/lithic',
+ {
+ method: 'GET',
+ headers: { ...(stainlessApiKey && { Authorization: stainlessApiKey }) },
+ },
+ );
+
+ let instructions: string | undefined;
+ if (!response.ok) {
+ getLogger().warn(
+ 'Warning: failed to retrieve MCP server instructions. Proceeding with default instructions...',
+ );
+
+ instructions =
+ '\n This is the lithic MCP server.\n\n Available tools:\n - search_docs: Search SDK documentation to find the right methods and parameters.\n - execute: Run TypeScript code against a pre-authenticated SDK client. Define an async run(client) function.\n\n Workflow:\n - If unsure about the API, call search_docs first.\n - Write complete solutions in a single execute call when possible. For large datasets, use API filters to narrow results or paginate within a single execute block.\n - If execute returns an error, read the error and fix your code rather than retrying the same approach.\n - Variables do not persist between execute calls. Return or log all data you need.\n - Individual HTTP requests to the API have a 30-second timeout. If a request times out, try a smaller query or add filters.\n - Code execution has a total timeout of approximately 5 minutes. If your code times out, simplify it or break it into smaller steps.\n ';
+ }
+
+ instructions ??= ((await response.json()) as { instructions: string }).instructions;
+
+ return instructions;
+}
diff --git a/packages/mcp-server/src/logger.ts b/packages/mcp-server/src/logger.ts
new file mode 100644
index 00000000..29dab11c
--- /dev/null
+++ b/packages/mcp-server/src/logger.ts
@@ -0,0 +1,28 @@
+// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+import { pino, type Level, type Logger } from 'pino';
+import pretty from 'pino-pretty';
+
+let _logger: Logger | undefined;
+
+export function configureLogger({ level, pretty: usePretty }: { level: Level; pretty: boolean }): void {
+ _logger = pino(
+ {
+ level,
+ timestamp: pino.stdTimeFunctions.isoTime,
+ formatters: {
+ level(label) {
+ return { level: label };
+ },
+ },
+ },
+ usePretty ? pretty({ colorize: true, levelFirst: true, destination: 2 }) : process.stderr,
+ );
+}
+
+export function getLogger(): Logger {
+ if (!_logger) {
+ throw new Error('Logger has not been configured. Call configureLogger() before using the logger.');
+ }
+ return _logger;
+}
diff --git a/packages/mcp-server/src/methods.ts b/packages/mcp-server/src/methods.ts
new file mode 100644
index 00000000..6e3324b9
--- /dev/null
+++ b/packages/mcp-server/src/methods.ts
@@ -0,0 +1,1234 @@
+// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+import { McpOptions } from './options';
+
+export type SdkMethod = {
+ clientCallName: string;
+ fullyQualifiedName: string;
+ httpMethod?: 'get' | 'post' | 'put' | 'patch' | 'delete' | 'query';
+ httpPath?: string;
+};
+
+export const sdkMethods: SdkMethod[] = [
+ {
+ clientCallName: 'client.apiStatus',
+ fullyQualifiedName: 'apiStatus',
+ httpMethod: 'get',
+ httpPath: '/v1/status',
+ },
+ {
+ clientCallName: 'client.accounts.retrieve',
+ fullyQualifiedName: 'accounts.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/accounts/{account_token}',
+ },
+ {
+ clientCallName: 'client.accounts.update',
+ fullyQualifiedName: 'accounts.update',
+ httpMethod: 'patch',
+ httpPath: '/v1/accounts/{account_token}',
+ },
+ {
+ clientCallName: 'client.accounts.list',
+ fullyQualifiedName: 'accounts.list',
+ httpMethod: 'get',
+ httpPath: '/v1/accounts',
+ },
+ {
+ clientCallName: 'client.accounts.retrieveSpendLimits',
+ fullyQualifiedName: 'accounts.retrieveSpendLimits',
+ httpMethod: 'get',
+ httpPath: '/v1/accounts/{account_token}/spend_limits',
+ },
+ {
+ clientCallName: 'client.accountHolders.create',
+ fullyQualifiedName: 'accountHolders.create',
+ httpMethod: 'post',
+ httpPath: '/v1/account_holders',
+ },
+ {
+ clientCallName: 'client.accountHolders.retrieve',
+ fullyQualifiedName: 'accountHolders.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/account_holders/{account_holder_token}',
+ },
+ {
+ clientCallName: 'client.accountHolders.update',
+ fullyQualifiedName: 'accountHolders.update',
+ httpMethod: 'patch',
+ httpPath: '/v1/account_holders/{account_holder_token}',
+ },
+ {
+ clientCallName: 'client.accountHolders.list',
+ fullyQualifiedName: 'accountHolders.list',
+ httpMethod: 'get',
+ httpPath: '/v1/account_holders',
+ },
+ {
+ clientCallName: 'client.accountHolders.listDocuments',
+ fullyQualifiedName: 'accountHolders.listDocuments',
+ httpMethod: 'get',
+ httpPath: '/v1/account_holders/{account_holder_token}/documents',
+ },
+ {
+ clientCallName: 'client.accountHolders.retrieveDocument',
+ fullyQualifiedName: 'accountHolders.retrieveDocument',
+ httpMethod: 'get',
+ httpPath: '/v1/account_holders/{account_holder_token}/documents/{document_token}',
+ },
+ {
+ clientCallName: 'client.accountHolders.simulateEnrollmentDocumentReview',
+ fullyQualifiedName: 'accountHolders.simulateEnrollmentDocumentReview',
+ httpMethod: 'post',
+ httpPath: '/v1/simulate/account_holders/enrollment_document_review',
+ },
+ {
+ clientCallName: 'client.accountHolders.simulateEnrollmentReview',
+ fullyQualifiedName: 'accountHolders.simulateEnrollmentReview',
+ httpMethod: 'post',
+ httpPath: '/v1/simulate/account_holders/enrollment_review',
+ },
+ {
+ clientCallName: 'client.accountHolders.uploadDocument',
+ fullyQualifiedName: 'accountHolders.uploadDocument',
+ httpMethod: 'post',
+ httpPath: '/v1/account_holders/{account_holder_token}/documents',
+ },
+ {
+ clientCallName: 'client.accountHolders.entities.create',
+ fullyQualifiedName: 'accountHolders.entities.create',
+ httpMethod: 'post',
+ httpPath: '/v1/account_holders/{account_holder_token}/entities',
+ },
+ {
+ clientCallName: 'client.accountHolders.entities.delete',
+ fullyQualifiedName: 'accountHolders.entities.delete',
+ httpMethod: 'delete',
+ httpPath: '/v1/account_holders/{account_holder_token}/entities/{entity_token}',
+ },
+ {
+ clientCallName: 'client.authRules.v2.create',
+ fullyQualifiedName: 'authRules.v2.create',
+ httpMethod: 'post',
+ httpPath: '/v2/auth_rules',
+ },
+ {
+ clientCallName: 'client.authRules.v2.retrieve',
+ fullyQualifiedName: 'authRules.v2.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v2/auth_rules/{auth_rule_token}',
+ },
+ {
+ clientCallName: 'client.authRules.v2.update',
+ fullyQualifiedName: 'authRules.v2.update',
+ httpMethod: 'patch',
+ httpPath: '/v2/auth_rules/{auth_rule_token}',
+ },
+ {
+ clientCallName: 'client.authRules.v2.list',
+ fullyQualifiedName: 'authRules.v2.list',
+ httpMethod: 'get',
+ httpPath: '/v2/auth_rules',
+ },
+ {
+ clientCallName: 'client.authRules.v2.delete',
+ fullyQualifiedName: 'authRules.v2.delete',
+ httpMethod: 'delete',
+ httpPath: '/v2/auth_rules/{auth_rule_token}',
+ },
+ {
+ clientCallName: 'client.authRules.v2.draft',
+ fullyQualifiedName: 'authRules.v2.draft',
+ httpMethod: 'post',
+ httpPath: '/v2/auth_rules/{auth_rule_token}/draft',
+ },
+ {
+ clientCallName: 'client.authRules.v2.listResults',
+ fullyQualifiedName: 'authRules.v2.listResults',
+ httpMethod: 'get',
+ httpPath: '/v2/auth_rules/results',
+ },
+ {
+ clientCallName: 'client.authRules.v2.listVersions',
+ fullyQualifiedName: 'authRules.v2.listVersions',
+ httpMethod: 'get',
+ httpPath: '/v2/auth_rules/{auth_rule_token}/versions',
+ },
+ {
+ clientCallName: 'client.authRules.v2.promote',
+ fullyQualifiedName: 'authRules.v2.promote',
+ httpMethod: 'post',
+ httpPath: '/v2/auth_rules/{auth_rule_token}/promote',
+ },
+ {
+ clientCallName: 'client.authRules.v2.retrieveFeatures',
+ fullyQualifiedName: 'authRules.v2.retrieveFeatures',
+ httpMethod: 'get',
+ httpPath: '/v2/auth_rules/{auth_rule_token}/features',
+ },
+ {
+ clientCallName: 'client.authRules.v2.retrieveReport',
+ fullyQualifiedName: 'authRules.v2.retrieveReport',
+ httpMethod: 'get',
+ httpPath: '/v2/auth_rules/{auth_rule_token}/report',
+ },
+ {
+ clientCallName: 'client.authRules.v2.backtests.create',
+ fullyQualifiedName: 'authRules.v2.backtests.create',
+ httpMethod: 'post',
+ httpPath: '/v2/auth_rules/{auth_rule_token}/backtests',
+ },
+ {
+ clientCallName: 'client.authRules.v2.backtests.retrieve',
+ fullyQualifiedName: 'authRules.v2.backtests.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v2/auth_rules/{auth_rule_token}/backtests/{auth_rule_backtest_token}',
+ },
+ {
+ clientCallName: 'client.authStreamEnrollment.retrieveSecret',
+ fullyQualifiedName: 'authStreamEnrollment.retrieveSecret',
+ httpMethod: 'get',
+ httpPath: '/v1/auth_stream/secret',
+ },
+ {
+ clientCallName: 'client.authStreamEnrollment.rotateSecret',
+ fullyQualifiedName: 'authStreamEnrollment.rotateSecret',
+ httpMethod: 'post',
+ httpPath: '/v1/auth_stream/secret/rotate',
+ },
+ {
+ clientCallName: 'client.tokenizationDecisioning.retrieveSecret',
+ fullyQualifiedName: 'tokenizationDecisioning.retrieveSecret',
+ httpMethod: 'get',
+ httpPath: '/v1/tokenization_decisioning/secret',
+ },
+ {
+ clientCallName: 'client.tokenizationDecisioning.rotateSecret',
+ fullyQualifiedName: 'tokenizationDecisioning.rotateSecret',
+ httpMethod: 'post',
+ httpPath: '/v1/tokenization_decisioning/secret/rotate',
+ },
+ {
+ clientCallName: 'client.tokenizations.retrieve',
+ fullyQualifiedName: 'tokenizations.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/tokenizations/{tokenization_token}',
+ },
+ {
+ clientCallName: 'client.tokenizations.list',
+ fullyQualifiedName: 'tokenizations.list',
+ httpMethod: 'get',
+ httpPath: '/v1/tokenizations',
+ },
+ {
+ clientCallName: 'client.tokenizations.activate',
+ fullyQualifiedName: 'tokenizations.activate',
+ httpMethod: 'post',
+ httpPath: '/v1/tokenizations/{tokenization_token}/activate',
+ },
+ {
+ clientCallName: 'client.tokenizations.deactivate',
+ fullyQualifiedName: 'tokenizations.deactivate',
+ httpMethod: 'post',
+ httpPath: '/v1/tokenizations/{tokenization_token}/deactivate',
+ },
+ {
+ clientCallName: 'client.tokenizations.pause',
+ fullyQualifiedName: 'tokenizations.pause',
+ httpMethod: 'post',
+ httpPath: '/v1/tokenizations/{tokenization_token}/pause',
+ },
+ {
+ clientCallName: 'client.tokenizations.resendActivationCode',
+ fullyQualifiedName: 'tokenizations.resendActivationCode',
+ httpMethod: 'post',
+ httpPath: '/v1/tokenizations/{tokenization_token}/resend_activation_code',
+ },
+ {
+ clientCallName: 'client.tokenizations.simulate',
+ fullyQualifiedName: 'tokenizations.simulate',
+ httpMethod: 'post',
+ httpPath: '/v1/simulate/tokenizations',
+ },
+ {
+ clientCallName: 'client.tokenizations.unpause',
+ fullyQualifiedName: 'tokenizations.unpause',
+ httpMethod: 'post',
+ httpPath: '/v1/tokenizations/{tokenization_token}/unpause',
+ },
+ {
+ clientCallName: 'client.tokenizations.updateDigitalCardArt',
+ fullyQualifiedName: 'tokenizations.updateDigitalCardArt',
+ httpMethod: 'post',
+ httpPath: '/v1/tokenizations/{tokenization_token}/update_digital_card_art',
+ },
+ {
+ clientCallName: 'client.cards.create',
+ fullyQualifiedName: 'cards.create',
+ httpMethod: 'post',
+ httpPath: '/v1/cards',
+ },
+ {
+ clientCallName: 'client.cards.retrieve',
+ fullyQualifiedName: 'cards.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/cards/{card_token}',
+ },
+ {
+ clientCallName: 'client.cards.update',
+ fullyQualifiedName: 'cards.update',
+ httpMethod: 'patch',
+ httpPath: '/v1/cards/{card_token}',
+ },
+ {
+ clientCallName: 'client.cards.list',
+ fullyQualifiedName: 'cards.list',
+ httpMethod: 'get',
+ httpPath: '/v1/cards',
+ },
+ {
+ clientCallName: 'client.cards.convertPhysical',
+ fullyQualifiedName: 'cards.convertPhysical',
+ httpMethod: 'post',
+ httpPath: '/v1/cards/{card_token}/convert_physical',
+ },
+ {
+ clientCallName: 'client.cards.embed',
+ fullyQualifiedName: 'cards.embed',
+ httpMethod: 'get',
+ httpPath: '/v1/embed/card',
+ },
+ {
+ clientCallName: 'client.cards.provision',
+ fullyQualifiedName: 'cards.provision',
+ httpMethod: 'post',
+ httpPath: '/v1/cards/{card_token}/provision',
+ },
+ {
+ clientCallName: 'client.cards.reissue',
+ fullyQualifiedName: 'cards.reissue',
+ httpMethod: 'post',
+ httpPath: '/v1/cards/{card_token}/reissue',
+ },
+ {
+ clientCallName: 'client.cards.renew',
+ fullyQualifiedName: 'cards.renew',
+ httpMethod: 'post',
+ httpPath: '/v1/cards/{card_token}/renew',
+ },
+ {
+ clientCallName: 'client.cards.retrieveSpendLimits',
+ fullyQualifiedName: 'cards.retrieveSpendLimits',
+ httpMethod: 'get',
+ httpPath: '/v1/cards/{card_token}/spend_limits',
+ },
+ {
+ clientCallName: 'client.cards.searchByPan',
+ fullyQualifiedName: 'cards.searchByPan',
+ httpMethod: 'post',
+ httpPath: '/v1/cards/search_by_pan',
+ },
+ {
+ clientCallName: 'client.cards.webProvision',
+ fullyQualifiedName: 'cards.webProvision',
+ httpMethod: 'post',
+ httpPath: '/v1/cards/{card_token}/web_provision',
+ },
+ {
+ clientCallName: 'client.cards.balances.list',
+ fullyQualifiedName: 'cards.balances.list',
+ httpMethod: 'get',
+ httpPath: '/v1/cards/{card_token}/balances',
+ },
+ {
+ clientCallName: 'client.cards.financialTransactions.retrieve',
+ fullyQualifiedName: 'cards.financialTransactions.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/cards/{card_token}/financial_transactions/{financial_transaction_token}',
+ },
+ {
+ clientCallName: 'client.cards.financialTransactions.list',
+ fullyQualifiedName: 'cards.financialTransactions.list',
+ httpMethod: 'get',
+ httpPath: '/v1/cards/{card_token}/financial_transactions',
+ },
+ {
+ clientCallName: 'client.cardBulkOrders.create',
+ fullyQualifiedName: 'cardBulkOrders.create',
+ httpMethod: 'post',
+ httpPath: '/v1/card_bulk_orders',
+ },
+ {
+ clientCallName: 'client.cardBulkOrders.retrieve',
+ fullyQualifiedName: 'cardBulkOrders.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/card_bulk_orders/{bulk_order_token}',
+ },
+ {
+ clientCallName: 'client.cardBulkOrders.update',
+ fullyQualifiedName: 'cardBulkOrders.update',
+ httpMethod: 'patch',
+ httpPath: '/v1/card_bulk_orders/{bulk_order_token}',
+ },
+ {
+ clientCallName: 'client.cardBulkOrders.list',
+ fullyQualifiedName: 'cardBulkOrders.list',
+ httpMethod: 'get',
+ httpPath: '/v1/card_bulk_orders',
+ },
+ {
+ clientCallName: 'client.balances.list',
+ fullyQualifiedName: 'balances.list',
+ httpMethod: 'get',
+ httpPath: '/v1/balances',
+ },
+ {
+ clientCallName: 'client.disputes.create',
+ fullyQualifiedName: 'disputes.create',
+ httpMethod: 'post',
+ httpPath: '/v1/disputes',
+ },
+ {
+ clientCallName: 'client.disputes.retrieve',
+ fullyQualifiedName: 'disputes.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/disputes/{dispute_token}',
+ },
+ {
+ clientCallName: 'client.disputes.update',
+ fullyQualifiedName: 'disputes.update',
+ httpMethod: 'patch',
+ httpPath: '/v1/disputes/{dispute_token}',
+ },
+ {
+ clientCallName: 'client.disputes.list',
+ fullyQualifiedName: 'disputes.list',
+ httpMethod: 'get',
+ httpPath: '/v1/disputes',
+ },
+ {
+ clientCallName: 'client.disputes.delete',
+ fullyQualifiedName: 'disputes.delete',
+ httpMethod: 'delete',
+ httpPath: '/v1/disputes/{dispute_token}',
+ },
+ {
+ clientCallName: 'client.disputes.deleteEvidence',
+ fullyQualifiedName: 'disputes.deleteEvidence',
+ httpMethod: 'delete',
+ httpPath: '/v1/disputes/{dispute_token}/evidences/{evidence_token}',
+ },
+ {
+ clientCallName: 'client.disputes.initiateEvidenceUpload',
+ fullyQualifiedName: 'disputes.initiateEvidenceUpload',
+ httpMethod: 'post',
+ httpPath: '/v1/disputes/{dispute_token}/evidences',
+ },
+ {
+ clientCallName: 'client.disputes.listEvidences',
+ fullyQualifiedName: 'disputes.listEvidences',
+ httpMethod: 'get',
+ httpPath: '/v1/disputes/{dispute_token}/evidences',
+ },
+ {
+ clientCallName: 'client.disputes.retrieveEvidence',
+ fullyQualifiedName: 'disputes.retrieveEvidence',
+ httpMethod: 'get',
+ httpPath: '/v1/disputes/{dispute_token}/evidences/{evidence_token}',
+ },
+ {
+ clientCallName: 'client.disputesV2.retrieve',
+ fullyQualifiedName: 'disputesV2.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v2/disputes/{dispute_token}',
+ },
+ {
+ clientCallName: 'client.disputesV2.list',
+ fullyQualifiedName: 'disputesV2.list',
+ httpMethod: 'get',
+ httpPath: '/v2/disputes',
+ },
+ {
+ clientCallName: 'client.events.retrieve',
+ fullyQualifiedName: 'events.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/events/{event_token}',
+ },
+ {
+ clientCallName: 'client.events.list',
+ fullyQualifiedName: 'events.list',
+ httpMethod: 'get',
+ httpPath: '/v1/events',
+ },
+ {
+ clientCallName: 'client.events.listAttempts',
+ fullyQualifiedName: 'events.listAttempts',
+ httpMethod: 'get',
+ httpPath: '/v1/events/{event_token}/attempts',
+ },
+ {
+ clientCallName: 'client.events.subscriptions.create',
+ fullyQualifiedName: 'events.subscriptions.create',
+ httpMethod: 'post',
+ httpPath: '/v1/event_subscriptions',
+ },
+ {
+ clientCallName: 'client.events.subscriptions.retrieve',
+ fullyQualifiedName: 'events.subscriptions.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/event_subscriptions/{event_subscription_token}',
+ },
+ {
+ clientCallName: 'client.events.subscriptions.update',
+ fullyQualifiedName: 'events.subscriptions.update',
+ httpMethod: 'patch',
+ httpPath: '/v1/event_subscriptions/{event_subscription_token}',
+ },
+ {
+ clientCallName: 'client.events.subscriptions.list',
+ fullyQualifiedName: 'events.subscriptions.list',
+ httpMethod: 'get',
+ httpPath: '/v1/event_subscriptions',
+ },
+ {
+ clientCallName: 'client.events.subscriptions.delete',
+ fullyQualifiedName: 'events.subscriptions.delete',
+ httpMethod: 'delete',
+ httpPath: '/v1/event_subscriptions/{event_subscription_token}',
+ },
+ {
+ clientCallName: 'client.events.subscriptions.listAttempts',
+ fullyQualifiedName: 'events.subscriptions.listAttempts',
+ httpMethod: 'get',
+ httpPath: '/v1/event_subscriptions/{event_subscription_token}/attempts',
+ },
+ {
+ clientCallName: 'client.events.subscriptions.recover',
+ fullyQualifiedName: 'events.subscriptions.recover',
+ httpMethod: 'post',
+ httpPath: '/v1/event_subscriptions/{event_subscription_token}/recover',
+ },
+ {
+ clientCallName: 'client.events.subscriptions.replayMissing',
+ fullyQualifiedName: 'events.subscriptions.replayMissing',
+ httpMethod: 'post',
+ httpPath: '/v1/event_subscriptions/{event_subscription_token}/replay_missing',
+ },
+ {
+ clientCallName: 'client.events.subscriptions.retrieveSecret',
+ fullyQualifiedName: 'events.subscriptions.retrieveSecret',
+ httpMethod: 'get',
+ httpPath: '/v1/event_subscriptions/{event_subscription_token}/secret',
+ },
+ {
+ clientCallName: 'client.events.subscriptions.rotateSecret',
+ fullyQualifiedName: 'events.subscriptions.rotateSecret',
+ httpMethod: 'post',
+ httpPath: '/v1/event_subscriptions/{event_subscription_token}/secret/rotate',
+ },
+ {
+ clientCallName: 'client.events.subscriptions.sendSimulatedExample',
+ fullyQualifiedName: 'events.subscriptions.sendSimulatedExample',
+ httpMethod: 'post',
+ httpPath: '/v1/simulate/event_subscriptions/{event_subscription_token}/send_example',
+ },
+ {
+ clientCallName: 'client.events.eventSubscriptions.resend',
+ fullyQualifiedName: 'events.eventSubscriptions.resend',
+ httpMethod: 'post',
+ httpPath: '/v1/events/{event_token}/event_subscriptions/{event_subscription_token}/resend',
+ },
+ {
+ clientCallName: 'client.transfers.create',
+ fullyQualifiedName: 'transfers.create',
+ httpMethod: 'post',
+ httpPath: '/v1/transfer',
+ },
+ {
+ clientCallName: 'client.financialAccounts.create',
+ fullyQualifiedName: 'financialAccounts.create',
+ httpMethod: 'post',
+ httpPath: '/v1/financial_accounts',
+ },
+ {
+ clientCallName: 'client.financialAccounts.retrieve',
+ fullyQualifiedName: 'financialAccounts.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/financial_accounts/{financial_account_token}',
+ },
+ {
+ clientCallName: 'client.financialAccounts.update',
+ fullyQualifiedName: 'financialAccounts.update',
+ httpMethod: 'patch',
+ httpPath: '/v1/financial_accounts/{financial_account_token}',
+ },
+ {
+ clientCallName: 'client.financialAccounts.list',
+ fullyQualifiedName: 'financialAccounts.list',
+ httpMethod: 'get',
+ httpPath: '/v1/financial_accounts',
+ },
+ {
+ clientCallName: 'client.financialAccounts.registerAccountNumber',
+ fullyQualifiedName: 'financialAccounts.registerAccountNumber',
+ httpMethod: 'post',
+ httpPath: '/v1/financial_accounts/{financial_account_token}/register_account_number',
+ },
+ {
+ clientCallName: 'client.financialAccounts.updateStatus',
+ fullyQualifiedName: 'financialAccounts.updateStatus',
+ httpMethod: 'post',
+ httpPath: '/v1/financial_accounts/{financial_account_token}/update_status',
+ },
+ {
+ clientCallName: 'client.financialAccounts.balances.list',
+ fullyQualifiedName: 'financialAccounts.balances.list',
+ httpMethod: 'get',
+ httpPath: '/v1/financial_accounts/{financial_account_token}/balances',
+ },
+ {
+ clientCallName: 'client.financialAccounts.financialTransactions.retrieve',
+ fullyQualifiedName: 'financialAccounts.financialTransactions.retrieve',
+ httpMethod: 'get',
+ httpPath:
+ '/v1/financial_accounts/{financial_account_token}/financial_transactions/{financial_transaction_token}',
+ },
+ {
+ clientCallName: 'client.financialAccounts.financialTransactions.list',
+ fullyQualifiedName: 'financialAccounts.financialTransactions.list',
+ httpMethod: 'get',
+ httpPath: '/v1/financial_accounts/{financial_account_token}/financial_transactions',
+ },
+ {
+ clientCallName: 'client.financialAccounts.creditConfiguration.retrieve',
+ fullyQualifiedName: 'financialAccounts.creditConfiguration.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/financial_accounts/{financial_account_token}/credit_configuration',
+ },
+ {
+ clientCallName: 'client.financialAccounts.creditConfiguration.update',
+ fullyQualifiedName: 'financialAccounts.creditConfiguration.update',
+ httpMethod: 'patch',
+ httpPath: '/v1/financial_accounts/{financial_account_token}/credit_configuration',
+ },
+ {
+ clientCallName: 'client.financialAccounts.statements.retrieve',
+ fullyQualifiedName: 'financialAccounts.statements.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/financial_accounts/{financial_account_token}/statements/{statement_token}',
+ },
+ {
+ clientCallName: 'client.financialAccounts.statements.list',
+ fullyQualifiedName: 'financialAccounts.statements.list',
+ httpMethod: 'get',
+ httpPath: '/v1/financial_accounts/{financial_account_token}/statements',
+ },
+ {
+ clientCallName: 'client.financialAccounts.statements.lineItems.list',
+ fullyQualifiedName: 'financialAccounts.statements.lineItems.list',
+ httpMethod: 'get',
+ httpPath: '/v1/financial_accounts/{financial_account_token}/statements/{statement_token}/line_items',
+ },
+ {
+ clientCallName: 'client.financialAccounts.loanTapes.retrieve',
+ fullyQualifiedName: 'financialAccounts.loanTapes.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/financial_accounts/{financial_account_token}/loan_tapes/{loan_tape_token}',
+ },
+ {
+ clientCallName: 'client.financialAccounts.loanTapes.list',
+ fullyQualifiedName: 'financialAccounts.loanTapes.list',
+ httpMethod: 'get',
+ httpPath: '/v1/financial_accounts/{financial_account_token}/loan_tapes',
+ },
+ {
+ clientCallName: 'client.financialAccounts.loanTapeConfiguration.retrieve',
+ fullyQualifiedName: 'financialAccounts.loanTapeConfiguration.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/financial_accounts/{financial_account_token}/loan_tape_configuration',
+ },
+ {
+ clientCallName: 'client.financialAccounts.interestTierSchedule.create',
+ fullyQualifiedName: 'financialAccounts.interestTierSchedule.create',
+ httpMethod: 'post',
+ httpPath: '/v1/financial_accounts/{financial_account_token}/interest_tier_schedule',
+ },
+ {
+ clientCallName: 'client.financialAccounts.interestTierSchedule.retrieve',
+ fullyQualifiedName: 'financialAccounts.interestTierSchedule.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/financial_accounts/{financial_account_token}/interest_tier_schedule/{effective_date}',
+ },
+ {
+ clientCallName: 'client.financialAccounts.interestTierSchedule.update',
+ fullyQualifiedName: 'financialAccounts.interestTierSchedule.update',
+ httpMethod: 'put',
+ httpPath: '/v1/financial_accounts/{financial_account_token}/interest_tier_schedule/{effective_date}',
+ },
+ {
+ clientCallName: 'client.financialAccounts.interestTierSchedule.list',
+ fullyQualifiedName: 'financialAccounts.interestTierSchedule.list',
+ httpMethod: 'get',
+ httpPath: '/v1/financial_accounts/{financial_account_token}/interest_tier_schedule',
+ },
+ {
+ clientCallName: 'client.financialAccounts.interestTierSchedule.delete',
+ fullyQualifiedName: 'financialAccounts.interestTierSchedule.delete',
+ httpMethod: 'delete',
+ httpPath: '/v1/financial_accounts/{financial_account_token}/interest_tier_schedule/{effective_date}',
+ },
+ {
+ clientCallName: 'client.transactions.retrieve',
+ fullyQualifiedName: 'transactions.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/transactions/{transaction_token}',
+ },
+ {
+ clientCallName: 'client.transactions.list',
+ fullyQualifiedName: 'transactions.list',
+ httpMethod: 'get',
+ httpPath: '/v1/transactions',
+ },
+ {
+ clientCallName: 'client.transactions.expireAuthorization',
+ fullyQualifiedName: 'transactions.expireAuthorization',
+ httpMethod: 'post',
+ httpPath: '/v1/transactions/{transaction_token}/expire_authorization',
+ },
+ {
+ clientCallName: 'client.transactions.simulateAuthorization',
+ fullyQualifiedName: 'transactions.simulateAuthorization',
+ httpMethod: 'post',
+ httpPath: '/v1/simulate/authorize',
+ },
+ {
+ clientCallName: 'client.transactions.simulateAuthorizationAdvice',
+ fullyQualifiedName: 'transactions.simulateAuthorizationAdvice',
+ httpMethod: 'post',
+ httpPath: '/v1/simulate/authorization_advice',
+ },
+ {
+ clientCallName: 'client.transactions.simulateClearing',
+ fullyQualifiedName: 'transactions.simulateClearing',
+ httpMethod: 'post',
+ httpPath: '/v1/simulate/clearing',
+ },
+ {
+ clientCallName: 'client.transactions.simulateCreditAuthorization',
+ fullyQualifiedName: 'transactions.simulateCreditAuthorization',
+ httpMethod: 'post',
+ httpPath: '/v1/simulate/credit_authorization_advice',
+ },
+ {
+ clientCallName: 'client.transactions.simulateCreditAuthorizationAdvice',
+ fullyQualifiedName: 'transactions.simulateCreditAuthorizationAdvice',
+ httpMethod: 'post',
+ httpPath: '/v1/simulate/credit_authorization_advice',
+ },
+ {
+ clientCallName: 'client.transactions.simulateReturn',
+ fullyQualifiedName: 'transactions.simulateReturn',
+ httpMethod: 'post',
+ httpPath: '/v1/simulate/return',
+ },
+ {
+ clientCallName: 'client.transactions.simulateReturnReversal',
+ fullyQualifiedName: 'transactions.simulateReturnReversal',
+ httpMethod: 'post',
+ httpPath: '/v1/simulate/return_reversal',
+ },
+ {
+ clientCallName: 'client.transactions.simulateVoid',
+ fullyQualifiedName: 'transactions.simulateVoid',
+ httpMethod: 'post',
+ httpPath: '/v1/simulate/void',
+ },
+ {
+ clientCallName: 'client.transactions.enhancedCommercialData.retrieve',
+ fullyQualifiedName: 'transactions.enhancedCommercialData.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/transactions/{transaction_token}/enhanced_commercial_data',
+ },
+ {
+ clientCallName: 'client.transactions.events.enhancedCommercialData.retrieve',
+ fullyQualifiedName: 'transactions.events.enhancedCommercialData.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/transactions/events/{event_token}/enhanced_commercial_data',
+ },
+ {
+ clientCallName: 'client.responderEndpoints.create',
+ fullyQualifiedName: 'responderEndpoints.create',
+ httpMethod: 'post',
+ httpPath: '/v1/responder_endpoints',
+ },
+ {
+ clientCallName: 'client.responderEndpoints.delete',
+ fullyQualifiedName: 'responderEndpoints.delete',
+ httpMethod: 'delete',
+ httpPath: '/v1/responder_endpoints',
+ },
+ {
+ clientCallName: 'client.responderEndpoints.checkStatus',
+ fullyQualifiedName: 'responderEndpoints.checkStatus',
+ httpMethod: 'get',
+ httpPath: '/v1/responder_endpoints',
+ },
+ {
+ clientCallName: 'client.externalBankAccounts.create',
+ fullyQualifiedName: 'externalBankAccounts.create',
+ httpMethod: 'post',
+ httpPath: '/v1/external_bank_accounts',
+ },
+ {
+ clientCallName: 'client.externalBankAccounts.retrieve',
+ fullyQualifiedName: 'externalBankAccounts.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/external_bank_accounts/{external_bank_account_token}',
+ },
+ {
+ clientCallName: 'client.externalBankAccounts.update',
+ fullyQualifiedName: 'externalBankAccounts.update',
+ httpMethod: 'patch',
+ httpPath: '/v1/external_bank_accounts/{external_bank_account_token}',
+ },
+ {
+ clientCallName: 'client.externalBankAccounts.list',
+ fullyQualifiedName: 'externalBankAccounts.list',
+ httpMethod: 'get',
+ httpPath: '/v1/external_bank_accounts',
+ },
+ {
+ clientCallName: 'client.externalBankAccounts.retryMicroDeposits',
+ fullyQualifiedName: 'externalBankAccounts.retryMicroDeposits',
+ httpMethod: 'post',
+ httpPath: '/v1/external_bank_accounts/{external_bank_account_token}/retry_micro_deposits',
+ },
+ {
+ clientCallName: 'client.externalBankAccounts.retryPrenote',
+ fullyQualifiedName: 'externalBankAccounts.retryPrenote',
+ httpMethod: 'post',
+ httpPath: '/v1/external_bank_accounts/{external_bank_account_token}/retry_prenote',
+ },
+ {
+ clientCallName: 'client.externalBankAccounts.unpause',
+ fullyQualifiedName: 'externalBankAccounts.unpause',
+ httpMethod: 'post',
+ httpPath: '/v1/external_bank_accounts/{external_bank_account_token}/unpause',
+ },
+ {
+ clientCallName: 'client.externalBankAccounts.microDeposits.create',
+ fullyQualifiedName: 'externalBankAccounts.microDeposits.create',
+ httpMethod: 'post',
+ httpPath: '/v1/external_bank_accounts/{external_bank_account_token}/micro_deposits',
+ },
+ {
+ clientCallName: 'client.payments.create',
+ fullyQualifiedName: 'payments.create',
+ httpMethod: 'post',
+ httpPath: '/v1/payments',
+ },
+ {
+ clientCallName: 'client.payments.retrieve',
+ fullyQualifiedName: 'payments.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/payments/{payment_token}',
+ },
+ {
+ clientCallName: 'client.payments.list',
+ fullyQualifiedName: 'payments.list',
+ httpMethod: 'get',
+ httpPath: '/v1/payments',
+ },
+ {
+ clientCallName: 'client.payments.retry',
+ fullyQualifiedName: 'payments.retry',
+ httpMethod: 'post',
+ httpPath: '/v1/payments/{payment_token}/retry',
+ },
+ {
+ clientCallName: 'client.payments.return',
+ fullyQualifiedName: 'payments.return',
+ httpMethod: 'post',
+ httpPath: '/v1/payments/{payment_token}/return',
+ },
+ {
+ clientCallName: 'client.payments.simulateAction',
+ fullyQualifiedName: 'payments.simulateAction',
+ httpMethod: 'post',
+ httpPath: '/v1/simulate/payments/{payment_token}/action',
+ },
+ {
+ clientCallName: 'client.payments.simulateReceipt',
+ fullyQualifiedName: 'payments.simulateReceipt',
+ httpMethod: 'post',
+ httpPath: '/v1/simulate/payments/receipt',
+ },
+ {
+ clientCallName: 'client.payments.simulateRelease',
+ fullyQualifiedName: 'payments.simulateRelease',
+ httpMethod: 'post',
+ httpPath: '/v1/simulate/payments/release',
+ },
+ {
+ clientCallName: 'client.payments.simulateReturn',
+ fullyQualifiedName: 'payments.simulateReturn',
+ httpMethod: 'post',
+ httpPath: '/v1/simulate/payments/return',
+ },
+ {
+ clientCallName: 'client.threeDS.authentication.retrieve',
+ fullyQualifiedName: 'threeDS.authentication.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/three_ds_authentication/{three_ds_authentication_token}',
+ },
+ {
+ clientCallName: 'client.threeDS.authentication.simulate',
+ fullyQualifiedName: 'threeDS.authentication.simulate',
+ httpMethod: 'post',
+ httpPath: '/v1/three_ds_authentication/simulate',
+ },
+ {
+ clientCallName: 'client.threeDS.authentication.simulateOtpEntry',
+ fullyQualifiedName: 'threeDS.authentication.simulateOtpEntry',
+ httpMethod: 'post',
+ httpPath: '/v1/three_ds_decisioning/simulate/enter_otp',
+ },
+ {
+ clientCallName: 'client.threeDS.decisioning.challengeResponse',
+ fullyQualifiedName: 'threeDS.decisioning.challengeResponse',
+ httpMethod: 'post',
+ httpPath: '/v1/three_ds_decisioning/challenge_response',
+ },
+ {
+ clientCallName: 'client.threeDS.decisioning.retrieveSecret',
+ fullyQualifiedName: 'threeDS.decisioning.retrieveSecret',
+ httpMethod: 'get',
+ httpPath: '/v1/three_ds_decisioning/secret',
+ },
+ {
+ clientCallName: 'client.threeDS.decisioning.rotateSecret',
+ fullyQualifiedName: 'threeDS.decisioning.rotateSecret',
+ httpMethod: 'post',
+ httpPath: '/v1/three_ds_decisioning/secret/rotate',
+ },
+ {
+ clientCallName: 'client.reports.settlement.listDetails',
+ fullyQualifiedName: 'reports.settlement.listDetails',
+ httpMethod: 'get',
+ httpPath: '/v1/reports/settlement/details/{report_date}',
+ },
+ {
+ clientCallName: 'client.reports.settlement.summary',
+ fullyQualifiedName: 'reports.settlement.summary',
+ httpMethod: 'get',
+ httpPath: '/v1/reports/settlement/summary/{report_date}',
+ },
+ {
+ clientCallName: 'client.reports.settlement.networkTotals.retrieve',
+ fullyQualifiedName: 'reports.settlement.networkTotals.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/reports/settlement/network_totals/{token}',
+ },
+ {
+ clientCallName: 'client.reports.settlement.networkTotals.list',
+ fullyQualifiedName: 'reports.settlement.networkTotals.list',
+ httpMethod: 'get',
+ httpPath: '/v1/reports/settlement/network_totals',
+ },
+ {
+ clientCallName: 'client.cardPrograms.retrieve',
+ fullyQualifiedName: 'cardPrograms.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/card_programs/{card_program_token}',
+ },
+ {
+ clientCallName: 'client.cardPrograms.list',
+ fullyQualifiedName: 'cardPrograms.list',
+ httpMethod: 'get',
+ httpPath: '/v1/card_programs',
+ },
+ {
+ clientCallName: 'client.digitalCardArt.retrieve',
+ fullyQualifiedName: 'digitalCardArt.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/digital_card_art/{digital_card_art_token}',
+ },
+ {
+ clientCallName: 'client.digitalCardArt.list',
+ fullyQualifiedName: 'digitalCardArt.list',
+ httpMethod: 'get',
+ httpPath: '/v1/digital_card_art',
+ },
+ {
+ clientCallName: 'client.bookTransfers.create',
+ fullyQualifiedName: 'bookTransfers.create',
+ httpMethod: 'post',
+ httpPath: '/v1/book_transfers',
+ },
+ {
+ clientCallName: 'client.bookTransfers.retrieve',
+ fullyQualifiedName: 'bookTransfers.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/book_transfers/{book_transfer_token}',
+ },
+ {
+ clientCallName: 'client.bookTransfers.list',
+ fullyQualifiedName: 'bookTransfers.list',
+ httpMethod: 'get',
+ httpPath: '/v1/book_transfers',
+ },
+ {
+ clientCallName: 'client.bookTransfers.retry',
+ fullyQualifiedName: 'bookTransfers.retry',
+ httpMethod: 'post',
+ httpPath: '/v1/book_transfers/{book_transfer_token}/retry',
+ },
+ {
+ clientCallName: 'client.bookTransfers.reverse',
+ fullyQualifiedName: 'bookTransfers.reverse',
+ httpMethod: 'post',
+ httpPath: '/v1/book_transfers/{book_transfer_token}/reverse',
+ },
+ {
+ clientCallName: 'client.creditProducts.extendedCredit.retrieve',
+ fullyQualifiedName: 'creditProducts.extendedCredit.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/credit_products/{credit_product_token}/extended_credit',
+ },
+ {
+ clientCallName: 'client.creditProducts.primeRates.create',
+ fullyQualifiedName: 'creditProducts.primeRates.create',
+ httpMethod: 'post',
+ httpPath: '/v1/credit_products/{credit_product_token}/prime_rates',
+ },
+ {
+ clientCallName: 'client.creditProducts.primeRates.retrieve',
+ fullyQualifiedName: 'creditProducts.primeRates.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/credit_products/{credit_product_token}/prime_rates',
+ },
+ {
+ clientCallName: 'client.externalPayments.create',
+ fullyQualifiedName: 'externalPayments.create',
+ httpMethod: 'post',
+ httpPath: '/v1/external_payments',
+ },
+ {
+ clientCallName: 'client.externalPayments.retrieve',
+ fullyQualifiedName: 'externalPayments.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/external_payments/{external_payment_token}',
+ },
+ {
+ clientCallName: 'client.externalPayments.list',
+ fullyQualifiedName: 'externalPayments.list',
+ httpMethod: 'get',
+ httpPath: '/v1/external_payments',
+ },
+ {
+ clientCallName: 'client.externalPayments.cancel',
+ fullyQualifiedName: 'externalPayments.cancel',
+ httpMethod: 'post',
+ httpPath: '/v1/external_payments/{external_payment_token}/cancel',
+ },
+ {
+ clientCallName: 'client.externalPayments.release',
+ fullyQualifiedName: 'externalPayments.release',
+ httpMethod: 'post',
+ httpPath: '/v1/external_payments/{external_payment_token}/release',
+ },
+ {
+ clientCallName: 'client.externalPayments.reverse',
+ fullyQualifiedName: 'externalPayments.reverse',
+ httpMethod: 'post',
+ httpPath: '/v1/external_payments/{external_payment_token}/reverse',
+ },
+ {
+ clientCallName: 'client.externalPayments.settle',
+ fullyQualifiedName: 'externalPayments.settle',
+ httpMethod: 'post',
+ httpPath: '/v1/external_payments/{external_payment_token}/settle',
+ },
+ {
+ clientCallName: 'client.managementOperations.create',
+ fullyQualifiedName: 'managementOperations.create',
+ httpMethod: 'post',
+ httpPath: '/v1/management_operations',
+ },
+ {
+ clientCallName: 'client.managementOperations.retrieve',
+ fullyQualifiedName: 'managementOperations.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/management_operations/{management_operation_token}',
+ },
+ {
+ clientCallName: 'client.managementOperations.list',
+ fullyQualifiedName: 'managementOperations.list',
+ httpMethod: 'get',
+ httpPath: '/v1/management_operations',
+ },
+ {
+ clientCallName: 'client.managementOperations.reverse',
+ fullyQualifiedName: 'managementOperations.reverse',
+ httpMethod: 'post',
+ httpPath: '/v1/management_operations/{management_operation_token}/reverse',
+ },
+ {
+ clientCallName: 'client.fundingEvents.retrieve',
+ fullyQualifiedName: 'fundingEvents.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/funding_events/{funding_event_token}',
+ },
+ {
+ clientCallName: 'client.fundingEvents.list',
+ fullyQualifiedName: 'fundingEvents.list',
+ httpMethod: 'get',
+ httpPath: '/v1/funding_events',
+ },
+ {
+ clientCallName: 'client.fundingEvents.retrieveDetails',
+ fullyQualifiedName: 'fundingEvents.retrieveDetails',
+ httpMethod: 'get',
+ httpPath: '/v1/funding_events/{funding_event_token}/details',
+ },
+ {
+ clientCallName: 'client.fraud.transactions.retrieve',
+ fullyQualifiedName: 'fraud.transactions.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/fraud/transactions/{transaction_token}',
+ },
+ {
+ clientCallName: 'client.fraud.transactions.report',
+ fullyQualifiedName: 'fraud.transactions.report',
+ httpMethod: 'post',
+ httpPath: '/v1/fraud/transactions/{transaction_token}',
+ },
+ {
+ clientCallName: 'client.networkPrograms.retrieve',
+ fullyQualifiedName: 'networkPrograms.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/network_programs/{network_program_token}',
+ },
+ {
+ clientCallName: 'client.networkPrograms.list',
+ fullyQualifiedName: 'networkPrograms.list',
+ httpMethod: 'get',
+ httpPath: '/v1/network_programs',
+ },
+ {
+ clientCallName: 'client.holds.create',
+ fullyQualifiedName: 'holds.create',
+ httpMethod: 'post',
+ httpPath: '/v1/financial_accounts/{financial_account_token}/holds',
+ },
+ {
+ clientCallName: 'client.holds.retrieve',
+ fullyQualifiedName: 'holds.retrieve',
+ httpMethod: 'get',
+ httpPath: '/v1/holds/{hold_token}',
+ },
+ {
+ clientCallName: 'client.holds.list',
+ fullyQualifiedName: 'holds.list',
+ httpMethod: 'get',
+ httpPath: '/v1/financial_accounts/{financial_account_token}/holds',
+ },
+ {
+ clientCallName: 'client.holds.void',
+ fullyQualifiedName: 'holds.void',
+ httpMethod: 'post',
+ httpPath: '/v1/holds/{hold_token}/void',
+ },
+ {
+ clientCallName: 'client.accountActivity.list',
+ fullyQualifiedName: 'accountActivity.list',
+ httpMethod: 'get',
+ httpPath: '/v1/account_activity',
+ },
+ {
+ clientCallName: 'client.accountActivity.retrieveTransaction',
+ fullyQualifiedName: 'accountActivity.retrieveTransaction',
+ httpMethod: 'get',
+ httpPath: '/v1/account_activity/{transaction_token}',
+ },
+ {
+ clientCallName: 'client.transferLimits.list',
+ fullyQualifiedName: 'transferLimits.list',
+ httpMethod: 'get',
+ httpPath: '/v1/transfer_limits',
+ },
+ { clientCallName: 'client.webhooks.parsed', fullyQualifiedName: 'webhooks.parsed' },
+];
+
+function allowedMethodsForCodeTool(options: McpOptions | undefined): SdkMethod[] | undefined {
+ if (!options) {
+ return undefined;
+ }
+
+ let allowedMethods: SdkMethod[];
+
+ if (options.codeAllowHttpGets || options.codeAllowedMethods) {
+ // Start with nothing allowed and then add into it from options
+ let allowedMethodsSet = new Set();
+
+ if (options.codeAllowHttpGets) {
+ // Add all methods that map to an HTTP GET
+ sdkMethods
+ .filter((method) => method.httpMethod === 'get')
+ .forEach((method) => allowedMethodsSet.add(method));
+ }
+
+ if (options.codeAllowedMethods) {
+ // Add all methods that match any of the allowed regexps
+ const allowedRegexps = options.codeAllowedMethods.map((pattern) => {
+ try {
+ return new RegExp(pattern);
+ } catch (e) {
+ throw new Error(
+ `Invalid regex pattern for allowed method: "${pattern}": ${e instanceof Error ? e.message : e}`,
+ );
+ }
+ });
+
+ sdkMethods
+ .filter((method) => allowedRegexps.some((regexp) => regexp.test(method.fullyQualifiedName)))
+ .forEach((method) => allowedMethodsSet.add(method));
+ }
+
+ allowedMethods = Array.from(allowedMethodsSet);
+ } else {
+ // Start with everything allowed
+ allowedMethods = [...sdkMethods];
+ }
+
+ if (options.codeBlockedMethods) {
+ // Filter down based on blocked regexps
+ const blockedRegexps = options.codeBlockedMethods.map((pattern) => {
+ try {
+ return new RegExp(pattern);
+ } catch (e) {
+ throw new Error(
+ `Invalid regex pattern for blocked method: "${pattern}": ${e instanceof Error ? e.message : e}`,
+ );
+ }
+ });
+
+ allowedMethods = allowedMethods.filter(
+ (method) => !blockedRegexps.some((regexp) => regexp.test(method.fullyQualifiedName)),
+ );
+ }
+
+ return allowedMethods;
+}
+
+export function blockedMethodsForCodeTool(options: McpOptions | undefined): SdkMethod[] | undefined {
+ const allowedMethods = allowedMethodsForCodeTool(options);
+ if (!allowedMethods) {
+ return undefined;
+ }
+
+ const allowedSet = new Set(allowedMethods.map((method) => method.fullyQualifiedName));
+
+ // Return any methods that are not explicitly allowed
+ return sdkMethods.filter((method) => !allowedSet.has(method.fullyQualifiedName));
+}
diff --git a/packages/mcp-server/src/options.ts b/packages/mcp-server/src/options.ts
new file mode 100644
index 00000000..b9e8e8a6
--- /dev/null
+++ b/packages/mcp-server/src/options.ts
@@ -0,0 +1,161 @@
+// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+import qs from 'qs';
+import yargs from 'yargs';
+import { hideBin } from 'yargs/helpers';
+import z from 'zod';
+import { readEnv } from './util';
+
+export type CLIOptions = McpOptions & {
+ debug: boolean;
+ logFormat: 'json' | 'pretty';
+ transport: 'stdio' | 'http';
+ port: number | undefined;
+ socket: string | undefined;
+};
+
+export type McpOptions = {
+ includeCodeTool?: boolean | undefined;
+ includeDocsTools?: boolean | undefined;
+ stainlessApiKey?: string | undefined;
+ codeAllowHttpGets?: boolean | undefined;
+ codeAllowedMethods?: string[] | undefined;
+ codeBlockedMethods?: string[] | undefined;
+ codeExecutionMode: McpCodeExecutionMode;
+};
+
+export type McpCodeExecutionMode = 'stainless-sandbox' | 'local';
+
+export function parseCLIOptions(): CLIOptions {
+ const opts = yargs(hideBin(process.argv))
+ .option('code-allow-http-gets', {
+ type: 'boolean',
+ description:
+ 'Allow all code tool methods that map to HTTP GET operations. If all code-allow-* flags are unset, then everything is allowed.',
+ })
+ .option('code-allowed-methods', {
+ type: 'string',
+ array: true,
+ description:
+ 'Methods to explicitly allow for code tool. Evaluated as regular expressions against method fully qualified names. If all code-allow-* flags are unset, then everything is allowed.',
+ })
+ .option('code-blocked-methods', {
+ type: 'string',
+ array: true,
+ description:
+ 'Methods to explicitly block for code tool. Evaluated as regular expressions against method fully qualified names. If all code-allow-* flags are unset, then everything is allowed.',
+ })
+ .option('code-execution-mode', {
+ type: 'string',
+ choices: ['stainless-sandbox', 'local'],
+ default: 'stainless-sandbox',
+ description:
+ "Where to run code execution in code tool; 'stainless-sandbox' will execute code in Stainless-hosted sandboxes whereas 'local' will execute code locally on the MCP server machine.",
+ })
+ .option('debug', { type: 'boolean', description: 'Enable debug logging' })
+ .option('log-format', {
+ type: 'string',
+ choices: ['json', 'pretty'],
+ description: 'Format for log output; defaults to json unless tty is detected',
+ })
+ .option('no-tools', {
+ type: 'string',
+ array: true,
+ choices: ['code', 'docs'],
+ description: 'Tools to explicitly disable',
+ })
+ .option('port', {
+ type: 'number',
+ default: 3000,
+ description: 'Port to serve on if using http transport',
+ })
+ .option('socket', { type: 'string', description: 'Unix socket to serve on if using http transport' })
+ .option('stainless-api-key', {
+ type: 'string',
+ default: readEnv('STAINLESS_API_KEY'),
+ description:
+ 'API key for Stainless. Used to authenticate requests to Stainless-hosted tools endpoints.',
+ })
+ .option('tools', {
+ type: 'string',
+ array: true,
+ choices: ['code', 'docs'],
+ description: 'Tools to explicitly enable',
+ })
+ .option('transport', {
+ type: 'string',
+ choices: ['stdio', 'http'],
+ default: 'stdio',
+ description: 'What transport to use; stdio for local servers or http for remote servers',
+ })
+ .env('MCP_SERVER')
+ .version(true)
+ .help();
+
+ const argv = opts.parseSync();
+
+ const shouldIncludeToolType = (toolType: 'code' | 'docs') =>
+ argv.noTools?.includes(toolType) ? false
+ : argv.tools?.includes(toolType) ? true
+ : undefined;
+
+ const includeCodeTool = shouldIncludeToolType('code');
+ const includeDocsTools = shouldIncludeToolType('docs');
+
+ const transport = argv.transport as 'stdio' | 'http';
+ const logFormat =
+ argv.logFormat ? (argv.logFormat as 'json' | 'pretty')
+ : process.stderr.isTTY ? 'pretty'
+ : 'json';
+
+ return {
+ ...(includeCodeTool !== undefined && { includeCodeTool }),
+ ...(includeDocsTools !== undefined && { includeDocsTools }),
+ debug: !!argv.debug,
+ stainlessApiKey: argv.stainlessApiKey,
+ codeAllowHttpGets: argv.codeAllowHttpGets,
+ codeAllowedMethods: argv.codeAllowedMethods,
+ codeBlockedMethods: argv.codeBlockedMethods,
+ codeExecutionMode: argv.codeExecutionMode as McpCodeExecutionMode,
+ transport,
+ logFormat,
+ port: argv.port,
+ socket: argv.socket,
+ };
+}
+
+const coerceArray = (zodType: T) =>
+ z.preprocess(
+ (val) =>
+ Array.isArray(val) ? val
+ : val ? [val]
+ : val,
+ z.array(zodType).optional(),
+ );
+
+const QueryOptions = z.object({
+ tools: coerceArray(z.enum(['code', 'docs'])).describe('Specify which MCP tools to use'),
+ no_tools: coerceArray(z.enum(['code', 'docs'])).describe('Specify which MCP tools to not use.'),
+ tool: coerceArray(z.string()).describe('Include tools matching the specified names'),
+});
+
+export function parseQueryOptions(defaultOptions: McpOptions, query: unknown): McpOptions {
+ const queryObject = typeof query === 'string' ? qs.parse(query) : query;
+ const queryOptions = QueryOptions.parse(queryObject);
+
+ let codeTool: boolean | undefined =
+ queryOptions.no_tools && queryOptions.no_tools?.includes('code') ? false
+ : queryOptions.tools?.includes('code') ? true
+ : defaultOptions.includeCodeTool;
+
+ let docsTools: boolean | undefined =
+ queryOptions.no_tools && queryOptions.no_tools?.includes('docs') ? false
+ : queryOptions.tools?.includes('docs') ? true
+ : defaultOptions.includeDocsTools;
+
+ return {
+ ...(codeTool !== undefined && { includeCodeTool: codeTool }),
+ ...(docsTools !== undefined && { includeDocsTools: docsTools }),
+ codeExecutionMode: defaultOptions.codeExecutionMode,
+ };
+}
diff --git a/packages/mcp-server/src/server.ts b/packages/mcp-server/src/server.ts
new file mode 100644
index 00000000..f1b1e155
--- /dev/null
+++ b/packages/mcp-server/src/server.ts
@@ -0,0 +1,192 @@
+// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+import { Server } from '@modelcontextprotocol/sdk/server/index.js';
+import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
+import {
+ CallToolRequestSchema,
+ ListToolsRequestSchema,
+ SetLevelRequestSchema,
+} from '@modelcontextprotocol/sdk/types.js';
+import { ClientOptions } from 'lithic';
+import Lithic from 'lithic';
+import { codeTool } from './code-tool';
+import docsSearchTool from './docs-search-tool';
+import { getInstructions } from './instructions';
+import { McpOptions } from './options';
+import { blockedMethodsForCodeTool } from './methods';
+import { HandlerFunction, McpRequestContext, ToolCallResult, McpTool } from './types';
+import { readEnv } from './util';
+
+export const newMcpServer = async (stainlessApiKey: string | undefined) =>
+ new McpServer(
+ {
+ name: 'lithic_api',
+ version: '0.132.1',
+ },
+ {
+ instructions: await getInstructions(stainlessApiKey),
+ capabilities: { tools: {}, logging: {} },
+ },
+ );
+
+/**
+ * Initializes the provided MCP Server with the given tools and handlers.
+ * If not provided, the default client, tools and handlers will be used.
+ */
+export async function initMcpServer(params: {
+ server: Server | McpServer;
+ clientOptions?: ClientOptions;
+ mcpOptions?: McpOptions;
+ stainlessApiKey?: string | undefined;
+ upstreamClientEnvs?: Record | undefined;
+}) {
+ const server = params.server instanceof McpServer ? params.server.server : params.server;
+
+ const logAtLevel =
+ (level: 'debug' | 'info' | 'warning' | 'error') =>
+ (message: string, ...rest: unknown[]) => {
+ void server.sendLoggingMessage({
+ level,
+ data: { message, rest },
+ });
+ };
+ const logger = {
+ debug: logAtLevel('debug'),
+ info: logAtLevel('info'),
+ warn: logAtLevel('warning'),
+ error: logAtLevel('error'),
+ };
+
+ let _client: Lithic | undefined;
+ let _clientError: Error | undefined;
+ let _logLevel: 'debug' | 'info' | 'warn' | 'error' | 'off' | undefined;
+
+ const getClient = (): Lithic => {
+ if (_clientError) throw _clientError;
+ if (!_client) {
+ try {
+ _client = new Lithic({
+ ...{ environment: (readEnv('LITHIC_ENVIRONMENT') || undefined) as any },
+ logger,
+ ...params.clientOptions,
+ defaultHeaders: {
+ ...params.clientOptions?.defaultHeaders,
+ 'X-Stainless-MCP': 'true',
+ },
+ });
+ if (_logLevel) {
+ _client = _client.withOptions({ logLevel: _logLevel });
+ }
+ } catch (e) {
+ _clientError = e instanceof Error ? e : new Error(String(e));
+ throw _clientError;
+ }
+ }
+ return _client;
+ };
+
+ const providedTools = selectTools(params.mcpOptions);
+ const toolMap = Object.fromEntries(providedTools.map((mcpTool) => [mcpTool.tool.name, mcpTool]));
+
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
+ return {
+ tools: providedTools.map((mcpTool) => mcpTool.tool),
+ };
+ });
+
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
+ const { name, arguments: args } = request.params;
+ const mcpTool = toolMap[name];
+ if (!mcpTool) {
+ throw new Error(`Unknown tool: ${name}`);
+ }
+
+ let client: Lithic;
+ try {
+ client = getClient();
+ } catch (error) {
+ return {
+ content: [
+ {
+ type: 'text' as const,
+ text: `Failed to initialize client: ${error instanceof Error ? error.message : String(error)}`,
+ },
+ ],
+ isError: true,
+ };
+ }
+
+ return executeHandler({
+ handler: mcpTool.handler,
+ reqContext: {
+ client,
+ stainlessApiKey: params.stainlessApiKey ?? params.mcpOptions?.stainlessApiKey,
+ upstreamClientEnvs: params.upstreamClientEnvs,
+ },
+ args,
+ });
+ });
+
+ server.setRequestHandler(SetLevelRequestSchema, async (request) => {
+ const { level } = request.params;
+ let logLevel: 'debug' | 'info' | 'warn' | 'error' | 'off';
+ switch (level) {
+ case 'debug':
+ logLevel = 'debug';
+ break;
+ case 'info':
+ logLevel = 'info';
+ break;
+ case 'notice':
+ case 'warning':
+ logLevel = 'warn';
+ break;
+ case 'error':
+ logLevel = 'error';
+ break;
+ default:
+ logLevel = 'off';
+ break;
+ }
+ _logLevel = logLevel;
+ if (_client) {
+ _client = _client.withOptions({ logLevel });
+ }
+ return {};
+ });
+}
+
+/**
+ * Selects the tools to include in the MCP Server based on the provided options.
+ */
+export function selectTools(options?: McpOptions): McpTool[] {
+ const includedTools = [];
+
+ if (options?.includeCodeTool ?? true) {
+ includedTools.push(
+ codeTool({
+ blockedMethods: blockedMethodsForCodeTool(options),
+ codeExecutionMode: options?.codeExecutionMode ?? 'stainless-sandbox',
+ }),
+ );
+ }
+ if (options?.includeDocsTools ?? true) {
+ includedTools.push(docsSearchTool);
+ }
+ return includedTools;
+}
+
+/**
+ * Runs the provided handler with the given client and arguments.
+ */
+export async function executeHandler({
+ handler,
+ reqContext,
+ args,
+}: {
+ handler: HandlerFunction;
+ reqContext: McpRequestContext;
+ args: Record | undefined;
+}): Promise {
+ return await handler({ reqContext, args: args || {} });
+}
diff --git a/packages/mcp-server/src/stdio.ts b/packages/mcp-server/src/stdio.ts
new file mode 100644
index 00000000..e8bcbb19
--- /dev/null
+++ b/packages/mcp-server/src/stdio.ts
@@ -0,0 +1,14 @@
+import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
+import { McpOptions } from './options';
+import { initMcpServer, newMcpServer } from './server';
+import { getLogger } from './logger';
+
+export const launchStdioServer = async (mcpOptions: McpOptions) => {
+ const server = await newMcpServer(mcpOptions.stainlessApiKey);
+
+ await initMcpServer({ server, mcpOptions, stainlessApiKey: mcpOptions.stainlessApiKey });
+
+ const transport = new StdioServerTransport();
+ await server.connect(transport);
+ getLogger().info('MCP Server running on stdio');
+};
diff --git a/packages/mcp-server/src/types.ts b/packages/mcp-server/src/types.ts
new file mode 100644
index 00000000..9879117c
--- /dev/null
+++ b/packages/mcp-server/src/types.ts
@@ -0,0 +1,124 @@
+// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+import Lithic from 'lithic';
+import { Tool } from '@modelcontextprotocol/sdk/types.js';
+
+type TextContentBlock = {
+ type: 'text';
+ text: string;
+};
+
+type ImageContentBlock = {
+ type: 'image';
+ data: string;
+ mimeType: string;
+};
+
+type AudioContentBlock = {
+ type: 'audio';
+ data: string;
+ mimeType: string;
+};
+
+type ResourceContentBlock = {
+ type: 'resource';
+ resource:
+ | {
+ uri: string;
+ mimeType: string;
+ text: string;
+ }
+ | {
+ uri: string;
+ mimeType: string;
+ blob: string;
+ };
+};
+
+export type ContentBlock = TextContentBlock | ImageContentBlock | AudioContentBlock | ResourceContentBlock;
+
+export type ToolCallResult = {
+ content: ContentBlock[];
+ isError?: boolean;
+};
+
+export type McpRequestContext = {
+ client: Lithic;
+ stainlessApiKey?: string | undefined;
+ upstreamClientEnvs?: Record | undefined;
+};
+
+export type HandlerFunction = ({
+ reqContext,
+ args,
+}: {
+ reqContext: McpRequestContext;
+ args: Record | undefined;
+}) => Promise;
+
+export function asTextContentResult(result: unknown): ToolCallResult {
+ return {
+ content: [
+ {
+ type: 'text',
+ text: JSON.stringify(result, null, 2),
+ },
+ ],
+ };
+}
+
+export async function asBinaryContentResult(response: Response): Promise {
+ const blob = await response.blob();
+ const mimeType = blob.type;
+ const data = Buffer.from(await blob.arrayBuffer()).toString('base64');
+ if (mimeType.startsWith('image/')) {
+ return {
+ content: [{ type: 'image', mimeType, data }],
+ };
+ } else if (mimeType.startsWith('audio/')) {
+ return {
+ content: [{ type: 'audio', mimeType, data }],
+ };
+ } else {
+ return {
+ content: [
+ {
+ type: 'resource',
+ resource: {
+ // We must give a URI, even though this isn't actually an MCP resource.
+ uri: 'resource://tool-response',
+ mimeType,
+ blob: data,
+ },
+ },
+ ],
+ };
+ }
+}
+
+export function asErrorResult(message: string): ToolCallResult {
+ return {
+ content: [
+ {
+ type: 'text',
+ text: message,
+ },
+ ],
+ isError: true,
+ };
+}
+
+export type Metadata = {
+ resource: string;
+ operation: 'read' | 'write';
+ tags: string[];
+ httpMethod?: string;
+ httpPath?: string;
+ operationId?: string;
+};
+
+export type McpTool = {
+ metadata: Metadata;
+ tool: Tool;
+ handler: HandlerFunction;
+};
diff --git a/packages/mcp-server/src/util.ts b/packages/mcp-server/src/util.ts
new file mode 100644
index 00000000..40ed5501
--- /dev/null
+++ b/packages/mcp-server/src/util.ts
@@ -0,0 +1,25 @@
+// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+export const readEnv = (env: string): string | undefined => {
+ if (typeof (globalThis as any).process !== 'undefined') {
+ return (globalThis as any).process.env?.[env]?.trim();
+ } else if (typeof (globalThis as any).Deno !== 'undefined') {
+ return (globalThis as any).Deno.env?.get?.(env)?.trim();
+ }
+ return;
+};
+
+export const readEnvOrError = (env: string): string => {
+ let envValue = readEnv(env);
+ if (envValue === undefined) {
+ throw new Error(`Environment variable ${env} is not set`);
+ }
+ return envValue;
+};
+
+export const requireValue = (value: T | undefined, description: string): T => {
+ if (value === undefined) {
+ throw new Error(`Missing required value: ${description}`);
+ }
+ return value;
+};
diff --git a/packages/mcp-server/tests/options.test.ts b/packages/mcp-server/tests/options.test.ts
new file mode 100644
index 00000000..17306295
--- /dev/null
+++ b/packages/mcp-server/tests/options.test.ts
@@ -0,0 +1,32 @@
+import { parseCLIOptions } from '../src/options';
+
+// Mock process.argv
+const mockArgv = (args: string[]) => {
+ const originalArgv = process.argv;
+ process.argv = ['node', 'test.js', ...args];
+ return () => {
+ process.argv = originalArgv;
+ };
+};
+
+describe('parseCLIOptions', () => {
+ it('default parsing should be stdio', () => {
+ const cleanup = mockArgv([]);
+
+ const result = parseCLIOptions();
+
+ expect(result.transport).toBe('stdio');
+
+ cleanup();
+ });
+
+ it('using http transport with a port', () => {
+ const cleanup = mockArgv(['--transport=http', '--port=2222']);
+
+ const result = parseCLIOptions();
+
+ expect(result.transport).toBe('http');
+ expect(result.port).toBe(2222);
+ cleanup();
+ });
+});
diff --git a/packages/mcp-server/tsc-multi.json b/packages/mcp-server/tsc-multi.json
new file mode 100644
index 00000000..4facad5a
--- /dev/null
+++ b/packages/mcp-server/tsc-multi.json
@@ -0,0 +1,7 @@
+{
+ "targets": [
+ { "extname": ".js", "module": "commonjs" },
+ { "extname": ".mjs", "module": "esnext" }
+ ],
+ "projects": ["tsconfig.build.json"]
+}
diff --git a/packages/mcp-server/tsconfig.build.json b/packages/mcp-server/tsconfig.build.json
new file mode 100644
index 00000000..69c8e1d9
--- /dev/null
+++ b/packages/mcp-server/tsconfig.build.json
@@ -0,0 +1,18 @@
+{
+ "extends": "./tsconfig.json",
+ "include": ["dist/src"],
+ "exclude": [],
+ "compilerOptions": {
+ "rootDir": "./dist/src",
+ "paths": {
+ "lithic-mcp/*": ["./dist/src/*"],
+ "lithic-mcp": ["./dist/src/index.ts"]
+ },
+ "noEmit": false,
+ "declaration": true,
+ "declarationMap": true,
+ "outDir": "dist",
+ "pretty": true,
+ "sourceMap": true
+ }
+}
diff --git a/packages/mcp-server/tsconfig.dist-src.json b/packages/mcp-server/tsconfig.dist-src.json
new file mode 100644
index 00000000..e9f2d70b
--- /dev/null
+++ b/packages/mcp-server/tsconfig.dist-src.json
@@ -0,0 +1,11 @@
+{
+ // this config is included in the published src directory to prevent TS errors
+ // from appearing when users go to source, and VSCode opens the source .ts file
+ // via declaration maps
+ "include": ["index.ts"],
+ "compilerOptions": {
+ "target": "es2015",
+ "lib": ["DOM"],
+ "moduleResolution": "node"
+ }
+}
diff --git a/packages/mcp-server/tsconfig.json b/packages/mcp-server/tsconfig.json
new file mode 100644
index 00000000..2e14b77b
--- /dev/null
+++ b/packages/mcp-server/tsconfig.json
@@ -0,0 +1,36 @@
+{
+ "include": ["src", "tests", "examples"],
+ "exclude": [],
+ "compilerOptions": {
+ "target": "es2022",
+ "lib": ["es2022"],
+ "module": "commonjs",
+ "moduleResolution": "node",
+ "esModuleInterop": true,
+ "paths": {
+ "lithic-mcp/*": ["./src/*"],
+ "lithic-mcp": ["./src/index.ts"]
+ },
+ "noEmit": true,
+
+ "resolveJsonModule": true,
+
+ "forceConsistentCasingInFileNames": true,
+
+ "strict": true,
+ "noImplicitAny": true,
+ "strictNullChecks": true,
+ "strictFunctionTypes": true,
+ "strictBindCallApply": true,
+ "strictPropertyInitialization": true,
+ "noImplicitThis": true,
+ "noImplicitReturns": true,
+ "alwaysStrict": true,
+ "exactOptionalPropertyTypes": true,
+ "noUncheckedIndexedAccess": true,
+ "noImplicitOverride": true,
+ "noPropertyAccessFromIndexSignature": true,
+
+ "skipLibCheck": true
+ }
+}
diff --git a/packages/mcp-server/yarn.lock b/packages/mcp-server/yarn.lock
new file mode 100644
index 00000000..c7e37692
--- /dev/null
+++ b/packages/mcp-server/yarn.lock
@@ -0,0 +1,4169 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@anthropic-ai/mcpb@^2.1.2":
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/@anthropic-ai/mcpb/-/mcpb-2.1.2.tgz#cf02801929734b8810961f22e2eb72758c27d527"
+ integrity sha512-goRbBC8ySo7SWb7tRzr+tL6FxDc4JPTRCdgfD2omba7freofvjq5rom1lBnYHZHo6Mizs1jAHJeN53aZbDoy8A==
+ dependencies:
+ "@inquirer/prompts" "^6.0.1"
+ commander "^13.1.0"
+ fflate "^0.8.2"
+ galactus "^1.0.0"
+ ignore "^7.0.5"
+ node-forge "^1.3.2"
+ pretty-bytes "^5.6.0"
+ zod "^3.25.67"
+ zod-to-json-schema "^3.24.6"
+
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.28.6":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.28.6.tgz#72499312ec58b1e2245ba4a4f550c132be4982f7"
+ integrity sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.28.5"
+ js-tokens "^4.0.0"
+ picocolors "^1.1.1"
+
+"@babel/compat-data@^7.28.6":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.6.tgz#103f466803fa0f059e82ccac271475470570d74c"
+ integrity sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==
+
+"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.6.tgz#531bf883a1126e53501ba46eb3bb414047af507f"
+ integrity sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==
+ dependencies:
+ "@babel/code-frame" "^7.28.6"
+ "@babel/generator" "^7.28.6"
+ "@babel/helper-compilation-targets" "^7.28.6"
+ "@babel/helper-module-transforms" "^7.28.6"
+ "@babel/helpers" "^7.28.6"
+ "@babel/parser" "^7.28.6"
+ "@babel/template" "^7.28.6"
+ "@babel/traverse" "^7.28.6"
+ "@babel/types" "^7.28.6"
+ "@jridgewell/remapping" "^2.3.5"
+ convert-source-map "^2.0.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.2"
+ json5 "^2.2.3"
+ semver "^6.3.1"
+
+"@babel/generator@^7.28.6", "@babel/generator@^7.7.2":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.6.tgz#48dcc65d98fcc8626a48f72b62e263d25fc3c3f1"
+ integrity sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==
+ dependencies:
+ "@babel/parser" "^7.28.6"
+ "@babel/types" "^7.28.6"
+ "@jridgewell/gen-mapping" "^0.3.12"
+ "@jridgewell/trace-mapping" "^0.3.28"
+ jsesc "^3.0.2"
+
+"@babel/helper-compilation-targets@^7.28.6":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz#32c4a3f41f12ed1532179b108a4d746e105c2b25"
+ integrity sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==
+ dependencies:
+ "@babel/compat-data" "^7.28.6"
+ "@babel/helper-validator-option" "^7.27.1"
+ browserslist "^4.24.0"
+ lru-cache "^5.1.1"
+ semver "^6.3.1"
+
+"@babel/helper-globals@^7.28.0":
+ version "7.28.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674"
+ integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==
+
+"@babel/helper-module-imports@^7.28.6":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz#60632cbd6ffb70b22823187201116762a03e2d5c"
+ integrity sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==
+ dependencies:
+ "@babel/traverse" "^7.28.6"
+ "@babel/types" "^7.28.6"
+
+"@babel/helper-module-transforms@^7.28.6":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz#9312d9d9e56edc35aeb6e95c25d4106b50b9eb1e"
+ integrity sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==
+ dependencies:
+ "@babel/helper-module-imports" "^7.28.6"
+ "@babel/helper-validator-identifier" "^7.28.5"
+ "@babel/traverse" "^7.28.6"
+
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.28.6", "@babel/helper-plugin-utils@^7.8.0":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz#6f13ea251b68c8532e985fd532f28741a8af9ac8"
+ integrity sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==
+
+"@babel/helper-string-parser@^7.27.1":
+ version "7.27.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687"
+ integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==
+
+"@babel/helper-validator-identifier@^7.28.5":
+ version "7.28.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4"
+ integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==
+
+"@babel/helper-validator-option@^7.27.1":
+ version "7.27.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f"
+ integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==
+
+"@babel/helpers@^7.28.6":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.6.tgz#fca903a313ae675617936e8998b814c415cbf5d7"
+ integrity sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==
+ dependencies:
+ "@babel/template" "^7.28.6"
+ "@babel/types" "^7.28.6"
+
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.28.6":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.6.tgz#f01a8885b7fa1e56dd8a155130226cd698ef13fd"
+ integrity sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==
+ dependencies:
+ "@babel/types" "^7.28.6"
+
+"@babel/plugin-syntax-async-generators@^7.8.4":
+ version "7.8.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
+ integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-bigint@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea"
+ integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-class-properties@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
+ integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-syntax-class-static-block@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406"
+ integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-import-attributes@^7.24.7":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz#b71d5914665f60124e133696f17cd7669062c503"
+ integrity sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.28.6"
+
+"@babel/plugin-syntax-import-meta@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
+ integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-json-strings@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
+ integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-jsx@^7.7.2":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz#f8ca28bbd84883b5fea0e447c635b81ba73997ee"
+ integrity sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.28.6"
+
+"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
+ integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
+ integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-numeric-separator@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
+ integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-object-rest-spread@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
+ integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
+ integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-chaining@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
+ integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-private-property-in-object@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad"
+ integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-top-level-await@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
+ integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-typescript@^7.7.2":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz#c7b2ddf1d0a811145b1de800d1abd146af92e3a2"
+ integrity sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.28.6"
+
+"@babel/template@^7.28.6", "@babel/template@^7.3.3":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.28.6.tgz#0e7e56ecedb78aeef66ce7972b082fce76a23e57"
+ integrity sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==
+ dependencies:
+ "@babel/code-frame" "^7.28.6"
+ "@babel/parser" "^7.28.6"
+ "@babel/types" "^7.28.6"
+
+"@babel/traverse@^7.28.6":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.6.tgz#871ddc79a80599a5030c53b1cc48cbe3a5583c2e"
+ integrity sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==
+ dependencies:
+ "@babel/code-frame" "^7.28.6"
+ "@babel/generator" "^7.28.6"
+ "@babel/helper-globals" "^7.28.0"
+ "@babel/parser" "^7.28.6"
+ "@babel/template" "^7.28.6"
+ "@babel/types" "^7.28.6"
+ debug "^4.3.1"
+
+"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.28.2", "@babel/types@^7.28.6", "@babel/types@^7.3.3":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.6.tgz#c3e9377f1b155005bcc4c46020e7e394e13089df"
+ integrity sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==
+ dependencies:
+ "@babel/helper-string-parser" "^7.27.1"
+ "@babel/helper-validator-identifier" "^7.28.5"
+
+"@bcoe/v8-coverage@^0.2.3":
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
+ integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
+
+"@cloudflare/cabidela@^0.2.4":
+ version "0.2.4"
+ resolved "https://registry.yarnpkg.com/@cloudflare/cabidela/-/cabidela-0.2.4.tgz#9a3e9212e636a24d796a8f16741c24885b326a1a"
+ integrity sha512-u/1OwwqfcMvjmUFOcb6QtFzVVGpncHJxwl254wjzp0JC5CUlBkV6r5BbRrHI5ZYJEAgu8NeeorirxngmMFPZjQ==
+
+"@cspotcode/source-map-support@^0.8.0":
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1"
+ integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==
+ dependencies:
+ "@jridgewell/trace-mapping" "0.3.9"
+
+"@eslint-community/eslint-utils@^4.4.0", "@eslint-community/eslint-utils@^4.8.0":
+ version "4.9.1"
+ resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz#4e90af67bc51ddee6cdef5284edf572ec376b595"
+ integrity sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==
+ dependencies:
+ eslint-visitor-keys "^3.4.3"
+
+"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.12.1":
+ version "4.12.2"
+ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.2.tgz#bccdf615bcf7b6e8db830ec0b8d21c9a25de597b"
+ integrity sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==
+
+"@eslint/config-array@^0.21.2":
+ version "0.21.2"
+ resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.21.2.tgz#f29e22057ad5316cf23836cee9a34c81fffcb7e6"
+ integrity sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==
+ dependencies:
+ "@eslint/object-schema" "^2.1.7"
+ debug "^4.3.1"
+ minimatch "^3.1.5"
+
+"@eslint/config-helpers@^0.4.2":
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.4.2.tgz#1bd006ceeb7e2e55b2b773ab318d300e1a66aeda"
+ integrity sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==
+ dependencies:
+ "@eslint/core" "^0.17.0"
+
+"@eslint/core@^0.17.0":
+ version "0.17.0"
+ resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.17.0.tgz#77225820413d9617509da9342190a2019e78761c"
+ integrity sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==
+ dependencies:
+ "@types/json-schema" "^7.0.15"
+
+"@eslint/eslintrc@^3.3.5":
+ version "3.3.5"
+ resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.5.tgz#c131793cfc1a7b96f24a83e0a8bbd4b881558c60"
+ integrity sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==
+ dependencies:
+ ajv "^6.14.0"
+ debug "^4.3.2"
+ espree "^10.0.1"
+ globals "^14.0.0"
+ ignore "^5.2.0"
+ import-fresh "^3.2.1"
+ js-yaml "^4.1.1"
+ minimatch "^3.1.5"
+ strip-json-comments "^3.1.1"
+
+"@eslint/js@9.39.4":
+ version "9.39.4"
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.39.4.tgz#a3f83bfc6fd9bf33a853dfacd0b49b398eb596c1"
+ integrity sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==
+
+"@eslint/object-schema@^2.1.7":
+ version "2.1.7"
+ resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.7.tgz#6e2126a1347e86a4dedf8706ec67ff8e107ebbad"
+ integrity sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==
+
+"@eslint/plugin-kit@^0.4.1":
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz#9779e3fd9b7ee33571a57435cf4335a1794a6cb2"
+ integrity sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==
+ dependencies:
+ "@eslint/core" "^0.17.0"
+ levn "^0.4.1"
+
+"@hono/node-server@^1.19.10", "@hono/node-server@^1.19.9":
+ version "1.19.11"
+ resolved "https://registry.yarnpkg.com/@hono/node-server/-/node-server-1.19.11.tgz#dc419f0826dd2504e9fc86ad289d5636a0444e2f"
+ integrity sha512-dr8/3zEaB+p0D2n/IUrlPF1HZm586qgJNXK1a9fhg/PzdtkK7Ksd5l312tJX2yBuALqDYBlG20QEbayqPyxn+g==
+
+"@humanfs/core@^0.19.1":
+ version "0.19.1"
+ resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.1.tgz#17c55ca7d426733fe3c561906b8173c336b40a77"
+ integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==
+
+"@humanfs/node@^0.16.6":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.7.tgz#822cb7b3a12c5a240a24f621b5a2413e27a45f26"
+ integrity sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==
+ dependencies:
+ "@humanfs/core" "^0.19.1"
+ "@humanwhocodes/retry" "^0.4.0"
+
+"@humanwhocodes/module-importer@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
+ integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
+
+"@humanwhocodes/retry@^0.4.0", "@humanwhocodes/retry@^0.4.2":
+ version "0.4.3"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.3.tgz#c2b9d2e374ee62c586d3adbea87199b1d7a7a6ba"
+ integrity sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==
+
+"@inquirer/checkbox@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-3.0.1.tgz#0a57f704265f78c36e17f07e421b98efb4b9867b"
+ integrity sha512-0hm2nrToWUdD6/UHnel/UKGdk1//ke5zGUpHIvk5ZWmaKezlGxZkOJXNSWsdxO/rEqTkbB3lNC2J6nBElV2aAQ==
+ dependencies:
+ "@inquirer/core" "^9.2.1"
+ "@inquirer/figures" "^1.0.6"
+ "@inquirer/type" "^2.0.0"
+ ansi-escapes "^4.3.2"
+ yoctocolors-cjs "^2.1.2"
+
+"@inquirer/confirm@^4.0.1":
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-4.0.1.tgz#9106d6bffa0b2fdd0e4f60319b6f04f2e06e6e25"
+ integrity sha512-46yL28o2NJ9doViqOy0VDcoTzng7rAb6yPQKU7VDLqkmbCaH4JqK4yk4XqlzNWy9PVC5pG1ZUXPBQv+VqnYs2w==
+ dependencies:
+ "@inquirer/core" "^9.2.1"
+ "@inquirer/type" "^2.0.0"
+
+"@inquirer/core@^9.2.1":
+ version "9.2.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-9.2.1.tgz#677c49dee399c9063f31e0c93f0f37bddc67add1"
+ integrity sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==
+ dependencies:
+ "@inquirer/figures" "^1.0.6"
+ "@inquirer/type" "^2.0.0"
+ "@types/mute-stream" "^0.0.4"
+ "@types/node" "^22.5.5"
+ "@types/wrap-ansi" "^3.0.0"
+ ansi-escapes "^4.3.2"
+ cli-width "^4.1.0"
+ mute-stream "^1.0.0"
+ signal-exit "^4.1.0"
+ strip-ansi "^6.0.1"
+ wrap-ansi "^6.2.0"
+ yoctocolors-cjs "^2.1.2"
+
+"@inquirer/editor@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-3.0.1.tgz#d109f21e050af6b960725388cb1c04214ed7c7bc"
+ integrity sha512-VA96GPFaSOVudjKFraokEEmUQg/Lub6OXvbIEZU1SDCmBzRkHGhxoFAVaF30nyiB4m5cEbDgiI2QRacXZ2hw9Q==
+ dependencies:
+ "@inquirer/core" "^9.2.1"
+ "@inquirer/type" "^2.0.0"
+ external-editor "^3.1.0"
+
+"@inquirer/expand@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-3.0.1.tgz#aed9183cac4d12811be47a4a895ea8e82a17e22c"
+ integrity sha512-ToG8d6RIbnVpbdPdiN7BCxZGiHOTomOX94C2FaT5KOHupV40tKEDozp12res6cMIfRKrXLJyexAZhWVHgbALSQ==
+ dependencies:
+ "@inquirer/core" "^9.2.1"
+ "@inquirer/type" "^2.0.0"
+ yoctocolors-cjs "^2.1.2"
+
+"@inquirer/figures@^1.0.6":
+ version "1.0.15"
+ resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.15.tgz#dbb49ed80df11df74268023b496ac5d9acd22b3a"
+ integrity sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==
+
+"@inquirer/input@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-3.0.1.tgz#de63d49e516487388508d42049deb70f2cb5f28e"
+ integrity sha512-BDuPBmpvi8eMCxqC5iacloWqv+5tQSJlUafYWUe31ow1BVXjW2a5qe3dh4X/Z25Wp22RwvcaLCc2siHobEOfzg==
+ dependencies:
+ "@inquirer/core" "^9.2.1"
+ "@inquirer/type" "^2.0.0"
+
+"@inquirer/number@^2.0.1":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-2.0.1.tgz#b9863080d02ab7dc2e56e16433d83abea0f2a980"
+ integrity sha512-QpR8jPhRjSmlr/mD2cw3IR8HRO7lSVOnqUvQa8scv1Lsr3xoAMMworcYW3J13z3ppjBFBD2ef1Ci6AE5Qn8goQ==
+ dependencies:
+ "@inquirer/core" "^9.2.1"
+ "@inquirer/type" "^2.0.0"
+
+"@inquirer/password@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-3.0.1.tgz#2a9a9143591088336bbd573bcb05d5bf080dbf87"
+ integrity sha512-haoeEPUisD1NeE2IanLOiFr4wcTXGWrBOyAyPZi1FfLJuXOzNmxCJPgUrGYKVh+Y8hfGJenIfz5Wb/DkE9KkMQ==
+ dependencies:
+ "@inquirer/core" "^9.2.1"
+ "@inquirer/type" "^2.0.0"
+ ansi-escapes "^4.3.2"
+
+"@inquirer/prompts@^6.0.1":
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-6.0.1.tgz#43f5c0ed35c5ebfe52f1d43d46da2d363d950071"
+ integrity sha512-yl43JD/86CIj3Mz5mvvLJqAOfIup7ncxfJ0Btnl0/v5TouVUyeEdcpknfgc+yMevS/48oH9WAkkw93m7otLb/A==
+ dependencies:
+ "@inquirer/checkbox" "^3.0.1"
+ "@inquirer/confirm" "^4.0.1"
+ "@inquirer/editor" "^3.0.1"
+ "@inquirer/expand" "^3.0.1"
+ "@inquirer/input" "^3.0.1"
+ "@inquirer/number" "^2.0.1"
+ "@inquirer/password" "^3.0.1"
+ "@inquirer/rawlist" "^3.0.1"
+ "@inquirer/search" "^2.0.1"
+ "@inquirer/select" "^3.0.1"
+
+"@inquirer/rawlist@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-3.0.1.tgz#729def358419cc929045f264131878ed379e0af3"
+ integrity sha512-VgRtFIwZInUzTiPLSfDXK5jLrnpkuSOh1ctfaoygKAdPqjcjKYmGh6sCY1pb0aGnCGsmhUxoqLDUAU0ud+lGXQ==
+ dependencies:
+ "@inquirer/core" "^9.2.1"
+ "@inquirer/type" "^2.0.0"
+ yoctocolors-cjs "^2.1.2"
+
+"@inquirer/search@^2.0.1":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-2.0.1.tgz#69b774a0a826de2e27b48981d01bc5ad81e73721"
+ integrity sha512-r5hBKZk3g5MkIzLVoSgE4evypGqtOannnB3PKTG9NRZxyFRKcfzrdxXXPcoJQsxJPzvdSU2Rn7pB7lw0GCmGAg==
+ dependencies:
+ "@inquirer/core" "^9.2.1"
+ "@inquirer/figures" "^1.0.6"
+ "@inquirer/type" "^2.0.0"
+ yoctocolors-cjs "^2.1.2"
+
+"@inquirer/select@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-3.0.1.tgz#1df9ed27fb85a5f526d559ac5ce7cc4e9dc4e7ec"
+ integrity sha512-lUDGUxPhdWMkN/fHy1Lk7pF3nK1fh/gqeyWXmctefhxLYxlDsc7vsPBEpxrfVGDsVdyYJsiJoD4bJ1b623cV1Q==
+ dependencies:
+ "@inquirer/core" "^9.2.1"
+ "@inquirer/figures" "^1.0.6"
+ "@inquirer/type" "^2.0.0"
+ ansi-escapes "^4.3.2"
+ yoctocolors-cjs "^2.1.2"
+
+"@inquirer/type@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-2.0.0.tgz#08fa513dca2cb6264fe1b0a2fabade051444e3f6"
+ integrity sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==
+ dependencies:
+ mute-stream "^1.0.0"
+
+"@istanbuljs/load-nyc-config@^1.0.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
+ integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==
+ dependencies:
+ camelcase "^5.3.1"
+ find-up "^4.1.0"
+ get-package-type "^0.1.0"
+ js-yaml "^3.13.1"
+ resolve-from "^5.0.0"
+
+"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3":
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
+ integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
+
+"@jest/console@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc"
+ integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+ slash "^3.0.0"
+
+"@jest/core@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f"
+ integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==
+ dependencies:
+ "@jest/console" "^29.7.0"
+ "@jest/reporters" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ ansi-escapes "^4.2.1"
+ chalk "^4.0.0"
+ ci-info "^3.2.0"
+ exit "^0.1.2"
+ graceful-fs "^4.2.9"
+ jest-changed-files "^29.7.0"
+ jest-config "^29.7.0"
+ jest-haste-map "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-regex-util "^29.6.3"
+ jest-resolve "^29.7.0"
+ jest-resolve-dependencies "^29.7.0"
+ jest-runner "^29.7.0"
+ jest-runtime "^29.7.0"
+ jest-snapshot "^29.7.0"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ jest-watcher "^29.7.0"
+ micromatch "^4.0.4"
+ pretty-format "^29.7.0"
+ slash "^3.0.0"
+ strip-ansi "^6.0.0"
+
+"@jest/environment@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7"
+ integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==
+ dependencies:
+ "@jest/fake-timers" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ jest-mock "^29.7.0"
+
+"@jest/expect-utils@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6"
+ integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==
+ dependencies:
+ jest-get-type "^29.6.3"
+
+"@jest/expect@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2"
+ integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==
+ dependencies:
+ expect "^29.7.0"
+ jest-snapshot "^29.7.0"
+
+"@jest/fake-timers@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565"
+ integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@sinonjs/fake-timers" "^10.0.2"
+ "@types/node" "*"
+ jest-message-util "^29.7.0"
+ jest-mock "^29.7.0"
+ jest-util "^29.7.0"
+
+"@jest/globals@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d"
+ integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/expect" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ jest-mock "^29.7.0"
+
+"@jest/reporters@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7"
+ integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==
+ dependencies:
+ "@bcoe/v8-coverage" "^0.2.3"
+ "@jest/console" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@jridgewell/trace-mapping" "^0.3.18"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ collect-v8-coverage "^1.0.0"
+ exit "^0.1.2"
+ glob "^7.1.3"
+ graceful-fs "^4.2.9"
+ istanbul-lib-coverage "^3.0.0"
+ istanbul-lib-instrument "^6.0.0"
+ istanbul-lib-report "^3.0.0"
+ istanbul-lib-source-maps "^4.0.0"
+ istanbul-reports "^3.1.3"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+ jest-worker "^29.7.0"
+ slash "^3.0.0"
+ string-length "^4.0.1"
+ strip-ansi "^6.0.0"
+ v8-to-istanbul "^9.0.1"
+
+"@jest/schemas@^29.6.3":
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03"
+ integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==
+ dependencies:
+ "@sinclair/typebox" "^0.27.8"
+
+"@jest/source-map@^29.6.3":
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4"
+ integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.18"
+ callsites "^3.0.0"
+ graceful-fs "^4.2.9"
+
+"@jest/test-result@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c"
+ integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==
+ dependencies:
+ "@jest/console" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ collect-v8-coverage "^1.0.0"
+
+"@jest/test-sequencer@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce"
+ integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==
+ dependencies:
+ "@jest/test-result" "^29.7.0"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ slash "^3.0.0"
+
+"@jest/transform@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c"
+ integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@jest/types" "^29.6.3"
+ "@jridgewell/trace-mapping" "^0.3.18"
+ babel-plugin-istanbul "^6.1.1"
+ chalk "^4.0.0"
+ convert-source-map "^2.0.0"
+ fast-json-stable-stringify "^2.1.0"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ jest-regex-util "^29.6.3"
+ jest-util "^29.7.0"
+ micromatch "^4.0.4"
+ pirates "^4.0.4"
+ slash "^3.0.0"
+ write-file-atomic "^4.0.2"
+
+"@jest/types@^29.6.3":
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59"
+ integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==
+ dependencies:
+ "@jest/schemas" "^29.6.3"
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ "@types/istanbul-reports" "^3.0.0"
+ "@types/node" "*"
+ "@types/yargs" "^17.0.8"
+ chalk "^4.0.0"
+
+"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5":
+ version "0.3.13"
+ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f"
+ integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==
+ dependencies:
+ "@jridgewell/sourcemap-codec" "^1.5.0"
+ "@jridgewell/trace-mapping" "^0.3.24"
+
+"@jridgewell/remapping@^2.3.5":
+ version "2.3.5"
+ resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1"
+ integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==
+ dependencies:
+ "@jridgewell/gen-mapping" "^0.3.5"
+ "@jridgewell/trace-mapping" "^0.3.24"
+
+"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0":
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
+ integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
+
+"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0":
+ version "1.5.5"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba"
+ integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==
+
+"@jridgewell/trace-mapping@0.3.9":
+ version "0.3.9"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9"
+ integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==
+ dependencies:
+ "@jridgewell/resolve-uri" "^3.0.3"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+
+"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.28":
+ version "0.3.31"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0"
+ integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==
+ dependencies:
+ "@jridgewell/resolve-uri" "^3.1.0"
+ "@jridgewell/sourcemap-codec" "^1.4.14"
+
+"@modelcontextprotocol/sdk@^1.27.1":
+ version "1.27.1"
+ resolved "https://registry.yarnpkg.com/@modelcontextprotocol/sdk/-/sdk-1.27.1.tgz#a602cf823bf8a68e13e7112f50aeb02b09fb83b9"
+ integrity sha512-sr6GbP+4edBwFndLbM60gf07z0FQ79gaExpnsjMGePXqFcSSb7t6iscpjk9DhFhwd+mTEQrzNafGP8/iGGFYaA==
+ dependencies:
+ "@hono/node-server" "^1.19.9"
+ ajv "^8.17.1"
+ ajv-formats "^3.0.1"
+ content-type "^1.0.5"
+ cors "^2.8.5"
+ cross-spawn "^7.0.5"
+ eventsource "^3.0.2"
+ eventsource-parser "^3.0.0"
+ express "^5.2.1"
+ express-rate-limit "^8.2.1"
+ hono "^4.11.4"
+ jose "^6.1.3"
+ json-schema-typed "^8.0.2"
+ pkce-challenge "^5.0.0"
+ raw-body "^3.0.0"
+ zod "^3.25 || ^4.0"
+ zod-to-json-schema "^3.25.1"
+
+"@nodelib/fs.scandir@2.1.5":
+ version "2.1.5"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
+ integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
+ dependencies:
+ "@nodelib/fs.stat" "2.0.5"
+ run-parallel "^1.1.9"
+
+"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
+ integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
+
+"@nodelib/fs.walk@^1.2.3":
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
+ integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
+ dependencies:
+ "@nodelib/fs.scandir" "2.1.5"
+ fastq "^1.6.0"
+
+"@pinojs/redact@^0.4.0":
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/@pinojs/redact/-/redact-0.4.0.tgz#c3de060dd12640dcc838516aa2a6803cc7b2e9d6"
+ integrity sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==
+
+"@pkgr/core@^0.2.9":
+ version "0.2.9"
+ resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.9.tgz#d229a7b7f9dac167a156992ef23c7f023653f53b"
+ integrity sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==
+
+"@sinclair/typebox@^0.27.8":
+ version "0.27.8"
+ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e"
+ integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==
+
+"@sinonjs/commons@^3.0.0":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd"
+ integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==
+ dependencies:
+ type-detect "4.0.8"
+
+"@sinonjs/fake-timers@^10.0.2":
+ version "10.3.0"
+ resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66"
+ integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==
+ dependencies:
+ "@sinonjs/commons" "^3.0.0"
+
+"@ts-morph/common@~0.20.0":
+ version "0.20.0"
+ resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.20.0.tgz#3f161996b085ba4519731e4d24c35f6cba5b80af"
+ integrity sha512-7uKjByfbPpwuzkstL3L5MQyuXPSKdoNG93Fmi2JoDcTf3pEP731JdRFAduRVkOs8oqxPsXKA+ScrWkdQ8t/I+Q==
+ dependencies:
+ fast-glob "^3.2.12"
+ minimatch "^7.4.3"
+ mkdirp "^2.1.6"
+ path-browserify "^1.0.1"
+
+"@tsconfig/node10@^1.0.7":
+ version "1.0.12"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.12.tgz#be57ceac1e4692b41be9de6be8c32a106636dba4"
+ integrity sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==
+
+"@tsconfig/node12@^1.0.7":
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d"
+ integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==
+
+"@tsconfig/node14@^1.0.0":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1"
+ integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==
+
+"@tsconfig/node16@^1.0.2":
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9"
+ integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==
+
+"@types/babel__core@^7.1.14":
+ version "7.20.5"
+ resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017"
+ integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==
+ dependencies:
+ "@babel/parser" "^7.20.7"
+ "@babel/types" "^7.20.7"
+ "@types/babel__generator" "*"
+ "@types/babel__template" "*"
+ "@types/babel__traverse" "*"
+
+"@types/babel__generator@*":
+ version "7.27.0"
+ resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.27.0.tgz#b5819294c51179957afaec341442f9341e4108a9"
+ integrity sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==
+ dependencies:
+ "@babel/types" "^7.0.0"
+
+"@types/babel__template@*":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f"
+ integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==
+ dependencies:
+ "@babel/parser" "^7.1.0"
+ "@babel/types" "^7.0.0"
+
+"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
+ version "7.28.0"
+ resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.28.0.tgz#07d713d6cce0d265c9849db0cbe62d3f61f36f74"
+ integrity sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==
+ dependencies:
+ "@babel/types" "^7.28.2"
+
+"@types/body-parser@*":
+ version "1.19.6"
+ resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.6.tgz#1859bebb8fd7dac9918a45d54c1971ab8b5af474"
+ integrity sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==
+ dependencies:
+ "@types/connect" "*"
+ "@types/node" "*"
+
+"@types/connect@*":
+ version "3.4.38"
+ resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858"
+ integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==
+ dependencies:
+ "@types/node" "*"
+
+"@types/cookie-parser@^1.4.10":
+ version "1.4.10"
+ resolved "https://registry.yarnpkg.com/@types/cookie-parser/-/cookie-parser-1.4.10.tgz#a045272a383a30597a01955d4f9c790018f214e4"
+ integrity sha512-B4xqkqfZ8Wek+rCOeRxsjMS9OgvzebEzzLYw7NHYuvzb7IdxOkI0ZHGgeEBX4PUM7QGVvNSK60T3OvWj3YfBRg==
+
+"@types/cors@^2.8.19":
+ version "2.8.19"
+ resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.19.tgz#d93ea2673fd8c9f697367f5eeefc2bbfa94f0342"
+ integrity sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==
+ dependencies:
+ "@types/node" "*"
+
+"@types/estree@^1.0.6":
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e"
+ integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==
+
+"@types/express-serve-static-core@^5.0.0":
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.1.1.tgz#1a77faffee9572d39124933259be2523837d7eaa"
+ integrity sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==
+ dependencies:
+ "@types/node" "*"
+ "@types/qs" "*"
+ "@types/range-parser" "*"
+ "@types/send" "*"
+
+"@types/express@^5.0.3":
+ version "5.0.6"
+ resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.6.tgz#2d724b2c990dcb8c8444063f3580a903f6d500cc"
+ integrity sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==
+ dependencies:
+ "@types/body-parser" "*"
+ "@types/express-serve-static-core" "^5.0.0"
+ "@types/serve-static" "^2"
+
+"@types/graceful-fs@^4.1.3":
+ version "4.1.9"
+ resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4"
+ integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==
+ dependencies:
+ "@types/node" "*"
+
+"@types/http-errors@*":
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.5.tgz#5b749ab2b16ba113423feb1a64a95dcd30398472"
+ integrity sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==
+
+"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7"
+ integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==
+
+"@types/istanbul-lib-report@*":
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf"
+ integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==
+ dependencies:
+ "@types/istanbul-lib-coverage" "*"
+
+"@types/istanbul-reports@^3.0.0":
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54"
+ integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==
+ dependencies:
+ "@types/istanbul-lib-report" "*"
+
+"@types/jest@^29.4.0":
+ version "29.5.14"
+ resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.14.tgz#2b910912fa1d6856cadcd0c1f95af7df1d6049e5"
+ integrity sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==
+ dependencies:
+ expect "^29.0.0"
+ pretty-format "^29.0.0"
+
+"@types/json-schema@^7.0.15":
+ version "7.0.15"
+ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
+ integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
+
+"@types/mute-stream@^0.0.4":
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/@types/mute-stream/-/mute-stream-0.0.4.tgz#77208e56a08767af6c5e1237be8888e2f255c478"
+ integrity sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==
+ dependencies:
+ "@types/node" "*"
+
+"@types/node@*":
+ version "25.0.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-25.0.8.tgz#e54e00f94fe1db2497b3e42d292b8376a2678c8d"
+ integrity sha512-powIePYMmC3ibL0UJ2i2s0WIbq6cg6UyVFQxSCpaPxxzAaziRfimGivjdF943sSGV6RADVbk0Nvlm5P/FB44Zg==
+ dependencies:
+ undici-types "~7.16.0"
+
+"@types/node@^22.5.5":
+ version "22.19.6"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-22.19.6.tgz#0e9d80ebcd2dfce03265768c17a1212d4eb07e82"
+ integrity sha512-qm+G8HuG6hOHQigsi7VGuLjUVu6TtBo/F05zvX04Mw2uCg9Dv0Qxy3Qw7j41SidlTcl5D/5yg0SEZqOB+EqZnQ==
+ dependencies:
+ undici-types "~6.21.0"
+
+"@types/qs@*", "@types/qs@^6.14.0":
+ version "6.14.0"
+ resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.14.0.tgz#d8b60cecf62f2db0fb68e5e006077b9178b85de5"
+ integrity sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==
+
+"@types/range-parser@*":
+ version "1.2.7"
+ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb"
+ integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==
+
+"@types/send@*":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@types/send/-/send-1.2.1.tgz#6a784e45543c18c774c049bff6d3dbaf045c9c74"
+ integrity sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==
+ dependencies:
+ "@types/node" "*"
+
+"@types/serve-static@^2":
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-2.2.0.tgz#d4a447503ead0d1671132d1ab6bd58b805d8de6a"
+ integrity sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==
+ dependencies:
+ "@types/http-errors" "*"
+ "@types/node" "*"
+
+"@types/stack-utils@^2.0.0":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8"
+ integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==
+
+"@types/wrap-ansi@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz#18b97a972f94f60a679fd5c796d96421b9abb9fd"
+ integrity sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==
+
+"@types/yargs-parser@*":
+ version "21.0.3"
+ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15"
+ integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==
+
+"@types/yargs@^17.0.8":
+ version "17.0.35"
+ resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.35.tgz#07013e46aa4d7d7d50a49e15604c1c5340d4eb24"
+ integrity sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==
+ dependencies:
+ "@types/yargs-parser" "*"
+
+"@typescript-eslint/eslint-plugin@8.31.1":
+ version "8.31.1"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.31.1.tgz#62f1befe59647524994e89de4516d8dcba7a850a"
+ integrity sha512-oUlH4h1ABavI4F0Xnl8/fOtML/eu8nI2A1nYd+f+55XI0BLu+RIqKoCiZKNo6DtqZBEQm5aNKA20G3Z5w3R6GQ==
+ dependencies:
+ "@eslint-community/regexpp" "^4.10.0"
+ "@typescript-eslint/scope-manager" "8.31.1"
+ "@typescript-eslint/type-utils" "8.31.1"
+ "@typescript-eslint/utils" "8.31.1"
+ "@typescript-eslint/visitor-keys" "8.31.1"
+ graphemer "^1.4.0"
+ ignore "^5.3.1"
+ natural-compare "^1.4.0"
+ ts-api-utils "^2.0.1"
+
+"@typescript-eslint/parser@8.31.1":
+ version "8.31.1"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.31.1.tgz#e9b0ccf30d37dde724ee4d15f4dbc195995cce1b"
+ integrity sha512-oU/OtYVydhXnumd0BobL9rkJg7wFJ9bFFPmSmB/bf/XWN85hlViji59ko6bSKBXyseT9V8l+CN1nwmlbiN0G7Q==
+ dependencies:
+ "@typescript-eslint/scope-manager" "8.31.1"
+ "@typescript-eslint/types" "8.31.1"
+ "@typescript-eslint/typescript-estree" "8.31.1"
+ "@typescript-eslint/visitor-keys" "8.31.1"
+ debug "^4.3.4"
+
+"@typescript-eslint/scope-manager@8.31.1":
+ version "8.31.1"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.31.1.tgz#1eb52e76878f545e4add142e0d8e3e97e7aa443b"
+ integrity sha512-BMNLOElPxrtNQMIsFHE+3P0Yf1z0dJqV9zLdDxN/xLlWMlXK/ApEsVEKzpizg9oal8bAT5Sc7+ocal7AC1HCVw==
+ dependencies:
+ "@typescript-eslint/types" "8.31.1"
+ "@typescript-eslint/visitor-keys" "8.31.1"
+
+"@typescript-eslint/type-utils@8.31.1":
+ version "8.31.1"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.31.1.tgz#be0f438fb24b03568e282a0aed85f776409f970c"
+ integrity sha512-fNaT/m9n0+dpSp8G/iOQ05GoHYXbxw81x+yvr7TArTuZuCA6VVKbqWYVZrV5dVagpDTtj/O8k5HBEE/p/HM5LA==
+ dependencies:
+ "@typescript-eslint/typescript-estree" "8.31.1"
+ "@typescript-eslint/utils" "8.31.1"
+ debug "^4.3.4"
+ ts-api-utils "^2.0.1"
+
+"@typescript-eslint/types@8.31.1":
+ version "8.31.1"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.31.1.tgz#478ed6f7e8aee1be7b63a60212b6bffe1423b5d4"
+ integrity sha512-SfepaEFUDQYRoA70DD9GtytljBePSj17qPxFHA/h3eg6lPTqGJ5mWOtbXCk1YrVU1cTJRd14nhaXWFu0l2troQ==
+
+"@typescript-eslint/typescript-estree@8.31.1":
+ version "8.31.1"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.1.tgz#37792fe7ef4d3021c7580067c8f1ae66daabacdf"
+ integrity sha512-kaA0ueLe2v7KunYOyWYtlf/QhhZb7+qh4Yw6Ni5kgukMIG+iP773tjgBiLWIXYumWCwEq3nLW+TUywEp8uEeag==
+ dependencies:
+ "@typescript-eslint/types" "8.31.1"
+ "@typescript-eslint/visitor-keys" "8.31.1"
+ debug "^4.3.4"
+ fast-glob "^3.3.2"
+ is-glob "^4.0.3"
+ minimatch "^9.0.4"
+ semver "^7.6.0"
+ ts-api-utils "^2.0.1"
+
+"@typescript-eslint/utils@8.31.1":
+ version "8.31.1"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.31.1.tgz#5628ea0393598a0b2f143d0fc6d019f0dee9dd14"
+ integrity sha512-2DSI4SNfF5T4oRveQ4nUrSjUqjMND0nLq9rEkz0gfGr3tg0S5KB6DhwR+WZPCjzkZl3cH+4x2ce3EsL50FubjQ==
+ dependencies:
+ "@eslint-community/eslint-utils" "^4.4.0"
+ "@typescript-eslint/scope-manager" "8.31.1"
+ "@typescript-eslint/types" "8.31.1"
+ "@typescript-eslint/typescript-estree" "8.31.1"
+
+"@typescript-eslint/visitor-keys@8.31.1":
+ version "8.31.1"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.1.tgz#6742b0e3ba1e0c1e35bdaf78c03e759eb8dd8e75"
+ integrity sha512-I+/rgqOVBn6f0o7NDTmAPWWC6NuqhV174lfYvAm9fUaWeiefLdux9/YI3/nLugEn9L8fcSi0XmpKi/r5u0nmpw==
+ dependencies:
+ "@typescript-eslint/types" "8.31.1"
+ eslint-visitor-keys "^4.2.0"
+
+"@valtown/deno-http-worker@^0.0.21":
+ version "0.0.21"
+ resolved "https://registry.yarnpkg.com/@valtown/deno-http-worker/-/deno-http-worker-0.0.21.tgz#9ce3b5c1d0db211fe7ea8297881fe551838474ad"
+ integrity sha512-16kFuUykann75lNytnXXIQlmpzreZjzdyT27ebT3yNGCS3kKaS1iZYWHc3Si9An54Cphwr4qEcviChQkEeJBlA==
+
+accepts@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/accepts/-/accepts-2.0.0.tgz#bbcf4ba5075467f3f2131eab3cffc73c2f5d7895"
+ integrity sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==
+ dependencies:
+ mime-types "^3.0.0"
+ negotiator "^1.0.0"
+
+acorn-jsx@^5.3.2:
+ version "5.3.2"
+ resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
+ integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
+
+acorn-walk@^8.1.1:
+ version "8.3.4"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7"
+ integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==
+ dependencies:
+ acorn "^8.11.0"
+
+acorn@^8.11.0, acorn@^8.4.1:
+ version "8.15.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816"
+ integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==
+
+acorn@^8.15.0:
+ version "8.16.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.16.0.tgz#4ce79c89be40afe7afe8f3adb902a1f1ce9ac08a"
+ integrity sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==
+
+aggregate-error@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
+ integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
+ dependencies:
+ clean-stack "^2.0.0"
+ indent-string "^4.0.0"
+
+ajv-formats@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-3.0.1.tgz#3d5dc762bca17679c3c2ea7e90ad6b7532309578"
+ integrity sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==
+ dependencies:
+ ajv "^8.0.0"
+
+ajv@^6.14.0:
+ version "6.14.0"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.14.0.tgz#fd067713e228210636ebb08c60bd3765d6dbe73a"
+ integrity sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==
+ dependencies:
+ fast-deep-equal "^3.1.1"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.4.1"
+ uri-js "^4.2.2"
+
+ajv@^8.0.0, ajv@^8.17.1:
+ version "8.17.1"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6"
+ integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==
+ dependencies:
+ fast-deep-equal "^3.1.3"
+ fast-uri "^3.0.1"
+ json-schema-traverse "^1.0.0"
+ require-from-string "^2.0.2"
+
+ajv@^8.18.0:
+ version "8.18.0"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.18.0.tgz#8864186b6738d003eb3a933172bb3833e10cefbc"
+ integrity sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==
+ dependencies:
+ fast-deep-equal "^3.1.3"
+ fast-uri "^3.0.1"
+ json-schema-traverse "^1.0.0"
+ require-from-string "^2.0.2"
+
+ansi-escapes@^4.2.1, ansi-escapes@^4.3.2:
+ version "4.3.2"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
+ integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
+ dependencies:
+ type-fest "^0.21.3"
+
+ansi-regex@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+ integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+
+ansi-styles@^4.0.0, ansi-styles@^4.1.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+ integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+ dependencies:
+ color-convert "^2.0.1"
+
+ansi-styles@^5.0.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
+ integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
+
+anymatch@^3.0.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
+ integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
+ dependencies:
+ normalize-path "^3.0.0"
+ picomatch "^2.0.4"
+
+arg@^4.1.0:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
+ integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
+
+argparse@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+ integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
+ dependencies:
+ sprintf-js "~1.0.2"
+
+argparse@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+ integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+
+atomic-sleep@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b"
+ integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==
+
+babel-jest@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5"
+ integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==
+ dependencies:
+ "@jest/transform" "^29.7.0"
+ "@types/babel__core" "^7.1.14"
+ babel-plugin-istanbul "^6.1.1"
+ babel-preset-jest "^29.6.3"
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ slash "^3.0.0"
+
+babel-plugin-istanbul@^6.1.1:
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73"
+ integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@istanbuljs/load-nyc-config" "^1.0.0"
+ "@istanbuljs/schema" "^0.1.2"
+ istanbul-lib-instrument "^5.0.4"
+ test-exclude "^6.0.0"
+
+babel-plugin-jest-hoist@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626"
+ integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==
+ dependencies:
+ "@babel/template" "^7.3.3"
+ "@babel/types" "^7.3.3"
+ "@types/babel__core" "^7.1.14"
+ "@types/babel__traverse" "^7.0.6"
+
+babel-preset-current-node-syntax@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz#20730d6cdc7dda5d89401cab10ac6a32067acde6"
+ integrity sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==
+ dependencies:
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
+ "@babel/plugin-syntax-bigint" "^7.8.3"
+ "@babel/plugin-syntax-class-properties" "^7.12.13"
+ "@babel/plugin-syntax-class-static-block" "^7.14.5"
+ "@babel/plugin-syntax-import-attributes" "^7.24.7"
+ "@babel/plugin-syntax-import-meta" "^7.10.4"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+ "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
+ "@babel/plugin-syntax-top-level-await" "^7.14.5"
+
+babel-preset-jest@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c"
+ integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==
+ dependencies:
+ babel-plugin-jest-hoist "^29.6.3"
+ babel-preset-current-node-syntax "^1.0.0"
+
+balanced-match@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+ integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+
+baseline-browser-mapping@^2.9.0:
+ version "2.9.14"
+ resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.14.tgz#3b6af0bc032445bca04de58caa9a87cfe921cbb3"
+ integrity sha512-B0xUquLkiGLgHhpPBqvl7GWegWBUNuujQ6kXd/r1U38ElPT6Ok8KZ8e+FpUGEc2ZoRQUzq/aUnaKFc/svWUGSg==
+
+body-parser@^2.2.1:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-2.2.2.tgz#1a32cdb966beaf68de50a9dfbe5b58f83cb8890c"
+ integrity sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==
+ dependencies:
+ bytes "^3.1.2"
+ content-type "^1.0.5"
+ debug "^4.4.3"
+ http-errors "^2.0.0"
+ iconv-lite "^0.7.0"
+ on-finished "^2.4.1"
+ qs "^6.14.1"
+ raw-body "^3.0.1"
+ type-is "^2.0.1"
+
+brace-expansion@^1.1.7:
+ version "1.1.12"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843"
+ integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+brace-expansion@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7"
+ integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==
+ dependencies:
+ balanced-match "^1.0.0"
+
+braces@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
+ integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
+ dependencies:
+ fill-range "^7.1.1"
+
+browserslist@^4.24.0:
+ version "4.28.1"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.1.tgz#7f534594628c53c63101079e27e40de490456a95"
+ integrity sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==
+ dependencies:
+ baseline-browser-mapping "^2.9.0"
+ caniuse-lite "^1.0.30001759"
+ electron-to-chromium "^1.5.263"
+ node-releases "^2.0.27"
+ update-browserslist-db "^1.2.0"
+
+bs-logger@^0.2.6:
+ version "0.2.6"
+ resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8"
+ integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==
+ dependencies:
+ fast-json-stable-stringify "2.x"
+
+bser@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
+ integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==
+ dependencies:
+ node-int64 "^0.4.0"
+
+buffer-from@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
+ integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
+
+bytes@^3.1.2, bytes@~3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
+ integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
+
+call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6"
+ integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==
+ dependencies:
+ es-errors "^1.3.0"
+ function-bind "^1.1.2"
+
+call-bound@^1.0.2:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a"
+ integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==
+ dependencies:
+ call-bind-apply-helpers "^1.0.2"
+ get-intrinsic "^1.3.0"
+
+callsites@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
+ integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+
+camelcase@^5.3.1:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
+ integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+
+camelcase@^6.2.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
+ integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
+
+caniuse-lite@^1.0.30001759:
+ version "1.0.30001764"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001764.tgz#03206c56469f236103b90f9ae10bcb8b9e1f6005"
+ integrity sha512-9JGuzl2M+vPL+pz70gtMF9sHdMFbY9FJaQBi186cHKH3pSzDvzoUJUPV6fqiKIMyXbud9ZLg4F3Yza1vJ1+93g==
+
+chalk@^4.0.0:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
+ integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
+char-regex@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
+ integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==
+
+chardet@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
+ integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
+
+ci-info@^3.2.0:
+ version "3.9.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4"
+ integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
+
+cjs-module-lexer@^1.0.0:
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz#0f79731eb8cfe1ec72acd4066efac9d61991b00d"
+ integrity sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==
+
+clean-stack@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
+ integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
+
+cli-width@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5"
+ integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==
+
+cliui@^8.0.1:
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"
+ integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
+ dependencies:
+ string-width "^4.2.0"
+ strip-ansi "^6.0.1"
+ wrap-ansi "^7.0.0"
+
+co@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+ integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==
+
+code-block-writer@^12.0.0:
+ version "12.0.0"
+ resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-12.0.0.tgz#4dd58946eb4234105aff7f0035977b2afdc2a770"
+ integrity sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==
+
+collect-v8-coverage@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz#cc1f01eb8d02298cbc9a437c74c70ab4e5210b80"
+ integrity sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==
+
+color-convert@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+ integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+ dependencies:
+ color-name "~1.1.4"
+
+color-name@~1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+colorette@^2.0.7:
+ version "2.0.20"
+ resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a"
+ integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==
+
+commander@^13.1.0:
+ version "13.1.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-13.1.0.tgz#776167db68c78f38dcce1f9b8d7b8b9a488abf46"
+ integrity sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
+
+content-disposition@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-1.0.1.tgz#a8b7bbeb2904befdfb6787e5c0c086959f605f9b"
+ integrity sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==
+
+content-type@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
+ integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
+
+convert-source-map@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
+ integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
+
+cookie-parser@^1.4.6:
+ version "1.4.7"
+ resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.7.tgz#e2125635dfd766888ffe90d60c286404fa0e7b26"
+ integrity sha512-nGUvgXnotP3BsjiLX2ypbQnWoGUPIIfHQNZkkC668ntrzGWEZVW70HDEB1qnNGMicPje6EttlIgzo51YSwNQGw==
+ dependencies:
+ cookie "0.7.2"
+ cookie-signature "1.0.6"
+
+cookie-signature@1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
+ integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
+
+cookie-signature@^1.2.1:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.2.2.tgz#57c7fc3cc293acab9fec54d73e15690ebe4a1793"
+ integrity sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==
+
+cookie@0.7.2, cookie@^0.7.1:
+ version "0.7.2"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7"
+ integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==
+
+cors@^2.8.5:
+ version "2.8.5"
+ resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29"
+ integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==
+ dependencies:
+ object-assign "^4"
+ vary "^1"
+
+create-jest@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320"
+ integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ chalk "^4.0.0"
+ exit "^0.1.2"
+ graceful-fs "^4.2.9"
+ jest-config "^29.7.0"
+ jest-util "^29.7.0"
+ prompts "^2.0.1"
+
+create-require@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
+ integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
+
+cross-spawn@^7.0.3, cross-spawn@^7.0.5, cross-spawn@^7.0.6:
+ version "7.0.6"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
+ integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
+ dependencies:
+ path-key "^3.1.0"
+ shebang-command "^2.0.0"
+ which "^2.0.1"
+
+dateformat@^4.6.3:
+ version "4.6.3"
+ resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5"
+ integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==
+
+debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.7, debug@^4.4.0, debug@^4.4.3:
+ version "4.4.3"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a"
+ integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==
+ dependencies:
+ ms "^2.1.3"
+
+dedent@^1.0.0:
+ version "1.7.1"
+ resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.7.1.tgz#364661eea3d73f3faba7089214420ec2f8f13e15"
+ integrity sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==
+
+deep-is@^0.1.3:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
+ integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
+
+deepmerge@^4.2.2:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
+ integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
+
+depd@^2.0.0, depd@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
+ integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
+
+detect-newline@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
+ integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
+
+diff-sequences@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921"
+ integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==
+
+diff@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
+ integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
+
+dunder-proto@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a"
+ integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==
+ dependencies:
+ call-bind-apply-helpers "^1.0.1"
+ es-errors "^1.3.0"
+ gopd "^1.2.0"
+
+ee-first@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
+ integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
+
+electron-to-chromium@^1.5.263:
+ version "1.5.267"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz#5d84f2df8cdb6bfe7e873706bb21bd4bfb574dc7"
+ integrity sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==
+
+emittery@^0.13.1:
+ version "0.13.1"
+ resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad"
+ integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==
+
+emoji-regex@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+encodeurl@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58"
+ integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==
+
+end-of-stream@^1.1.0:
+ version "1.4.5"
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.5.tgz#7344d711dea40e0b74abc2ed49778743ccedb08c"
+ integrity sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==
+ dependencies:
+ once "^1.4.0"
+
+error-ex@^1.3.1:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.4.tgz#b3a8d8bb6f92eecc1629e3e27d3c8607a8a32414"
+ integrity sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==
+ dependencies:
+ is-arrayish "^0.2.1"
+
+es-define-property@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa"
+ integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==
+
+es-errors@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
+ integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
+
+es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1"
+ integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==
+ dependencies:
+ es-errors "^1.3.0"
+
+escalade@^3.1.1, escalade@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
+ integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
+
+escape-html@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
+ integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
+
+escape-string-regexp@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
+ integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
+
+escape-string-regexp@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
+ integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+
+eslint-plugin-prettier@^5.4.1:
+ version "5.5.5"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.5.tgz#9eae11593faa108859c26f9a9c367d619a0769c0"
+ integrity sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==
+ dependencies:
+ prettier-linter-helpers "^1.0.1"
+ synckit "^0.11.12"
+
+eslint-plugin-unused-imports@^4.1.4:
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-4.4.1.tgz#a831f0a2937d7631eba30cb87091ab7d3a5da0e1"
+ integrity sha512-oZGYUz1X3sRMGUB+0cZyK2VcvRX5lm/vB56PgNNcU+7ficUCKm66oZWKUubXWnOuPjQ8PvmXtCViXBMONPe7tQ==
+
+eslint-scope@^8.4.0:
+ version "8.4.0"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.4.0.tgz#88e646a207fad61436ffa39eb505147200655c82"
+ integrity sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==
+ dependencies:
+ esrecurse "^4.3.0"
+ estraverse "^5.2.0"
+
+eslint-visitor-keys@^3.4.3:
+ version "3.4.3"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
+ integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
+
+eslint-visitor-keys@^4.2.0, eslint-visitor-keys@^4.2.1:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#4cfea60fe7dd0ad8e816e1ed026c1d5251b512c1"
+ integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==
+
+eslint@^9.39.1:
+ version "9.39.4"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.39.4.tgz#855da1b2e2ad66dc5991195f35e262bcec8117b5"
+ integrity sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==
+ dependencies:
+ "@eslint-community/eslint-utils" "^4.8.0"
+ "@eslint-community/regexpp" "^4.12.1"
+ "@eslint/config-array" "^0.21.2"
+ "@eslint/config-helpers" "^0.4.2"
+ "@eslint/core" "^0.17.0"
+ "@eslint/eslintrc" "^3.3.5"
+ "@eslint/js" "9.39.4"
+ "@eslint/plugin-kit" "^0.4.1"
+ "@humanfs/node" "^0.16.6"
+ "@humanwhocodes/module-importer" "^1.0.1"
+ "@humanwhocodes/retry" "^0.4.2"
+ "@types/estree" "^1.0.6"
+ ajv "^6.14.0"
+ chalk "^4.0.0"
+ cross-spawn "^7.0.6"
+ debug "^4.3.2"
+ escape-string-regexp "^4.0.0"
+ eslint-scope "^8.4.0"
+ eslint-visitor-keys "^4.2.1"
+ espree "^10.4.0"
+ esquery "^1.5.0"
+ esutils "^2.0.2"
+ fast-deep-equal "^3.1.3"
+ file-entry-cache "^8.0.0"
+ find-up "^5.0.0"
+ glob-parent "^6.0.2"
+ ignore "^5.2.0"
+ imurmurhash "^0.1.4"
+ is-glob "^4.0.0"
+ json-stable-stringify-without-jsonify "^1.0.1"
+ lodash.merge "^4.6.2"
+ minimatch "^3.1.5"
+ natural-compare "^1.4.0"
+ optionator "^0.9.3"
+
+espree@^10.0.1, espree@^10.4.0:
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-10.4.0.tgz#d54f4949d4629005a1fa168d937c3ff1f7e2a837"
+ integrity sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==
+ dependencies:
+ acorn "^8.15.0"
+ acorn-jsx "^5.3.2"
+ eslint-visitor-keys "^4.2.1"
+
+esprima@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
+ integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
+
+esquery@^1.5.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.7.0.tgz#08d048f261f0ddedb5bae95f46809463d9c9496d"
+ integrity sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==
+ dependencies:
+ estraverse "^5.1.0"
+
+esrecurse@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
+ integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
+ dependencies:
+ estraverse "^5.2.0"
+
+estraverse@^5.1.0, estraverse@^5.2.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
+ integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
+
+esutils@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+ integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+etag@^1.8.1:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
+ integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
+
+eventsource-parser@^3.0.0, eventsource-parser@^3.0.1:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/eventsource-parser/-/eventsource-parser-3.0.6.tgz#292e165e34cacbc936c3c92719ef326d4aeb4e90"
+ integrity sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==
+
+eventsource@^3.0.2:
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-3.0.7.tgz#1157622e2f5377bb6aef2114372728ba0c156989"
+ integrity sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==
+ dependencies:
+ eventsource-parser "^3.0.1"
+
+execa@^5.0.0:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
+ integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
+ dependencies:
+ cross-spawn "^7.0.3"
+ get-stream "^6.0.0"
+ human-signals "^2.1.0"
+ is-stream "^2.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^4.0.1"
+ onetime "^5.1.2"
+ signal-exit "^3.0.3"
+ strip-final-newline "^2.0.0"
+
+exit@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
+ integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==
+
+expect@^29.0.0, expect@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc"
+ integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==
+ dependencies:
+ "@jest/expect-utils" "^29.7.0"
+ jest-get-type "^29.6.3"
+ jest-matcher-utils "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+
+express-rate-limit@^8.2.1:
+ version "8.3.1"
+ resolved "https://registry.yarnpkg.com/express-rate-limit/-/express-rate-limit-8.3.1.tgz#0aaba098eadd40f6737f30a98e6b16fa1a29edfb"
+ integrity sha512-D1dKN+cmyPWuvB+G2SREQDzPY1agpBIcTa9sJxOPMCNeH3gwzhqJRDWCXW3gg0y//+LQ/8j52JbMROWyrKdMdw==
+ dependencies:
+ ip-address "10.1.0"
+
+express@^5.1.0, express@^5.2.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/express/-/express-5.2.1.tgz#8f21d15b6d327f92b4794ecf8cb08a72f956ac04"
+ integrity sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==
+ dependencies:
+ accepts "^2.0.0"
+ body-parser "^2.2.1"
+ content-disposition "^1.0.0"
+ content-type "^1.0.5"
+ cookie "^0.7.1"
+ cookie-signature "^1.2.1"
+ debug "^4.4.0"
+ depd "^2.0.0"
+ encodeurl "^2.0.0"
+ escape-html "^1.0.3"
+ etag "^1.8.1"
+ finalhandler "^2.1.0"
+ fresh "^2.0.0"
+ http-errors "^2.0.0"
+ merge-descriptors "^2.0.0"
+ mime-types "^3.0.0"
+ on-finished "^2.4.1"
+ once "^1.4.0"
+ parseurl "^1.3.3"
+ proxy-addr "^2.0.7"
+ qs "^6.14.0"
+ range-parser "^1.2.1"
+ router "^2.2.0"
+ send "^1.1.0"
+ serve-static "^2.2.0"
+ statuses "^2.0.1"
+ type-is "^2.0.1"
+ vary "^1.1.2"
+
+external-editor@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
+ integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==
+ dependencies:
+ chardet "^0.7.0"
+ iconv-lite "^0.4.24"
+ tmp "^0.0.33"
+
+fast-copy@^4.0.0:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/fast-copy/-/fast-copy-4.0.2.tgz#57f14115e1edbec274f69090072a480aa29cbedd"
+ integrity sha512-ybA6PDXIXOXivLJK/z9e+Otk7ve13I4ckBvGO5I2RRmBU1gMHLVDJYEuJYhGwez7YNlYji2M2DvVU+a9mSFDlw==
+
+fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+fast-diff@^1.1.2:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0"
+ integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==
+
+fast-glob@^3.2.12, fast-glob@^3.3.2:
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818"
+ integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==
+ dependencies:
+ "@nodelib/fs.stat" "^2.0.2"
+ "@nodelib/fs.walk" "^1.2.3"
+ glob-parent "^5.1.2"
+ merge2 "^1.3.0"
+ micromatch "^4.0.8"
+
+fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+ integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+
+fast-levenshtein@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+ integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
+
+fast-safe-stringify@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884"
+ integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==
+
+fast-uri@^3.0.1:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz#66eecff6c764c0df9b762e62ca7edcfb53b4edfa"
+ integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==
+
+fastq@^1.6.0:
+ version "1.20.1"
+ resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.20.1.tgz#ca750a10dc925bc8b18839fd203e3ef4b3ced675"
+ integrity sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==
+ dependencies:
+ reusify "^1.0.4"
+
+fb-watchman@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c"
+ integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==
+ dependencies:
+ bser "2.1.1"
+
+fflate@^0.8.2:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.8.2.tgz#fc8631f5347812ad6028bbe4a2308b2792aa1dea"
+ integrity sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==
+
+file-entry-cache@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f"
+ integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==
+ dependencies:
+ flat-cache "^4.0.0"
+
+fill-range@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
+ integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
+ dependencies:
+ to-regex-range "^5.0.1"
+
+finalhandler@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-2.1.1.tgz#a2c517a6559852bcdb06d1f8bd7f51b68fad8099"
+ integrity sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==
+ dependencies:
+ debug "^4.4.0"
+ encodeurl "^2.0.0"
+ escape-html "^1.0.3"
+ on-finished "^2.4.1"
+ parseurl "^1.3.3"
+ statuses "^2.0.1"
+
+find-up@^4.0.0, find-up@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
+ integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+ dependencies:
+ locate-path "^5.0.0"
+ path-exists "^4.0.0"
+
+find-up@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
+ integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
+ dependencies:
+ locate-path "^6.0.0"
+ path-exists "^4.0.0"
+
+flat-cache@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c"
+ integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==
+ dependencies:
+ flatted "^3.2.9"
+ keyv "^4.5.4"
+
+flatted@^3.2.9:
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358"
+ integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==
+
+flora-colossus@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/flora-colossus/-/flora-colossus-2.0.0.tgz#af1e85db0a8256ef05f3fb531c1235236c97220a"
+ integrity sha512-dz4HxH6pOvbUzZpZ/yXhafjbR2I8cenK5xL0KtBFb7U2ADsR+OwXifnxZjij/pZWF775uSCMzWVd+jDik2H2IA==
+ dependencies:
+ debug "^4.3.4"
+ fs-extra "^10.1.0"
+
+forwarded@0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
+ integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
+
+fresh@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/fresh/-/fresh-2.0.0.tgz#8dd7df6a1b3a1b3a5cf186c05a5dd267622635a4"
+ integrity sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==
+
+fs-extra@^10.1.0:
+ version "10.1.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf"
+ integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==
+ dependencies:
+ graceful-fs "^4.2.0"
+ jsonfile "^6.0.1"
+ universalify "^2.0.0"
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+ integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
+
+fsevents@^2.3.2:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
+ integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
+
+function-bind@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
+ integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
+
+fuse.js@^7.1.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-7.1.0.tgz#306228b4befeee11e05b027087c2744158527d09"
+ integrity sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ==
+
+galactus@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/galactus/-/galactus-1.0.0.tgz#c2615182afa0c6d0859b92e56ae36d052827db7e"
+ integrity sha512-R1fam6D4CyKQGNlvJne4dkNF+PvUUl7TAJInvTGa9fti9qAv95quQz29GXapA4d8Ec266mJJxFVh82M4GIIGDQ==
+ dependencies:
+ debug "^4.3.4"
+ flora-colossus "^2.0.0"
+ fs-extra "^10.1.0"
+
+gensync@^1.0.0-beta.2:
+ version "1.0.0-beta.2"
+ resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
+ integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
+
+get-caller-file@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
+ integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+
+get-intrinsic@^1.2.5, get-intrinsic@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01"
+ integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
+ dependencies:
+ call-bind-apply-helpers "^1.0.2"
+ es-define-property "^1.0.1"
+ es-errors "^1.3.0"
+ es-object-atoms "^1.1.1"
+ function-bind "^1.1.2"
+ get-proto "^1.0.1"
+ gopd "^1.2.0"
+ has-symbols "^1.1.0"
+ hasown "^2.0.2"
+ math-intrinsics "^1.1.0"
+
+get-package-type@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
+ integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
+
+get-proto@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1"
+ integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==
+ dependencies:
+ dunder-proto "^1.0.1"
+ es-object-atoms "^1.0.0"
+
+get-stdin@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53"
+ integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==
+
+get-stream@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
+ integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
+
+glob-parent@^5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+ integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
+ dependencies:
+ is-glob "^4.0.1"
+
+glob-parent@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
+ integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
+ dependencies:
+ is-glob "^4.0.3"
+
+glob@^7.1.3, glob@^7.1.4:
+ version "7.2.3"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
+ integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.1.1"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+globals@^14.0.0:
+ version "14.0.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e"
+ integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==
+
+gopd@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
+ integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
+
+graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.9:
+ version "4.2.11"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
+ integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
+
+graphemer@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
+ integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
+
+handlebars@^4.7.8:
+ version "4.7.8"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9"
+ integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==
+ dependencies:
+ minimist "^1.2.5"
+ neo-async "^2.6.2"
+ source-map "^0.6.1"
+ wordwrap "^1.0.0"
+ optionalDependencies:
+ uglify-js "^3.1.4"
+
+has-flag@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
+ integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
+has-symbols@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338"
+ integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
+
+hasown@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
+ integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
+ dependencies:
+ function-bind "^1.1.2"
+
+help-me@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/help-me/-/help-me-5.0.0.tgz#b1ebe63b967b74060027c2ac61f9be12d354a6f6"
+ integrity sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==
+
+hono@^4.11.4, hono@^4.12.4:
+ version "4.12.7"
+ resolved "https://registry.yarnpkg.com/hono/-/hono-4.12.7.tgz#ca000956e965c2b3d791e43540498e616d6c6442"
+ integrity sha512-jq9l1DM0zVIvsm3lv9Nw9nlJnMNPOcAtsbsgiUhWcFzPE99Gvo6yRTlszSLLYacMeQ6quHD6hMfId8crVHvexw==
+
+html-escaper@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
+ integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
+
+http-errors@^2.0.0, http-errors@^2.0.1, http-errors@~2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.1.tgz#36d2f65bc909c8790018dd36fb4d93da6caae06b"
+ integrity sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==
+ dependencies:
+ depd "~2.0.0"
+ inherits "~2.0.4"
+ setprototypeof "~1.2.0"
+ statuses "~2.0.2"
+ toidentifier "~1.0.1"
+
+human-signals@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
+ integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
+
+iconv-lite@^0.4.24:
+ version "0.4.24"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3"
+
+iconv-lite@^0.7.0, iconv-lite@~0.7.0:
+ version "0.7.2"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.7.2.tgz#d0bdeac3f12b4835b7359c2ad89c422a4d1cc72e"
+ integrity sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3.0.0"
+
+ignore@^5.2.0, ignore@^5.3.1:
+ version "5.3.2"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5"
+ integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
+
+ignore@^7.0.5:
+ version "7.0.5"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9"
+ integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==
+
+import-fresh@^3.2.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf"
+ integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==
+ dependencies:
+ parent-module "^1.0.0"
+ resolve-from "^4.0.0"
+
+import-local@^3.0.2:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260"
+ integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==
+ dependencies:
+ pkg-dir "^4.2.0"
+ resolve-cwd "^3.0.0"
+
+imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+ integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
+
+indent-string@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
+ integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@2, inherits@^2.0.3, inherits@~2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+ip-address@10.1.0:
+ version "10.1.0"
+ resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-10.1.0.tgz#d8dcffb34d0e02eb241427444a6e23f5b0595aa4"
+ integrity sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==
+
+ipaddr.js@1.9.1:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
+ integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
+
+is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+ integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
+
+is-core-module@^2.16.1:
+ version "2.16.1"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4"
+ integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==
+ dependencies:
+ hasown "^2.0.2"
+
+is-extglob@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+ integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
+
+is-fullwidth-code-point@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+ integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
+is-generator-fn@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
+ integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
+
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
+ integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
+ dependencies:
+ is-extglob "^2.1.1"
+
+is-number@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
+is-promise@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3"
+ integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==
+
+is-stream@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
+ integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
+
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+ integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
+
+istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756"
+ integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==
+
+istanbul-lib-instrument@^5.0.4:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d"
+ integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==
+ dependencies:
+ "@babel/core" "^7.12.3"
+ "@babel/parser" "^7.14.7"
+ "@istanbuljs/schema" "^0.1.2"
+ istanbul-lib-coverage "^3.2.0"
+ semver "^6.3.0"
+
+istanbul-lib-instrument@^6.0.0:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765"
+ integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==
+ dependencies:
+ "@babel/core" "^7.23.9"
+ "@babel/parser" "^7.23.9"
+ "@istanbuljs/schema" "^0.1.3"
+ istanbul-lib-coverage "^3.2.0"
+ semver "^7.5.4"
+
+istanbul-lib-report@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d"
+ integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==
+ dependencies:
+ istanbul-lib-coverage "^3.0.0"
+ make-dir "^4.0.0"
+ supports-color "^7.1.0"
+
+istanbul-lib-source-maps@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551"
+ integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==
+ dependencies:
+ debug "^4.1.1"
+ istanbul-lib-coverage "^3.0.0"
+ source-map "^0.6.1"
+
+istanbul-reports@^3.1.3:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.2.0.tgz#cb4535162b5784aa623cee21a7252cf2c807ac93"
+ integrity sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==
+ dependencies:
+ html-escaper "^2.0.0"
+ istanbul-lib-report "^3.0.0"
+
+jest-changed-files@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a"
+ integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==
+ dependencies:
+ execa "^5.0.0"
+ jest-util "^29.7.0"
+ p-limit "^3.1.0"
+
+jest-circus@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a"
+ integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/expect" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ co "^4.6.0"
+ dedent "^1.0.0"
+ is-generator-fn "^2.0.0"
+ jest-each "^29.7.0"
+ jest-matcher-utils "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-runtime "^29.7.0"
+ jest-snapshot "^29.7.0"
+ jest-util "^29.7.0"
+ p-limit "^3.1.0"
+ pretty-format "^29.7.0"
+ pure-rand "^6.0.0"
+ slash "^3.0.0"
+ stack-utils "^2.0.3"
+
+jest-cli@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995"
+ integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==
+ dependencies:
+ "@jest/core" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ chalk "^4.0.0"
+ create-jest "^29.7.0"
+ exit "^0.1.2"
+ import-local "^3.0.2"
+ jest-config "^29.7.0"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ yargs "^17.3.1"
+
+jest-config@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f"
+ integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@jest/test-sequencer" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ babel-jest "^29.7.0"
+ chalk "^4.0.0"
+ ci-info "^3.2.0"
+ deepmerge "^4.2.2"
+ glob "^7.1.3"
+ graceful-fs "^4.2.9"
+ jest-circus "^29.7.0"
+ jest-environment-node "^29.7.0"
+ jest-get-type "^29.6.3"
+ jest-regex-util "^29.6.3"
+ jest-resolve "^29.7.0"
+ jest-runner "^29.7.0"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ micromatch "^4.0.4"
+ parse-json "^5.2.0"
+ pretty-format "^29.7.0"
+ slash "^3.0.0"
+ strip-json-comments "^3.1.1"
+
+jest-diff@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a"
+ integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==
+ dependencies:
+ chalk "^4.0.0"
+ diff-sequences "^29.6.3"
+ jest-get-type "^29.6.3"
+ pretty-format "^29.7.0"
+
+jest-docblock@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a"
+ integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==
+ dependencies:
+ detect-newline "^3.0.0"
+
+jest-each@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1"
+ integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ chalk "^4.0.0"
+ jest-get-type "^29.6.3"
+ jest-util "^29.7.0"
+ pretty-format "^29.7.0"
+
+jest-environment-node@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376"
+ integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/fake-timers" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ jest-mock "^29.7.0"
+ jest-util "^29.7.0"
+
+jest-get-type@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1"
+ integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==
+
+jest-haste-map@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104"
+ integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/graceful-fs" "^4.1.3"
+ "@types/node" "*"
+ anymatch "^3.0.3"
+ fb-watchman "^2.0.0"
+ graceful-fs "^4.2.9"
+ jest-regex-util "^29.6.3"
+ jest-util "^29.7.0"
+ jest-worker "^29.7.0"
+ micromatch "^4.0.4"
+ walker "^1.0.8"
+ optionalDependencies:
+ fsevents "^2.3.2"
+
+jest-leak-detector@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728"
+ integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==
+ dependencies:
+ jest-get-type "^29.6.3"
+ pretty-format "^29.7.0"
+
+jest-matcher-utils@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12"
+ integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==
+ dependencies:
+ chalk "^4.0.0"
+ jest-diff "^29.7.0"
+ jest-get-type "^29.6.3"
+ pretty-format "^29.7.0"
+
+jest-message-util@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3"
+ integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==
+ dependencies:
+ "@babel/code-frame" "^7.12.13"
+ "@jest/types" "^29.6.3"
+ "@types/stack-utils" "^2.0.0"
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ micromatch "^4.0.4"
+ pretty-format "^29.7.0"
+ slash "^3.0.0"
+ stack-utils "^2.0.3"
+
+jest-mock@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347"
+ integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ jest-util "^29.7.0"
+
+jest-pnp-resolver@^1.2.2:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e"
+ integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==
+
+jest-regex-util@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52"
+ integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==
+
+jest-resolve-dependencies@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428"
+ integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==
+ dependencies:
+ jest-regex-util "^29.6.3"
+ jest-snapshot "^29.7.0"
+
+jest-resolve@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30"
+ integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==
+ dependencies:
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ jest-pnp-resolver "^1.2.2"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ resolve "^1.20.0"
+ resolve.exports "^2.0.0"
+ slash "^3.0.0"
+
+jest-runner@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e"
+ integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==
+ dependencies:
+ "@jest/console" "^29.7.0"
+ "@jest/environment" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ emittery "^0.13.1"
+ graceful-fs "^4.2.9"
+ jest-docblock "^29.7.0"
+ jest-environment-node "^29.7.0"
+ jest-haste-map "^29.7.0"
+ jest-leak-detector "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-resolve "^29.7.0"
+ jest-runtime "^29.7.0"
+ jest-util "^29.7.0"
+ jest-watcher "^29.7.0"
+ jest-worker "^29.7.0"
+ p-limit "^3.1.0"
+ source-map-support "0.5.13"
+
+jest-runtime@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817"
+ integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/fake-timers" "^29.7.0"
+ "@jest/globals" "^29.7.0"
+ "@jest/source-map" "^29.6.3"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ cjs-module-lexer "^1.0.0"
+ collect-v8-coverage "^1.0.0"
+ glob "^7.1.3"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-mock "^29.7.0"
+ jest-regex-util "^29.6.3"
+ jest-resolve "^29.7.0"
+ jest-snapshot "^29.7.0"
+ jest-util "^29.7.0"
+ slash "^3.0.0"
+ strip-bom "^4.0.0"
+
+jest-snapshot@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5"
+ integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@babel/generator" "^7.7.2"
+ "@babel/plugin-syntax-jsx" "^7.7.2"
+ "@babel/plugin-syntax-typescript" "^7.7.2"
+ "@babel/types" "^7.3.3"
+ "@jest/expect-utils" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ babel-preset-current-node-syntax "^1.0.0"
+ chalk "^4.0.0"
+ expect "^29.7.0"
+ graceful-fs "^4.2.9"
+ jest-diff "^29.7.0"
+ jest-get-type "^29.6.3"
+ jest-matcher-utils "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+ natural-compare "^1.4.0"
+ pretty-format "^29.7.0"
+ semver "^7.5.3"
+
+jest-util@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc"
+ integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ ci-info "^3.2.0"
+ graceful-fs "^4.2.9"
+ picomatch "^2.2.3"
+
+jest-validate@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c"
+ integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ camelcase "^6.2.0"
+ chalk "^4.0.0"
+ jest-get-type "^29.6.3"
+ leven "^3.1.0"
+ pretty-format "^29.7.0"
+
+jest-watcher@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2"
+ integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==
+ dependencies:
+ "@jest/test-result" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ ansi-escapes "^4.2.1"
+ chalk "^4.0.0"
+ emittery "^0.13.1"
+ jest-util "^29.7.0"
+ string-length "^4.0.1"
+
+jest-worker@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a"
+ integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==
+ dependencies:
+ "@types/node" "*"
+ jest-util "^29.7.0"
+ merge-stream "^2.0.0"
+ supports-color "^8.0.0"
+
+jest@^29.4.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613"
+ integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==
+ dependencies:
+ "@jest/core" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ import-local "^3.0.2"
+ jest-cli "^29.7.0"
+
+jose@^6.1.3:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/jose/-/jose-6.2.1.tgz#7a6b1de83816deaee9055a558e1278a7b2b9ea1b"
+ integrity sha512-jUaKr1yrbfaImV7R2TN/b3IcZzsw38/chqMpo2XJ7i2F8AfM/lA4G1goC3JVEwg0H7UldTmSt3P68nt31W7/mw==
+
+joycon@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03"
+ integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==
+
+"jq-web@https://github.com/stainless-api/jq-web/releases/download/v0.8.8/jq-web.tar.gz":
+ version "0.8.8"
+ resolved "https://github.com/stainless-api/jq-web/releases/download/v0.8.8/jq-web.tar.gz#7849ef64bdfc28f70cbfc9888f886860e96da10d"
+
+js-tokens@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+js-yaml@^3.13.1:
+ version "3.14.2"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.2.tgz#77485ce1dd7f33c061fd1b16ecea23b55fcb04b0"
+ integrity sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
+js-yaml@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b"
+ integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==
+ dependencies:
+ argparse "^2.0.1"
+
+jsesc@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d"
+ integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==
+
+json-buffer@3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
+ integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
+
+json-parse-even-better-errors@^2.3.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
+ integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+
+json-schema-traverse@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+ integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
+json-schema-traverse@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
+ integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
+
+json-schema-typed@^8.0.2:
+ version "8.0.2"
+ resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-8.0.2.tgz#e98ee7b1899ff4a184534d1f167c288c66bbeff4"
+ integrity sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==
+
+json-stable-stringify-without-jsonify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+ integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
+
+json5@^2.2.2, json5@^2.2.3:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
+ integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
+
+jsonfile@^6.0.1:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.2.0.tgz#7c265bd1b65de6977478300087c99f1c84383f62"
+ integrity sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==
+ dependencies:
+ universalify "^2.0.0"
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+keyv@^4.5.4:
+ version "4.5.4"
+ resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
+ integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
+ dependencies:
+ json-buffer "3.0.1"
+
+kleur@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
+ integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
+
+leven@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
+ integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
+
+levn@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
+ integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
+ dependencies:
+ prelude-ls "^1.2.1"
+ type-check "~0.4.0"
+
+lines-and-columns@^1.1.6:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
+ integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
+
+locate-path@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
+ integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
+ dependencies:
+ p-locate "^4.1.0"
+
+locate-path@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
+ integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
+ dependencies:
+ p-locate "^5.0.0"
+
+lodash.memoize@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
+ integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==
+
+lodash.merge@^4.6.2:
+ version "4.6.2"
+ resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
+ integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
+
+lru-cache@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
+ integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
+ dependencies:
+ yallist "^3.0.2"
+
+make-dir@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e"
+ integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==
+ dependencies:
+ semver "^7.5.3"
+
+make-error@^1.1.1, make-error@^1.3.6:
+ version "1.3.6"
+ resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
+ integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
+
+makeerror@1.0.12:
+ version "1.0.12"
+ resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a"
+ integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==
+ dependencies:
+ tmpl "1.0.5"
+
+math-intrinsics@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9"
+ integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==
+
+media-typer@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-1.1.0.tgz#6ab74b8f2d3320f2064b2a87a38e7931ff3a5561"
+ integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==
+
+merge-descriptors@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-2.0.0.tgz#ea922f660635a2249ee565e0449f951e6b603808"
+ integrity sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==
+
+merge-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
+ integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
+
+merge2@^1.3.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
+ integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+
+micromatch@^4.0.4, micromatch@^4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
+ integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
+ dependencies:
+ braces "^3.0.3"
+ picomatch "^2.3.1"
+
+mime-db@^1.54.0:
+ version "1.54.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5"
+ integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==
+
+mime-types@^3.0.0, mime-types@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-3.0.2.tgz#39002d4182575d5af036ffa118100f2524b2e2ab"
+ integrity sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==
+ dependencies:
+ mime-db "^1.54.0"
+
+mimic-fn@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
+ integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
+
+minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.5:
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.5.tgz#580c88f8d5445f2bd6aa8f3cadefa0de79fbd69e"
+ integrity sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==
+ dependencies:
+ brace-expansion "^1.1.7"
+
+minimatch@^7.4.3:
+ version "7.4.6"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.6.tgz#845d6f254d8f4a5e4fd6baf44d5f10c8448365fb"
+ integrity sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==
+ dependencies:
+ brace-expansion "^2.0.1"
+
+minimatch@^9.0.4:
+ version "9.0.5"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
+ integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
+ dependencies:
+ brace-expansion "^2.0.1"
+
+minimist@^1.2.5, minimist@^1.2.6:
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
+ integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
+
+mkdirp@^2.1.6:
+ version "2.1.6"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.6.tgz#964fbcb12b2d8c5d6fbc62a963ac95a273e2cc19"
+ integrity sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==
+
+ms@^2.1.3:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
+mute-stream@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e"
+ integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==
+
+natural-compare@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+ integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
+
+negotiator@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-1.0.0.tgz#b6c91bb47172d69f93cfd7c357bbb529019b5f6a"
+ integrity sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==
+
+neo-async@^2.6.2:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
+ integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
+
+node-forge@^1.3.2:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.3.tgz#0ad80f6333b3a0045e827ac20b7f735f93716751"
+ integrity sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==
+
+node-int64@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
+ integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==
+
+node-releases@^2.0.27:
+ version "2.0.27"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e"
+ integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==
+
+normalize-path@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+
+npm-run-path@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
+ integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
+ dependencies:
+ path-key "^3.0.0"
+
+object-assign@^4:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+ integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
+
+object-inspect@^1.13.3:
+ version "1.13.4"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213"
+ integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==
+
+on-exit-leak-free@^2.1.0:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz#fed195c9ebddb7d9e4c3842f93f281ac8dadd3b8"
+ integrity sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==
+
+on-finished@^2.4.1:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
+ integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
+ dependencies:
+ ee-first "1.1.1"
+
+once@^1.3.0, once@^1.3.1, once@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
+ dependencies:
+ wrappy "1"
+
+onetime@^5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
+ integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
+ dependencies:
+ mimic-fn "^2.1.0"
+
+optionator@^0.9.3:
+ version "0.9.4"
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734"
+ integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==
+ dependencies:
+ deep-is "^0.1.3"
+ fast-levenshtein "^2.0.6"
+ levn "^0.4.1"
+ prelude-ls "^1.2.1"
+ type-check "^0.4.0"
+ word-wrap "^1.2.5"
+
+os-tmpdir@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
+ integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==
+
+p-all@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/p-all/-/p-all-3.0.0.tgz#077c023c37e75e760193badab2bad3ccd5782bfb"
+ integrity sha512-qUZbvbBFVXm6uJ7U/WDiO0fv6waBMbjlCm4E66oZdRR+egswICarIdHyVSZZHudH8T5SF8x/JG0q0duFzPnlBw==
+ dependencies:
+ p-map "^4.0.0"
+
+p-limit@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
+ integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
+ dependencies:
+ p-try "^2.0.0"
+
+p-limit@^3.0.2, p-limit@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
+ integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
+ dependencies:
+ yocto-queue "^0.1.0"
+
+p-locate@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
+ integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
+ dependencies:
+ p-limit "^2.2.0"
+
+p-locate@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
+ integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
+ dependencies:
+ p-limit "^3.0.2"
+
+p-map@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
+ integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
+ dependencies:
+ aggregate-error "^3.0.0"
+
+p-try@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
+ integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+
+parent-module@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
+ integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
+ dependencies:
+ callsites "^3.0.0"
+
+parse-json@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
+ integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ error-ex "^1.3.1"
+ json-parse-even-better-errors "^2.3.0"
+ lines-and-columns "^1.1.6"
+
+parseurl@^1.3.3:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
+ integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
+
+path-browserify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd"
+ integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==
+
+path-exists@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
+ integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+
+path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+ integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
+
+path-key@^3.0.0, path-key@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
+ integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+
+path-parse@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
+ integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+
+path-to-regexp@^8.0.0:
+ version "8.3.0"
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-8.3.0.tgz#aa818a6981f99321003a08987d3cec9c3474cd1f"
+ integrity sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==
+
+picocolors@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
+ integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
+
+picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
+ integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+
+pino-abstract-transport@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-3.0.0.tgz#b21e5f33a297e8c4c915c62b3ce5dd4a87a52c23"
+ integrity sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==
+ dependencies:
+ split2 "^4.0.0"
+
+pino-http@^11.0.0:
+ version "11.0.0"
+ resolved "https://registry.yarnpkg.com/pino-http/-/pino-http-11.0.0.tgz#ebadef4694fc59aadab9be7e5939aea625b4615f"
+ integrity sha512-wqg5XIAGRRIWtTk8qPGxkbrfiwEWz1lgedVLvhLALudKXvg1/L2lTFgTGPJ4Z2e3qcRmxoFxDuSdMdMGNM6I1g==
+ dependencies:
+ get-caller-file "^2.0.5"
+ pino "^10.0.0"
+ pino-std-serializers "^7.0.0"
+ process-warning "^5.0.0"
+
+pino-pretty@^13.1.3:
+ version "13.1.3"
+ resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-13.1.3.tgz#2274cccda925dd355c104079a5029f6598d0381b"
+ integrity sha512-ttXRkkOz6WWC95KeY9+xxWL6AtImwbyMHrL1mSwqwW9u+vLp/WIElvHvCSDg0xO/Dzrggz1zv3rN5ovTRVowKg==
+ dependencies:
+ colorette "^2.0.7"
+ dateformat "^4.6.3"
+ fast-copy "^4.0.0"
+ fast-safe-stringify "^2.1.1"
+ help-me "^5.0.0"
+ joycon "^3.1.1"
+ minimist "^1.2.6"
+ on-exit-leak-free "^2.1.0"
+ pino-abstract-transport "^3.0.0"
+ pump "^3.0.0"
+ secure-json-parse "^4.0.0"
+ sonic-boom "^4.0.1"
+ strip-json-comments "^5.0.2"
+
+pino-std-serializers@^7.0.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-7.1.0.tgz#a7b0cd65225f29e92540e7853bd73b07479893fc"
+ integrity sha512-BndPH67/JxGExRgiX1dX0w1FvZck5Wa4aal9198SrRhZjH3GxKQUKIBnYJTdj2HDN3UQAS06HlfcSbQj2OHmaw==
+
+pino@^10.0.0, pino@^10.3.1:
+ version "10.3.1"
+ resolved "https://registry.yarnpkg.com/pino/-/pino-10.3.1.tgz#6552c8f8d8481844c9e452e7bf0be90bff1939ce"
+ integrity sha512-r34yH/GlQpKZbU1BvFFqOjhISRo1MNx1tWYsYvmj6KIRHSPMT2+yHOEb1SG6NMvRoHRF0a07kCOox/9yakl1vg==
+ dependencies:
+ "@pinojs/redact" "^0.4.0"
+ atomic-sleep "^1.0.0"
+ on-exit-leak-free "^2.1.0"
+ pino-abstract-transport "^3.0.0"
+ pino-std-serializers "^7.0.0"
+ process-warning "^5.0.0"
+ quick-format-unescaped "^4.0.3"
+ real-require "^0.2.0"
+ safe-stable-stringify "^2.3.1"
+ sonic-boom "^4.0.1"
+ thread-stream "^4.0.0"
+
+pirates@^4.0.4:
+ version "4.0.7"
+ resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.7.tgz#643b4a18c4257c8a65104b73f3049ce9a0a15e22"
+ integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==
+
+pkce-challenge@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/pkce-challenge/-/pkce-challenge-5.0.1.tgz#3b4446865b17b1745e9ace2016a31f48ddf6230d"
+ integrity sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==
+
+pkg-dir@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
+ integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
+ dependencies:
+ find-up "^4.0.0"
+
+prelude-ls@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
+ integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+
+prettier-linter-helpers@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz#6a31f88a4bad6c7adda253de12ba4edaea80ebcd"
+ integrity sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==
+ dependencies:
+ fast-diff "^1.1.2"
+
+prettier@^3.0.0:
+ version "3.7.4"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.4.tgz#d2f8335d4b1cec47e1c8098645411b0c9dff9c0f"
+ integrity sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==
+
+pretty-bytes@^5.6.0:
+ version "5.6.0"
+ resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb"
+ integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==
+
+pretty-format@^29.0.0, pretty-format@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812"
+ integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==
+ dependencies:
+ "@jest/schemas" "^29.6.3"
+ ansi-styles "^5.0.0"
+ react-is "^18.0.0"
+
+process-warning@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-5.0.0.tgz#566e0bf79d1dff30a72d8bbbe9e8ecefe8d378d7"
+ integrity sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==
+
+prompts@^2.0.1:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069"
+ integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==
+ dependencies:
+ kleur "^3.0.3"
+ sisteransi "^1.0.5"
+
+proxy-addr@^2.0.7:
+ version "2.0.7"
+ resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
+ integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
+ dependencies:
+ forwarded "0.2.0"
+ ipaddr.js "1.9.1"
+
+pump@^3.0.0:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.4.tgz#1f313430527fa8b905622ebd22fe1444e757ab3c"
+ integrity sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
+punycode@^2.1.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
+ integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
+
+pure-rand@^6.0.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2"
+ integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==
+
+qs@^6.14.0, qs@^6.14.1:
+ version "6.14.1"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.1.tgz#a41d85b9d3902f31d27861790506294881871159"
+ integrity sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==
+ dependencies:
+ side-channel "^1.1.0"
+
+queue-microtask@^1.2.2:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
+ integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+
+quick-format-unescaped@^4.0.3:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7"
+ integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==
+
+range-parser@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
+ integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
+
+raw-body@^3.0.0, raw-body@^3.0.1:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-3.0.2.tgz#3e3ada5ae5568f9095d84376fd3a49b8fb000a51"
+ integrity sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==
+ dependencies:
+ bytes "~3.1.2"
+ http-errors "~2.0.1"
+ iconv-lite "~0.7.0"
+ unpipe "~1.0.0"
+
+react-is@^18.0.0:
+ version "18.3.1"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e"
+ integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==
+
+readable-stream@^3.4.0:
+ version "3.6.2"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
+ integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
+ dependencies:
+ inherits "^2.0.3"
+ string_decoder "^1.1.1"
+ util-deprecate "^1.0.1"
+
+real-require@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.2.0.tgz#209632dea1810be2ae063a6ac084fee7e33fba78"
+ integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==
+
+require-directory@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+ integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
+
+require-from-string@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
+ integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
+
+resolve-cwd@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
+ integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
+ dependencies:
+ resolve-from "^5.0.0"
+
+resolve-from@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
+ integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+
+resolve-from@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
+ integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
+
+resolve.exports@^2.0.0:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.3.tgz#41955e6f1b4013b7586f873749a635dea07ebe3f"
+ integrity sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==
+
+resolve@^1.20.0:
+ version "1.22.11"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz#aad857ce1ffb8bfa9b0b1ac29f1156383f68c262"
+ integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==
+ dependencies:
+ is-core-module "^2.16.1"
+ path-parse "^1.0.7"
+ supports-preserve-symlinks-flag "^1.0.0"
+
+reusify@^1.0.4:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f"
+ integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==
+
+router@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/router/-/router-2.2.0.tgz#019be620b711c87641167cc79b99090f00b146ef"
+ integrity sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==
+ dependencies:
+ debug "^4.4.0"
+ depd "^2.0.0"
+ is-promise "^4.0.0"
+ parseurl "^1.3.3"
+ path-to-regexp "^8.0.0"
+
+run-parallel@^1.1.9:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
+ integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
+ dependencies:
+ queue-microtask "^1.2.2"
+
+safe-buffer@~5.2.0:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
+safe-stable-stringify@^2.3.1:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz#4ca2f8e385f2831c432a719b108a3bf7af42a1dd"
+ integrity sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==
+
+"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0":
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+secure-json-parse@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-4.1.0.tgz#4f1ab41c67a13497ea1b9131bb4183a22865477c"
+ integrity sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==
+
+semver@^6.3.0, semver@^6.3.1:
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
+ integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
+
+semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.7.3:
+ version "7.7.3"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946"
+ integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==
+
+send@^1.1.0, send@^1.2.0:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/send/-/send-1.2.1.tgz#9eab743b874f3550f40a26867bf286ad60d3f3ed"
+ integrity sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==
+ dependencies:
+ debug "^4.4.3"
+ encodeurl "^2.0.0"
+ escape-html "^1.0.3"
+ etag "^1.8.1"
+ fresh "^2.0.0"
+ http-errors "^2.0.1"
+ mime-types "^3.0.2"
+ ms "^2.1.3"
+ on-finished "^2.4.1"
+ range-parser "^1.2.1"
+ statuses "^2.0.2"
+
+serve-static@^2.2.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-2.2.1.tgz#7f186a4a4e5f5b663ad7a4294ff1bf37cf0e98a9"
+ integrity sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==
+ dependencies:
+ encodeurl "^2.0.0"
+ escape-html "^1.0.3"
+ parseurl "^1.3.3"
+ send "^1.2.0"
+
+setprototypeof@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
+ integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
+
+shebang-command@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
+ integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
+ dependencies:
+ shebang-regex "^3.0.0"
+
+shebang-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
+ integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+
+side-channel-list@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad"
+ integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==
+ dependencies:
+ es-errors "^1.3.0"
+ object-inspect "^1.13.3"
+
+side-channel-map@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42"
+ integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==
+ dependencies:
+ call-bound "^1.0.2"
+ es-errors "^1.3.0"
+ get-intrinsic "^1.2.5"
+ object-inspect "^1.13.3"
+
+side-channel-weakmap@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea"
+ integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==
+ dependencies:
+ call-bound "^1.0.2"
+ es-errors "^1.3.0"
+ get-intrinsic "^1.2.5"
+ object-inspect "^1.13.3"
+ side-channel-map "^1.0.1"
+
+side-channel@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9"
+ integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==
+ dependencies:
+ es-errors "^1.3.0"
+ object-inspect "^1.13.3"
+ side-channel-list "^1.0.0"
+ side-channel-map "^1.0.1"
+ side-channel-weakmap "^1.0.2"
+
+signal-exit@^3.0.3, signal-exit@^3.0.7:
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
+ integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
+
+signal-exit@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
+ integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
+
+sisteransi@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
+ integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
+
+slash@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
+ integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+
+sonic-boom@^4.0.1:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-4.2.1.tgz#28598250df4899c0ac572d7e2f0460690ba6a030"
+ integrity sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==
+ dependencies:
+ atomic-sleep "^1.0.0"
+
+source-map-support@0.5.13:
+ version "0.5.13"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932"
+ integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==
+ dependencies:
+ buffer-from "^1.0.0"
+ source-map "^0.6.0"
+
+source-map@^0.6.0, source-map@^0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+split2@^4.0.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4"
+ integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==
+
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+ integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
+
+stack-utils@^2.0.3:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f"
+ integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==
+ dependencies:
+ escape-string-regexp "^2.0.0"
+
+statuses@^2.0.1, statuses@^2.0.2, statuses@~2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.2.tgz#8f75eecef765b5e1cfcdc080da59409ed424e382"
+ integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==
+
+string-length@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a"
+ integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==
+ dependencies:
+ char-regex "^1.0.2"
+ strip-ansi "^6.0.0"
+
+string-to-stream@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/string-to-stream/-/string-to-stream-3.0.1.tgz#480e6fb4d5476d31cb2221f75307a5dcb6638a42"
+ integrity sha512-Hl092MV3USJuUCC6mfl9sPzGloA3K5VwdIeJjYIkXY/8K+mUvaeEabWJgArp+xXrsWxCajeT2pc4axbVhIZJyg==
+ dependencies:
+ readable-stream "^3.4.0"
+
+string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
+
+string_decoder@^1.1.1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
+ integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+ dependencies:
+ safe-buffer "~5.2.0"
+
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ dependencies:
+ ansi-regex "^5.0.1"
+
+strip-bom@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+ integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==
+
+strip-bom@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
+ integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
+
+strip-final-newline@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
+ integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+
+strip-json-comments@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
+ integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+
+strip-json-comments@^5.0.2:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-5.0.3.tgz#b7304249dd402ee67fd518ada993ab3593458bcf"
+ integrity sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==
+
+superstruct@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-1.0.4.tgz#0adb99a7578bd2f1c526220da6571b2d485d91ca"
+ integrity sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==
+
+supports-color@^7.1.0:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
+ integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
+ dependencies:
+ has-flag "^4.0.0"
+
+supports-color@^8.0.0:
+ version "8.1.1"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
+ integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
+ dependencies:
+ has-flag "^4.0.0"
+
+supports-preserve-symlinks-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
+ integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+
+synckit@^0.11.12:
+ version "0.11.12"
+ resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.11.12.tgz#abe74124264fbc00a48011b0d98bdc1cffb64a7b"
+ integrity sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==
+ dependencies:
+ "@pkgr/core" "^0.2.9"
+
+test-exclude@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
+ integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
+ dependencies:
+ "@istanbuljs/schema" "^0.1.2"
+ glob "^7.1.4"
+ minimatch "^3.0.4"
+
+thread-stream@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-4.0.0.tgz#732f007c24da7084f729d6e3a7e3f5934a7380b7"
+ integrity sha512-4iMVL6HAINXWf1ZKZjIPcz5wYaOdPhtO8ATvZ+Xqp3BTdaqtAwQkNmKORqcIo5YkQqGXq5cwfswDwMqqQNrpJA==
+ dependencies:
+ real-require "^0.2.0"
+
+tmp@^0.0.33:
+ version "0.0.33"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
+ integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
+ dependencies:
+ os-tmpdir "~1.0.2"
+
+tmpl@1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"
+ integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==
+
+to-regex-range@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+ dependencies:
+ is-number "^7.0.0"
+
+toidentifier@~1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
+ integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
+
+ts-api-utils@^2.0.1:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.4.0.tgz#2690579f96d2790253bdcf1ca35d569ad78f9ad8"
+ integrity sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==
+
+ts-jest@^29.1.0:
+ version "29.4.6"
+ resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.4.6.tgz#51cb7c133f227396818b71297ad7409bb77106e9"
+ integrity sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA==
+ dependencies:
+ bs-logger "^0.2.6"
+ fast-json-stable-stringify "^2.1.0"
+ handlebars "^4.7.8"
+ json5 "^2.2.3"
+ lodash.memoize "^4.1.2"
+ make-error "^1.3.6"
+ semver "^7.7.3"
+ type-fest "^4.41.0"
+ yargs-parser "^21.1.1"
+
+ts-morph@^19.0.0:
+ version "19.0.0"
+ resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-19.0.0.tgz#43e95fb0156c3fe3c77c814ac26b7d0be2f93169"
+ integrity sha512-D6qcpiJdn46tUqV45vr5UGM2dnIEuTGNxVhg0sk5NX11orcouwj6i1bMqZIz2mZTZB1Hcgy7C3oEVhAT+f6mbQ==
+ dependencies:
+ "@ts-morph/common" "~0.20.0"
+ code-block-writer "^12.0.0"
+
+ts-node@^10.5.0:
+ version "10.9.2"
+ resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f"
+ integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==
+ dependencies:
+ "@cspotcode/source-map-support" "^0.8.0"
+ "@tsconfig/node10" "^1.0.7"
+ "@tsconfig/node12" "^1.0.7"
+ "@tsconfig/node14" "^1.0.0"
+ "@tsconfig/node16" "^1.0.2"
+ acorn "^8.4.1"
+ acorn-walk "^8.1.1"
+ arg "^4.1.0"
+ create-require "^1.1.0"
+ diff "^4.0.1"
+ make-error "^1.1.1"
+ v8-compile-cache-lib "^3.0.1"
+ yn "3.1.1"
+
+"tsc-multi@https://github.com/stainless-api/tsc-multi/releases/download/v1.1.9/tsc-multi.tgz":
+ version "1.1.9"
+ resolved "https://github.com/stainless-api/tsc-multi/releases/download/v1.1.9/tsc-multi.tgz#777f6f5d9e26bf0e94e5170990dd3a841d6707cd"
+ dependencies:
+ debug "^4.3.7"
+ fast-glob "^3.3.2"
+ get-stdin "^8.0.0"
+ p-all "^3.0.0"
+ picocolors "^1.1.1"
+ signal-exit "^3.0.7"
+ string-to-stream "^3.0.1"
+ superstruct "^1.0.4"
+ tslib "^2.8.1"
+ yargs "^17.7.2"
+
+tsconfig-paths@^4.0.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz#ef78e19039133446d244beac0fd6a1632e2d107c"
+ integrity sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==
+ dependencies:
+ json5 "^2.2.2"
+ minimist "^1.2.6"
+ strip-bom "^3.0.0"
+
+tslib@^2.8.1:
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
+ integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
+
+type-check@^0.4.0, type-check@~0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
+ integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
+ dependencies:
+ prelude-ls "^1.2.1"
+
+type-detect@4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
+ integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
+
+type-fest@^0.21.3:
+ version "0.21.3"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
+ integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
+
+type-fest@^4.41.0:
+ version "4.41.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.41.0.tgz#6ae1c8e5731273c2bf1f58ad39cbae2c91a46c58"
+ integrity sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==
+
+type-is@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/type-is/-/type-is-2.0.1.tgz#64f6cf03f92fce4015c2b224793f6bdd4b068c97"
+ integrity sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==
+ dependencies:
+ content-type "^1.0.5"
+ media-typer "^1.1.0"
+ mime-types "^3.0.0"
+
+typescript@5.8.3:
+ version "5.8.3"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e"
+ integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==
+
+uglify-js@^3.1.4:
+ version "3.19.3"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.3.tgz#82315e9bbc6f2b25888858acd1fff8441035b77f"
+ integrity sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==
+
+undici-types@~6.21.0:
+ version "6.21.0"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb"
+ integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==
+
+undici-types@~7.16.0:
+ version "7.16.0"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46"
+ integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==
+
+universalify@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d"
+ integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
+
+unpipe@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
+ integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
+
+update-browserslist-db@^1.2.0:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz#64d76db58713136acbeb4c49114366cc6cc2e80d"
+ integrity sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==
+ dependencies:
+ escalade "^3.2.0"
+ picocolors "^1.1.1"
+
+uri-js@^4.2.2:
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+ integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+ dependencies:
+ punycode "^2.1.0"
+
+util-deprecate@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+ integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
+
+v8-compile-cache-lib@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"
+ integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==
+
+v8-to-istanbul@^9.0.1:
+ version "9.3.0"
+ resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz#b9572abfa62bd556c16d75fdebc1a411d5ff3175"
+ integrity sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.12"
+ "@types/istanbul-lib-coverage" "^2.0.1"
+ convert-source-map "^2.0.0"
+
+vary@^1, vary@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
+ integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
+
+walker@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f"
+ integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==
+ dependencies:
+ makeerror "1.0.12"
+
+which@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+ integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+ dependencies:
+ isexe "^2.0.0"
+
+word-wrap@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
+ integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
+
+wordwrap@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
+ integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==
+
+wrap-ansi@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
+ integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
+wrap-ansi@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
+
+write-file-atomic@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd"
+ integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==
+ dependencies:
+ imurmurhash "^0.1.4"
+ signal-exit "^3.0.7"
+
+y18n@^5.0.5:
+ version "5.0.8"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
+ integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
+
+yallist@^3.0.2:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
+ integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
+
+yargs-parser@^21.1.1:
+ version "21.1.1"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
+ integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
+
+yargs@^17.3.1, yargs@^17.7.2:
+ version "17.7.2"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
+ integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
+ dependencies:
+ cliui "^8.0.1"
+ escalade "^3.1.1"
+ get-caller-file "^2.0.5"
+ require-directory "^2.1.1"
+ string-width "^4.2.3"
+ y18n "^5.0.5"
+ yargs-parser "^21.1.1"
+
+yn@3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
+ integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
+
+yocto-queue@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
+ integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+
+yoctocolors-cjs@^2.1.2:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz#7e4964ea8ec422b7a40ac917d3a344cfd2304baa"
+ integrity sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==
+
+zod-to-json-schema@^3.24.5, zod-to-json-schema@^3.24.6, zod-to-json-schema@^3.25.1:
+ version "3.25.1"
+ resolved "https://registry.yarnpkg.com/zod-to-json-schema/-/zod-to-json-schema-3.25.1.tgz#7f24962101a439ddade2bf1aeab3c3bfec7d84ba"
+ integrity sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==
+
+zod-validation-error@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/zod-validation-error/-/zod-validation-error-4.0.2.tgz#bc605eba49ce0fcd598c127fee1c236be3f22918"
+ integrity sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==
+
+"zod@^3.25 || ^4.0":
+ version "4.3.5"
+ resolved "https://registry.yarnpkg.com/zod/-/zod-4.3.5.tgz#aeb269a6f9fc259b1212c348c7c5432aaa474d2a"
+ integrity sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==
+
+zod@^3.25.20, zod@^3.25.67:
+ version "3.25.76"
+ resolved "https://registry.yarnpkg.com/zod/-/zod-3.25.76.tgz#26841c3f6fd22a6a2760e7ccb719179768471e34"
+ integrity sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==
diff --git a/release-please-config.json b/release-please-config.json
index 1ebd0bde..9b042792 100644
--- a/release-please-config.json
+++ b/release-please-config.json
@@ -60,5 +60,19 @@
}
],
"release-type": "node",
- "extra-files": ["src/version.ts", "README.md"]
+ "extra-files": [
+ "src/version.ts",
+ "README.md",
+ "packages/mcp-server/yarn.lock",
+ {
+ "type": "json",
+ "path": "packages/mcp-server/package.json",
+ "jsonpath": "$.version"
+ },
+ {
+ "type": "json",
+ "path": "packages/mcp-server/manifest.json",
+ "jsonpath": "$.version"
+ }
+ ]
}
diff --git a/scripts/build b/scripts/build
index b6a522cd..8847b24d 100755
--- a/scripts/build
+++ b/scripts/build
@@ -49,3 +49,9 @@ if [ -e ./scripts/build-deno ]
then
./scripts/build-deno
fi
+# build all sub-packages
+for dir in packages/*; do
+ if [ -d "$dir" ]; then
+ (cd "$dir" && yarn install && yarn build)
+ fi
+done
diff --git a/scripts/build-all b/scripts/build-all
new file mode 100755
index 00000000..4e5ac01f
--- /dev/null
+++ b/scripts/build-all
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+
+# build-all is deprecated, use build instead
+
+bash ./scripts/build
diff --git a/scripts/publish-packages.ts b/scripts/publish-packages.ts
new file mode 100644
index 00000000..50e93fef
--- /dev/null
+++ b/scripts/publish-packages.ts
@@ -0,0 +1,102 @@
+/**
+ * Called from the `create-releases.yml` workflow with the output
+ * of the release please action as the first argument.
+ *
+ * Example JSON input:
+ *
+ * ```json
+ {
+ "releases_created": "true",
+ "release_created": "true",
+ "id": "137967744",
+ "name": "sdk: v0.14.5",
+ "tag_name": "sdk-v0.14.5",
+ "sha": "7cc2ba5c694e76a117f731d4cf0b06f8b8361f2e",
+ "body": "## 0.14.5 (2024-01-22)\n\n...",
+ "html_url": "https://github.com/$org/$repo/releases/tag/sdk-v0.14.5",
+ "draft": "false",
+ "upload_url": "https://uploads.github.com/repos/$org/$repo/releases/137967744/assets{?name,label}",
+ "path": ".",
+ "version": "0.14.5",
+ "major": "0",
+ "minor": "14",
+ "patch": "5",
+ "packages/additional-sdk--release_created": "true",
+ "packages/additional-sdk--id": "137967756",
+ "packages/additional-sdk--name": "additional-sdk: v0.5.2",
+ "packages/additional-sdk--tag_name": "additional-sdk-v0.5.2",
+ "packages/additional-sdk--sha": "7cc2ba5c694e76a117f731d4cf0b06f8b8361f2e",
+ "packages/additional-sdk--body": "## 0.5.2 (2024-01-22)\n\n...",
+ "packages/additional-sdk--html_url": "https://github.com/$org/$repo/releases/tag/additional-sdk-v0.5.2",
+ "packages/additional-sdk--draft": "false",
+ "packages/additional-sdk--upload_url": "https://uploads.github.com/repos/$org/$repo/releases/137967756/assets{?name,label}",
+ "packages/additional-sdk--path": "packages/additional-sdk",
+ "packages/additional-sdk--version": "0.5.2",
+ "packages/additional-sdk--major": "0",
+ "packages/additional-sdk--minor": "5",
+ "packages/additional-sdk--patch": "2",
+ "paths_released": "[\".\",\"packages/additional-sdk\"]"
+ }
+ ```
+ */
+
+import { execSync } from 'child_process';
+import path from 'path';
+
+function main() {
+ const data = process.argv[2] ?? process.env['DATA'];
+ if (!data) {
+ throw new Error(`Usage: publish-packages.ts '{"json": "obj"}'`);
+ }
+
+ const rootDir = path.join(__dirname, '..');
+ console.log('root dir', rootDir);
+ console.log(`publish-packages called with ${data}`);
+
+ const outputs = JSON.parse(data);
+
+ const rawPaths = outputs.paths_released;
+
+ if (!rawPaths) {
+ console.error(JSON.stringify(outputs, null, 2));
+ throw new Error('Expected outputs to contain a truthy `paths_released` property');
+ }
+ if (typeof rawPaths !== 'string') {
+ console.error(JSON.stringify(outputs, null, 2));
+ throw new Error('Expected outputs `paths_released` property to be a JSON string');
+ }
+
+ const paths = JSON.parse(rawPaths);
+ if (!Array.isArray(paths)) {
+ console.error(JSON.stringify(outputs, null, 2));
+ throw new Error('Expected outputs `paths_released` property to be an array');
+ }
+ if (!paths.length) {
+ console.error(JSON.stringify(outputs, null, 2));
+ throw new Error('Expected outputs `paths_released` property to contain at least one entry');
+ }
+
+ const publishScriptPath = path.join(rootDir, 'bin', 'publish-npm');
+ console.log('Using publish script at', publishScriptPath);
+
+ console.log('Ensuring root package is built');
+ console.log(`$ yarn build`);
+ execSync(`yarn build`, { cwd: rootDir, encoding: 'utf8', stdio: 'inherit' });
+
+ for (const relPackagePath of paths) {
+ console.log('\n');
+
+ const packagePath = path.join(rootDir, relPackagePath);
+ console.log(`Publishing in directory: ${packagePath}`);
+
+ console.log(`$ yarn install`);
+ execSync(`yarn install`, { cwd: packagePath, encoding: 'utf8', stdio: 'inherit' });
+
+ console.log(`$ bash ${publishScriptPath}`);
+ execSync(`bash ${publishScriptPath}`, { cwd: packagePath, encoding: 'utf8', stdio: 'inherit' });
+ }
+
+ console.log('Finished publishing packages');
+}
+
+main();
diff --git a/scripts/utils/make-dist-package-json.cjs b/scripts/utils/make-dist-package-json.cjs
index 7c24f56e..4d6634ea 100644
--- a/scripts/utils/make-dist-package-json.cjs
+++ b/scripts/utils/make-dist-package-json.cjs
@@ -12,6 +12,14 @@ processExportMap(pkgJson.exports);
for (const key of ['types', 'main', 'module']) {
if (typeof pkgJson[key] === 'string') pkgJson[key] = pkgJson[key].replace(/^(\.\/)?dist\//, './');
}
+// Fix bin paths if present
+if (pkgJson.bin) {
+ for (const key in pkgJson.bin) {
+ if (typeof pkgJson.bin[key] === 'string') {
+ pkgJson.bin[key] = pkgJson.bin[key].replace(/^(\.\/)?dist\//, './');
+ }
+ }
+}
delete pkgJson.devDependencies;
delete pkgJson.scripts.prepack;
diff --git a/src/resources/account-activity.ts b/src/resources/account-activity.ts
index 8467be3a..ec9498bf 100644
--- a/src/resources/account-activity.ts
+++ b/src/resources/account-activity.ts
@@ -94,6 +94,7 @@ export namespace AccountActivityListResponse {
*/
category:
| 'ACH'
+ | 'WIRE'
| 'BALANCE_OR_FUNDING'
| 'FEE'
| 'REWARD'
@@ -234,6 +235,7 @@ export namespace AccountActivityRetrieveTransactionResponse {
*/
category:
| 'ACH'
+ | 'WIRE'
| 'BALANCE_OR_FUNDING'
| 'FEE'
| 'REWARD'
@@ -364,6 +366,7 @@ export interface AccountActivityListParams extends CursorPageParams {
*/
category?:
| 'ACH'
+ | 'WIRE'
| 'BALANCE_OR_FUNDING'
| 'FEE'
| 'REWARD'
diff --git a/src/resources/auth-rules/auth-rules.ts b/src/resources/auth-rules/auth-rules.ts
index 35716042..b544f937 100644
--- a/src/resources/auth-rules/auth-rules.ts
+++ b/src/resources/auth-rules/auth-rules.ts
@@ -5,6 +5,7 @@ import * as V2API from './v2/v2';
import {
AuthRule,
AuthRuleCondition,
+ AuthRuleVersion,
AuthRulesCursorPage,
BacktestStats,
Conditional3DSActionParameters,
@@ -27,6 +28,7 @@ import {
V2ListResultsParams,
V2ListResultsResponse,
V2ListResultsResponsesCursorPage,
+ V2ListVersionsResponse,
V2RetrieveFeaturesParams,
V2RetrieveFeaturesResponse,
V2RetrieveReportParams,
@@ -48,6 +50,7 @@ export declare namespace AuthRules {
V2 as V2,
type AuthRule as AuthRule,
type AuthRuleCondition as AuthRuleCondition,
+ type AuthRuleVersion as AuthRuleVersion,
type BacktestStats as BacktestStats,
type Conditional3DSActionParameters as Conditional3DSActionParameters,
type ConditionalACHActionParameters as ConditionalACHActionParameters,
@@ -66,6 +69,7 @@ export declare namespace AuthRules {
type VelocityLimitParams as VelocityLimitParams,
type VelocityLimitPeriod as VelocityLimitPeriod,
type V2ListResultsResponse as V2ListResultsResponse,
+ type V2ListVersionsResponse as V2ListVersionsResponse,
type V2RetrieveFeaturesResponse as V2RetrieveFeaturesResponse,
type V2RetrieveReportResponse as V2RetrieveReportResponse,
type AuthRulesCursorPage as AuthRulesCursorPage,
diff --git a/src/resources/auth-rules/index.ts b/src/resources/auth-rules/index.ts
index ede636bf..dddb701c 100644
--- a/src/resources/auth-rules/index.ts
+++ b/src/resources/auth-rules/index.ts
@@ -5,6 +5,7 @@ export {
V2,
type AuthRule,
type AuthRuleCondition,
+ type AuthRuleVersion,
type BacktestStats,
type Conditional3DSActionParameters,
type ConditionalACHActionParameters,
@@ -23,6 +24,7 @@ export {
type VelocityLimitParams,
type VelocityLimitPeriod,
type V2ListResultsResponse,
+ type V2ListVersionsResponse,
type V2RetrieveFeaturesResponse,
type V2RetrieveReportResponse,
type V2CreateParams,
diff --git a/src/resources/auth-rules/v2/backtests.ts b/src/resources/auth-rules/v2/backtests.ts
index 20f71d75..792dbac8 100644
--- a/src/resources/auth-rules/v2/backtests.ts
+++ b/src/resources/auth-rules/v2/backtests.ts
@@ -95,19 +95,14 @@ export namespace BacktestResults {
export interface SimulationParameters {
/**
- * Auth Rule Token
+ * The end time of the simulation
*/
- auth_rule_token?: string;
+ end: string;
/**
- * The end time of the simulation.
+ * The start time of the simulation
*/
- end?: string;
-
- /**
- * The start time of the simulation.
- */
- start?: string;
+ start: string;
}
}
diff --git a/src/resources/auth-rules/v2/index.ts b/src/resources/auth-rules/v2/index.ts
index bd6bd09c..b9e37360 100644
--- a/src/resources/auth-rules/v2/index.ts
+++ b/src/resources/auth-rules/v2/index.ts
@@ -11,6 +11,7 @@ export {
V2,
type AuthRule,
type AuthRuleCondition,
+ type AuthRuleVersion,
type BacktestStats,
type Conditional3DSActionParameters,
type ConditionalACHActionParameters,
@@ -29,6 +30,7 @@ export {
type VelocityLimitParams,
type VelocityLimitPeriod,
type V2ListResultsResponse,
+ type V2ListVersionsResponse,
type V2RetrieveFeaturesResponse,
type V2RetrieveReportResponse,
type V2CreateParams,
diff --git a/src/resources/auth-rules/v2/v2.ts b/src/resources/auth-rules/v2/v2.ts
index fac3d7ca..b7f1b6b3 100644
--- a/src/resources/auth-rules/v2/v2.ts
+++ b/src/resources/auth-rules/v2/v2.ts
@@ -89,6 +89,14 @@ export class V2 extends APIResource {
});
}
+ /**
+ * Returns all versions of an auth rule, sorted by version number descending
+ * (newest first).
+ */
+ listVersions(authRuleToken: string, options?: RequestOptions): APIPromise {
+ return this._client.get(path`/v2/auth_rules/${authRuleToken}/versions`, options);
+ }
+
/**
* Promotes the draft version of an Auth rule to the currently active version such
* that it is enforced in the respective stream.
@@ -358,6 +366,37 @@ export interface AuthRuleCondition {
value: ConditionalValue;
}
+export interface AuthRuleVersion {
+ /**
+ * Timestamp of when this version was created.
+ */
+ created: string;
+
+ /**
+ * Parameters for the Auth Rule
+ */
+ parameters:
+ | ConditionalBlockParameters
+ | VelocityLimitParams
+ | MerchantLockParameters
+ | Conditional3DSActionParameters
+ | ConditionalAuthorizationActionParameters
+ | ConditionalACHActionParameters
+ | ConditionalTokenizationActionParameters
+ | TypescriptCodeParameters;
+
+ /**
+ * The current state of this version.
+ */
+ state: 'ACTIVE' | 'SHADOW' | 'INACTIVE';
+
+ /**
+ * The version of the rule, this is incremented whenever the rule's parameters
+ * change.
+ */
+ version: number;
+}
+
export interface BacktestStats {
/**
* The total number of historical transactions approved by this rule during the
@@ -2024,6 +2063,10 @@ export namespace V2ListResultsResponse {
}
}
+export interface V2ListVersionsResponse {
+ data: Array;
+}
+
export interface V2RetrieveFeaturesResponse {
/**
* Timestamp at which the Features were evaluated
@@ -2109,6 +2152,285 @@ export namespace V2RetrieveReportResponse {
* Detailed statistics for the draft version of the rule.
*/
draft_version_statistics: V2API.ReportStats | null;
+
+ /**
+ * Statistics for each version of the rule that was evaluated during the reported
+ * day.
+ */
+ versions: Array;
+ }
+
+ export namespace DailyStatistic {
+ export interface Version {
+ /**
+ * A mapping of action types to the number of times that action was returned by
+ * this version during the relevant period. Actions are the possible outcomes of a
+ * rule evaluation, such as DECLINE, CHALLENGE, REQUIRE_TFA, etc. In case rule
+ * didn't trigger any action, it's counted under NO_ACTION key.
+ */
+ action_counts: { [key: string]: number };
+
+ /**
+ * Example events and their outcomes for this version.
+ */
+ examples: Array;
+
+ /**
+ * The evaluation mode of this version during the reported period.
+ */
+ state: 'ACTIVE' | 'SHADOW' | 'INACTIVE';
+
+ /**
+ * The rule version number.
+ */
+ version: number;
+ }
+
+ export namespace Version {
+ export interface Example {
+ /**
+ * The actions taken by this version for this event.
+ */
+ actions: Array<
+ | Example.DeclineActionAuthorization
+ | Example.ChallengeActionAuthorization
+ | Example.ResultAuthentication3DSAction
+ | Example.DeclineActionTokenization
+ | Example.RequireTfaAction
+ | Example.ApproveActionACH
+ | Example.ReturnAction
+ >;
+
+ /**
+ * The event token.
+ */
+ event_token: string;
+
+ /**
+ * The timestamp of the event.
+ */
+ timestamp: string;
+ }
+
+ export namespace Example {
+ export interface DeclineActionAuthorization {
+ /**
+ * The detailed result code explaining the specific reason for the decline
+ */
+ code:
+ | 'ACCOUNT_DAILY_SPEND_LIMIT_EXCEEDED'
+ | 'ACCOUNT_DELINQUENT'
+ | 'ACCOUNT_INACTIVE'
+ | 'ACCOUNT_LIFETIME_SPEND_LIMIT_EXCEEDED'
+ | 'ACCOUNT_MONTHLY_SPEND_LIMIT_EXCEEDED'
+ | 'ACCOUNT_PAUSED'
+ | 'ACCOUNT_UNDER_REVIEW'
+ | 'ADDRESS_INCORRECT'
+ | 'APPROVED'
+ | 'AUTH_RULE_ALLOWED_COUNTRY'
+ | 'AUTH_RULE_ALLOWED_MCC'
+ | 'AUTH_RULE_BLOCKED_COUNTRY'
+ | 'AUTH_RULE_BLOCKED_MCC'
+ | 'AUTH_RULE'
+ | 'CARD_CLOSED'
+ | 'CARD_CRYPTOGRAM_VALIDATION_FAILURE'
+ | 'CARD_EXPIRED'
+ | 'CARD_EXPIRY_DATE_INCORRECT'
+ | 'CARD_INVALID'
+ | 'CARD_NOT_ACTIVATED'
+ | 'CARD_PAUSED'
+ | 'CARD_PIN_INCORRECT'
+ | 'CARD_RESTRICTED'
+ | 'CARD_SECURITY_CODE_INCORRECT'
+ | 'CARD_SPEND_LIMIT_EXCEEDED'
+ | 'CONTACT_CARD_ISSUER'
+ | 'CUSTOMER_ASA_TIMEOUT'
+ | 'CUSTOM_ASA_RESULT'
+ | 'DECLINED'
+ | 'DO_NOT_HONOR'
+ | 'DRIVER_NUMBER_INVALID'
+ | 'FORMAT_ERROR'
+ | 'INSUFFICIENT_FUNDING_SOURCE_BALANCE'
+ | 'INSUFFICIENT_FUNDS'
+ | 'LITHIC_SYSTEM_ERROR'
+ | 'LITHIC_SYSTEM_RATE_LIMIT'
+ | 'MALFORMED_ASA_RESPONSE'
+ | 'MERCHANT_INVALID'
+ | 'MERCHANT_LOCKED_CARD_ATTEMPTED_ELSEWHERE'
+ | 'MERCHANT_NOT_PERMITTED'
+ | 'OVER_REVERSAL_ATTEMPTED'
+ | 'PIN_BLOCKED'
+ | 'PROGRAM_CARD_SPEND_LIMIT_EXCEEDED'
+ | 'PROGRAM_SUSPENDED'
+ | 'PROGRAM_USAGE_RESTRICTION'
+ | 'REVERSAL_UNMATCHED'
+ | 'SECURITY_VIOLATION'
+ | 'SINGLE_USE_CARD_REATTEMPTED'
+ | 'SUSPECTED_FRAUD'
+ | 'TRANSACTION_INVALID'
+ | 'TRANSACTION_NOT_PERMITTED_TO_ACQUIRER_OR_TERMINAL'
+ | 'TRANSACTION_NOT_PERMITTED_TO_ISSUER_OR_CARDHOLDER'
+ | 'TRANSACTION_PREVIOUSLY_COMPLETED'
+ | 'UNAUTHORIZED_MERCHANT'
+ | 'VEHICLE_NUMBER_INVALID'
+ | 'CARDHOLDER_CHALLENGED'
+ | 'CARDHOLDER_CHALLENGE_FAILED';
+
+ type: 'DECLINE';
+ }
+
+ export interface ChallengeActionAuthorization {
+ type: 'CHALLENGE';
+ }
+
+ export interface ResultAuthentication3DSAction {
+ type: 'DECLINE' | 'CHALLENGE';
+ }
+
+ export interface DeclineActionTokenization {
+ /**
+ * Decline the tokenization request
+ */
+ type: 'DECLINE';
+
+ /**
+ * Reason code for declining the tokenization request
+ */
+ reason?:
+ | 'ACCOUNT_SCORE_1'
+ | 'DEVICE_SCORE_1'
+ | 'ALL_WALLET_DECLINE_REASONS_PRESENT'
+ | 'WALLET_RECOMMENDED_DECISION_RED'
+ | 'CVC_MISMATCH'
+ | 'CARD_EXPIRY_MONTH_MISMATCH'
+ | 'CARD_EXPIRY_YEAR_MISMATCH'
+ | 'CARD_INVALID_STATE'
+ | 'CUSTOMER_RED_PATH'
+ | 'INVALID_CUSTOMER_RESPONSE'
+ | 'NETWORK_FAILURE'
+ | 'GENERIC_DECLINE'
+ | 'DIGITAL_CARD_ART_REQUIRED';
+ }
+
+ export interface RequireTfaAction {
+ /**
+ * Require two-factor authentication for the tokenization request
+ */
+ type: 'REQUIRE_TFA';
+
+ /**
+ * Reason code for requiring two-factor authentication
+ */
+ reason?:
+ | 'WALLET_RECOMMENDED_TFA'
+ | 'SUSPICIOUS_ACTIVITY'
+ | 'DEVICE_RECENTLY_LOST'
+ | 'TOO_MANY_RECENT_ATTEMPTS'
+ | 'TOO_MANY_RECENT_TOKENS'
+ | 'TOO_MANY_DIFFERENT_CARDHOLDERS'
+ | 'OUTSIDE_HOME_TERRITORY'
+ | 'HAS_SUSPENDED_TOKENS'
+ | 'HIGH_RISK'
+ | 'ACCOUNT_SCORE_LOW'
+ | 'DEVICE_SCORE_LOW'
+ | 'CARD_STATE_TFA'
+ | 'HARDCODED_TFA'
+ | 'CUSTOMER_RULE_TFA'
+ | 'DEVICE_HOST_CARD_EMULATION';
+ }
+
+ export interface ApproveActionACH {
+ /**
+ * Approve the ACH transaction
+ */
+ type: 'APPROVE';
+ }
+
+ export interface ReturnAction {
+ /**
+ * NACHA return code to use when returning the transaction. Note that the list of
+ * available return codes is subject to an allowlist configured at the program
+ * level
+ */
+ code:
+ | 'R01'
+ | 'R02'
+ | 'R03'
+ | 'R04'
+ | 'R05'
+ | 'R06'
+ | 'R07'
+ | 'R08'
+ | 'R09'
+ | 'R10'
+ | 'R11'
+ | 'R12'
+ | 'R13'
+ | 'R14'
+ | 'R15'
+ | 'R16'
+ | 'R17'
+ | 'R18'
+ | 'R19'
+ | 'R20'
+ | 'R21'
+ | 'R22'
+ | 'R23'
+ | 'R24'
+ | 'R25'
+ | 'R26'
+ | 'R27'
+ | 'R28'
+ | 'R29'
+ | 'R30'
+ | 'R31'
+ | 'R32'
+ | 'R33'
+ | 'R34'
+ | 'R35'
+ | 'R36'
+ | 'R37'
+ | 'R38'
+ | 'R39'
+ | 'R40'
+ | 'R41'
+ | 'R42'
+ | 'R43'
+ | 'R44'
+ | 'R45'
+ | 'R46'
+ | 'R47'
+ | 'R50'
+ | 'R51'
+ | 'R52'
+ | 'R53'
+ | 'R61'
+ | 'R62'
+ | 'R67'
+ | 'R68'
+ | 'R69'
+ | 'R70'
+ | 'R71'
+ | 'R72'
+ | 'R73'
+ | 'R74'
+ | 'R75'
+ | 'R76'
+ | 'R77'
+ | 'R80'
+ | 'R81'
+ | 'R82'
+ | 'R83'
+ | 'R84'
+ | 'R85';
+
+ /**
+ * Return the ACH transaction
+ */
+ type: 'RETURN';
+ }
+ }
+ }
}
}
@@ -2475,6 +2797,7 @@ export declare namespace V2 {
export {
type AuthRule as AuthRule,
type AuthRuleCondition as AuthRuleCondition,
+ type AuthRuleVersion as AuthRuleVersion,
type BacktestStats as BacktestStats,
type Conditional3DSActionParameters as Conditional3DSActionParameters,
type ConditionalACHActionParameters as ConditionalACHActionParameters,
@@ -2493,6 +2816,7 @@ export declare namespace V2 {
type VelocityLimitParams as VelocityLimitParams,
type VelocityLimitPeriod as VelocityLimitPeriod,
type V2ListResultsResponse as V2ListResultsResponse,
+ type V2ListVersionsResponse as V2ListVersionsResponse,
type V2RetrieveFeaturesResponse as V2RetrieveFeaturesResponse,
type V2RetrieveReportResponse as V2RetrieveReportResponse,
type AuthRulesCursorPage as AuthRulesCursorPage,
diff --git a/src/resources/disputes.ts b/src/resources/disputes.ts
index 97c241a8..f07d9bdf 100644
--- a/src/resources/disputes.ts
+++ b/src/resources/disputes.ts
@@ -10,7 +10,7 @@ import { maybeMultipartFormRequestOptions } from '../internal/uploads';
export class Disputes extends APIResource {
/**
- * Initiate a dispute.
+ * Request a chargeback.
*
* @example
* ```ts
@@ -27,7 +27,7 @@ export class Disputes extends APIResource {
}
/**
- * Get dispute.
+ * Get chargeback request.
*
* @example
* ```ts
@@ -41,7 +41,7 @@ export class Disputes extends APIResource {
}
/**
- * Update dispute. Can only be modified if status is `NEW`.
+ * Update chargeback request. Can only be modified if status is `NEW`.
*
* @example
* ```ts
@@ -55,7 +55,7 @@ export class Disputes extends APIResource {
}
/**
- * List disputes.
+ * List chargeback requests.
*
* @example
* ```ts
@@ -73,7 +73,7 @@ export class Disputes extends APIResource {
}
/**
- * Withdraw dispute.
+ * Withdraw chargeback request.
*
* @example
* ```ts
@@ -87,8 +87,8 @@ export class Disputes extends APIResource {
}
/**
- * Soft delete evidence for a dispute. Evidence will not be reviewed or submitted
- * by Lithic after it is withdrawn.
+ * Soft delete evidence for a chargeback request. Evidence will not be reviewed or
+ * submitted by Lithic after it is withdrawn.
*
* @example
* ```ts
@@ -111,8 +111,8 @@ export class Disputes extends APIResource {
}
/**
- * Use this endpoint to upload evidences for the dispute. It will return a URL to
- * upload your documents to. The URL will expire in 30 minutes.
+ * Use this endpoint to upload evidence for a chargeback request. It will return a
+ * URL to upload your documents to. The URL will expire in 30 minutes.
*
* Uploaded documents must either be a `jpg`, `png` or `pdf` file, and each must be
* less than 5 GiB.
@@ -134,7 +134,7 @@ export class Disputes extends APIResource {
}
/**
- * List evidence metadata for a dispute.
+ * List evidence for a chargeback request.
*
* @example
* ```ts
@@ -159,7 +159,7 @@ export class Disputes extends APIResource {
}
/**
- * Get a dispute's evidence metadata.
+ * Get evidence for a chargeback request.
*
* @example
* ```ts
@@ -437,12 +437,12 @@ export interface DisputeEvidence {
export interface DisputeCreateParams {
/**
- * Amount to dispute
+ * Amount for chargeback
*/
amount: number;
/**
- * Reason for dispute
+ * Reason for chargeback
*/
reason:
| 'ATM_CASH_MISDISPENSE'
@@ -461,39 +461,39 @@ export interface DisputeCreateParams {
| 'REFUND_NOT_PROCESSED';
/**
- * Transaction to dispute
+ * Transaction for chargeback
*/
transaction_token: string;
/**
- * Date the customer filed the dispute
+ * Date the customer filed the chargeback request
*/
customer_filed_date?: string;
/**
- * Customer description of dispute
+ * Customer description
*/
customer_note?: string;
}
export interface DisputeUpdateParams {
/**
- * Amount to dispute
+ * Amount for chargeback
*/
amount?: number;
/**
- * Date the customer filed the dispute
+ * Date the customer filed the chargeback request
*/
customer_filed_date?: string;
/**
- * Customer description of dispute
+ * Customer description
*/
customer_note?: string;
/**
- * Reason for dispute
+ * Reason for chargeback
*/
reason?:
| 'ATM_CASH_MISDISPENSE'
@@ -526,7 +526,7 @@ export interface DisputeListParams extends CursorPageParams {
end?: string;
/**
- * List disputes of a specific status.
+ * Filter by status.
*/
status?:
| 'ARBITRATION'
diff --git a/src/resources/financial-accounts/interest-tier-schedule.ts b/src/resources/financial-accounts/interest-tier-schedule.ts
index 7d5a4b21..5e6ed433 100644
--- a/src/resources/financial-accounts/interest-tier-schedule.ts
+++ b/src/resources/financial-accounts/interest-tier-schedule.ts
@@ -194,6 +194,11 @@ export interface InterestTierSchedule {
*/
effective_date: string;
+ /**
+ * Custom rates per category for penalties
+ */
+ penalty_rates?: unknown;
+
/**
* Name of a tier contained in the credit product. Mutually exclusive with
* tier_rates
@@ -217,6 +222,11 @@ export interface InterestTierScheduleCreateParams {
*/
effective_date: string;
+ /**
+ * Custom rates per category for penalties
+ */
+ penalty_rates?: unknown;
+
/**
* Name of a tier contained in the credit product. Mutually exclusive with
* tier_rates
@@ -242,6 +252,11 @@ export interface InterestTierScheduleUpdateParams {
*/
financial_account_token: string;
+ /**
+ * Body param: Custom rates per category for penalties
+ */
+ penalty_rates?: unknown;
+
/**
* Body param: Name of a tier contained in the credit product. Mutually exclusive
* with tier_rates
diff --git a/src/resources/financial-accounts/statements/line-items.ts b/src/resources/financial-accounts/statements/line-items.ts
index 89c9c6c7..97c382bd 100644
--- a/src/resources/financial-accounts/statements/line-items.ts
+++ b/src/resources/financial-accounts/statements/line-items.ts
@@ -59,8 +59,14 @@ export namespace StatementLineItems {
*/
amount: number;
+ /**
+ * Note: Inbound wire transfers are coming soon (availability varies by partner
+ * bank). The WIRE category is a preview. To learn more, contact your customer
+ * success manager.
+ */
category:
| 'ACH'
+ | 'WIRE'
| 'BALANCE_OR_FUNDING'
| 'FEE'
| 'REWARD'
diff --git a/src/resources/payments.ts b/src/resources/payments.ts
index 20f4b5a7..28242623 100644
--- a/src/resources/payments.ts
+++ b/src/resources/payments.ts
@@ -199,6 +199,7 @@ export interface Payment {
*/
category:
| 'ACH'
+ | 'WIRE'
| 'BALANCE_OR_FUNDING'
| 'FEE'
| 'REWARD'
@@ -329,6 +330,10 @@ export interface Payment {
export namespace Payment {
/**
+ * Note: Inbound wire transfers are coming soon (availability varies by partner
+ * bank). Wire-related fields below are a preview. To learn more, contact your
+ * customer success manager.
+ *
* Payment Event
*/
export interface Event {
@@ -355,8 +360,14 @@ export namespace Payment {
result: 'APPROVED' | 'DECLINED';
/**
+ * Note: Inbound wire transfers are coming soon (availability varies by partner
+ * bank). Wire-related event types below are a preview. To learn more, contact your
+ * customer success manager.
+ *
* Event types:
*
+ * ACH events:
+ *
* - `ACH_ORIGINATION_INITIATED` - ACH origination received and pending
* approval/release from an ACH hold.
* - `ACH_ORIGINATION_REVIEWED` - ACH origination has completed the review process.
@@ -381,6 +392,26 @@ export namespace Payment {
* Financial Institution.
* - `ACH_RETURN_REJECTED` - ACH return was rejected by the Receiving Depository
* Financial Institution.
+ *
+ * Wire transfer events:
+ *
+ * - `WIRE_TRANSFER_INBOUND_RECEIVED` - Inbound wire transfer received from the
+ * Federal Reserve and pending release to available balance.
+ * - `WIRE_TRANSFER_INBOUND_SETTLED` - Inbound wire transfer funds released from
+ * pending to available balance.
+ * - `WIRE_TRANSFER_INBOUND_BLOCKED` - Inbound wire transfer blocked and funds
+ * frozen for regulatory review.
+ *
+ * Wire return events:
+ *
+ * - `WIRE_RETURN_OUTBOUND_INITIATED` - Outbound wire return initiated to return
+ * funds from an inbound wire transfer.
+ * - `WIRE_RETURN_OUTBOUND_SENT` - Outbound wire return sent to the Federal Reserve
+ * and pending acceptance.
+ * - `WIRE_RETURN_OUTBOUND_SETTLED` - Outbound wire return accepted by the Federal
+ * Reserve and funds returned to sender.
+ * - `WIRE_RETURN_OUTBOUND_REJECTED` - Outbound wire return rejected by the Federal
+ * Reserve.
*/
type:
| 'ACH_ORIGINATION_CANCELLED'
@@ -397,7 +428,14 @@ export namespace Payment {
| 'ACH_RETURN_INITIATED'
| 'ACH_RETURN_PROCESSED'
| 'ACH_RETURN_REJECTED'
- | 'ACH_RETURN_SETTLED';
+ | 'ACH_RETURN_SETTLED'
+ | 'WIRE_TRANSFER_INBOUND_RECEIVED'
+ | 'WIRE_TRANSFER_INBOUND_SETTLED'
+ | 'WIRE_TRANSFER_INBOUND_BLOCKED'
+ | 'WIRE_RETURN_OUTBOUND_INITIATED'
+ | 'WIRE_RETURN_OUTBOUND_SENT'
+ | 'WIRE_RETURN_OUTBOUND_SETTLED'
+ | 'WIRE_RETURN_OUTBOUND_REJECTED';
/**
* More detailed reasons for the event
@@ -413,7 +451,9 @@ export namespace Payment {
>;
/**
- * Payment event external ID, for example, ACH trace number.
+ * Payment event external ID. For ACH transactions, this is the ACH trace number.
+ * For inbound wire transfers, this is the IMAD (Input Message Accountability
+ * Data).
*/
external_id?: string | null;
}
@@ -480,11 +520,6 @@ export namespace Payment {
* for tracking the message through the Fedwire system
*/
message_id?: string | null;
-
- /**
- * Payment details or invoice reference
- */
- remittance_information?: string | null;
}
/**
diff --git a/tests/api-resources/auth-rules/v2/v2.test.ts b/tests/api-resources/auth-rules/v2/v2.test.ts
index 488f6402..1d5700a4 100644
--- a/tests/api-resources/auth-rules/v2/v2.test.ts
+++ b/tests/api-resources/auth-rules/v2/v2.test.ts
@@ -154,6 +154,17 @@ describe('resource v2', () => {
).rejects.toThrow(Lithic.NotFoundError);
});
+ test('listVersions', async () => {
+ const responsePromise = client.authRules.v2.listVersions('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
+ const rawResponse = await responsePromise.asResponse();
+ expect(rawResponse).toBeInstanceOf(Response);
+ const response = await responsePromise;
+ expect(response).not.toBeInstanceOf(Response);
+ const dataAndResponse = await responsePromise.withResponse();
+ expect(dataAndResponse.data).toBe(response);
+ expect(dataAndResponse.response).toBe(rawResponse);
+ });
+
test('promote', async () => {
const responsePromise = client.authRules.v2.promote('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
const rawResponse = await responsePromise.asResponse();
diff --git a/tests/api-resources/financial-accounts/interest-tier-schedule.test.ts b/tests/api-resources/financial-accounts/interest-tier-schedule.test.ts
index 5312bb21..2f99c01f 100644
--- a/tests/api-resources/financial-accounts/interest-tier-schedule.test.ts
+++ b/tests/api-resources/financial-accounts/interest-tier-schedule.test.ts
@@ -28,6 +28,7 @@ describe('resource interestTierSchedule', () => {
{
credit_product_token: 'credit_product_token',
effective_date: '2019-12-27',
+ penalty_rates: {},
tier_name: 'tier_name',
tier_rates: {},
},
@@ -69,6 +70,7 @@ describe('resource interestTierSchedule', () => {
test('update: required and optional params', async () => {
const response = await client.financialAccounts.interestTierSchedule.update('2019-12-27', {
financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
+ penalty_rates: {},
tier_name: 'tier_name',
tier_rates: {},
});
From 53ee90cb3b86f141efd8ad4bb3a09b4550b92214 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 16 Mar 2026 11:35:19 +0000
Subject: [PATCH 021/164] codegen metadata
---
.stats.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.stats.yml b/.stats.yml
index c1a32b6b..6976609b 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-e88a4837037207e9591d48d534bd61acca57ca6e7c59ec0d4fdcf6e05288cc6d.yml
openapi_spec_hash: fd8bbc173d1b6dafd117fb1a3a3d446c
-config_hash: f227b67dc32a8917717490e63f855d42
+config_hash: 3005e2502301e77754e5e1455584525b
From ca0b3d5b4aba31b9711095671074ff79aea64830 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 16 Mar 2026 11:35:44 +0000
Subject: [PATCH 022/164] release: 0.133.0
---
.release-please-manifest.json | 2 +-
CHANGELOG.md | 29 +++++++++++++++++++++++++++++
package.json | 2 +-
packages/mcp-server/manifest.json | 10 +++++++---
packages/mcp-server/package.json | 2 +-
packages/mcp-server/src/server.ts | 2 +-
src/version.ts | 2 +-
7 files changed, 41 insertions(+), 8 deletions(-)
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index c89a651d..94e69931 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.132.1"
+ ".": "0.133.0"
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 876cab8d..48043068 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,34 @@
# Changelog
+## 0.133.0 (2026-03-16)
+
+Full Changelog: [v0.132.1...v0.133.0](https://github.com/lithic-com/lithic-node/compare/v0.132.1...v0.133.0)
+
+### Features
+
+* **api:** add ACH_RECEIPT_RELEASED_EARLY event type to payments ([0bb4d95](https://github.com/lithic-com/lithic-node/commit/0bb4d953f34885a6803e4abfbee90d2839886f81))
+* **api:** add excluded_account_tokens to auth rules v2 ([30cfe26](https://github.com/lithic-com/lithic-node/commit/30cfe260a66896cab48aeb4f5c7abd884704dfce))
+* **api:** add mcp-server package, CI/CD workflows, build scripts, update README ([d942481](https://github.com/lithic-com/lithic-node/commit/d942481202af958f1a60a6584bec8803927b9a63))
+* **api:** add penalty_rates field to interest tier schedule ([aa412d0](https://github.com/lithic-com/lithic-node/commit/aa412d01a8256c187bf23275a5fb1a017793539e))
+* **api:** add versions field to auth rules v2 report response ([aa20bdb](https://github.com/lithic-com/lithic-node/commit/aa20bdbca0982173e9dff5f9fa56a5cc9162bdbb))
+* **api:** add WIRE category/events, remove remittance_information from payments ([8808ca2](https://github.com/lithic-com/lithic-node/commit/8808ca292e45a4a6e0479e8bfff9122fb58634b6))
+
+
+### Bug Fixes
+
+* **api:** [breaking] unify webhook schemas for digital_wallet.tokenization_approval_request webhooks ([4166fbc](https://github.com/lithic-com/lithic-node/commit/4166fbc084b226872d7418c5d086fc7a156f6797))
+* **types:** make start/end required, remove auth_rule_token from backtests ([f61f218](https://github.com/lithic-com/lithic-node/commit/f61f21812b7ea528969ac97ceb0e3bbb72570e3c))
+
+
+### Chores
+
+* **internal:** regenerate SDK with no functional changes ([1c21ea8](https://github.com/lithic-com/lithic-node/commit/1c21ea83d2d4e770561b18419da2f320a9cb6d69))
+
+
+### Documentation
+
+* **api:** update disputes terminology to chargeback request ([2128851](https://github.com/lithic-com/lithic-node/commit/2128851ca772d5405e62ca4ede55a942b976cf3e))
+
## 0.132.1 (2026-03-10)
Full Changelog: [v0.132.0...v0.132.1](https://github.com/lithic-com/lithic-node/compare/v0.132.0...v0.132.1)
diff --git a/package.json b/package.json
index d4e3a9bd..d98d0baa 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "lithic",
- "version": "0.132.1",
+ "version": "0.133.0",
"description": "The official TypeScript library for the Lithic API",
"author": "Lithic ",
"types": "dist/index.d.ts",
diff --git a/packages/mcp-server/manifest.json b/packages/mcp-server/manifest.json
index 000dd156..8e56cb8d 100644
--- a/packages/mcp-server/manifest.json
+++ b/packages/mcp-server/manifest.json
@@ -1,7 +1,7 @@
{
"dxt_version": "0.2",
"name": "lithic-mcp",
- "version": "0.132.1",
+ "version": "0.133.0",
"description": "The official MCP Server for the Lithic API",
"author": {
"name": "Lithic",
@@ -18,7 +18,9 @@
"entry_point": "index.js",
"mcp_config": {
"command": "node",
- "args": ["${__dirname}/index.js"],
+ "args": [
+ "${__dirname}/index.js"
+ ],
"env": {
"LITHIC_API_KEY": "${user_config.LITHIC_API_KEY}",
"LITHIC_WEBHOOK_SECRET": "${user_config.LITHIC_WEBHOOK_SECRET}"
@@ -46,5 +48,7 @@
"node": ">=18.0.0"
}
},
- "keywords": ["api"]
+ "keywords": [
+ "api"
+ ]
}
diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json
index d2751382..ee2f0bd4 100644
--- a/packages/mcp-server/package.json
+++ b/packages/mcp-server/package.json
@@ -1,6 +1,6 @@
{
"name": "lithic-mcp",
- "version": "0.132.1",
+ "version": "0.133.0",
"description": "The official MCP Server for the Lithic API",
"author": "Lithic ",
"types": "dist/index.d.ts",
diff --git a/packages/mcp-server/src/server.ts b/packages/mcp-server/src/server.ts
index f1b1e155..b21b67c4 100644
--- a/packages/mcp-server/src/server.ts
+++ b/packages/mcp-server/src/server.ts
@@ -21,7 +21,7 @@ export const newMcpServer = async (stainlessApiKey: string | undefined) =>
new McpServer(
{
name: 'lithic_api',
- version: '0.132.1',
+ version: '0.133.0',
},
{
instructions: await getInstructions(stainlessApiKey),
diff --git a/src/version.ts b/src/version.ts
index 53229689..daf15132 100644
--- a/src/version.ts
+++ b/src/version.ts
@@ -1 +1 @@
-export const VERSION = '0.132.1'; // x-release-please-version
+export const VERSION = '0.133.0'; // x-release-please-version
From a0f59d654069022b22bce738f2fa182c4e14c2f7 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 16 Mar 2026 20:50:43 +0000
Subject: [PATCH 023/164] chore(internal): tweak CI branches
---
.github/workflows/ci.yml | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 4635677b..01e23a27 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -1,12 +1,14 @@
name: CI
on:
push:
- branches-ignore:
- - 'generated'
- - 'codegen/**'
- - 'integrated/**'
- - 'stl-preview-head/**'
- - 'stl-preview-base/**'
+ branches:
+ - '**'
+ - '!integrated/**'
+ - '!stl-preview-head/**'
+ - '!stl-preview-base/**'
+ - '!generated'
+ - '!codegen/**'
+ - 'codegen/stl/**'
pull_request:
branches-ignore:
- 'stl-preview-head/**'
From 05bdf4195fe3943ac36baae00ea00101519c698a Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 16 Mar 2026 22:05:58 +0000
Subject: [PATCH 024/164] chore(internal): support
x-stainless-mcp-client-permissions headers in MCP servers
---
packages/mcp-server/src/http.ts | 30 +++++++++++++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)
diff --git a/packages/mcp-server/src/http.ts b/packages/mcp-server/src/http.ts
index de207820..3f9b4878 100644
--- a/packages/mcp-server/src/http.ts
+++ b/packages/mcp-server/src/http.ts
@@ -40,9 +40,37 @@ const newServer = async ({
}
}
+ // Parse x-stainless-mcp-client-permissions header to override permission options
+ //
+ // Note: Permissions are best-effort and intended to prevent clients from doing unexpected things;
+ // they're not a hard security boundary, so we allow arbitrary, client-driven overrides.
+ //
+ // See the Stainless MCP documentation for more details.
+ let effectiveMcpOptions = mcpOptions;
+ const clientPermissionsHeader = req.headers['x-stainless-mcp-client-permissions'];
+ if (typeof clientPermissionsHeader === 'string') {
+ try {
+ const parsed = JSON.parse(clientPermissionsHeader);
+ if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
+ effectiveMcpOptions = {
+ ...mcpOptions,
+ ...(typeof parsed.allow_http_gets === 'boolean' && { codeAllowHttpGets: parsed.allow_http_gets }),
+ ...(Array.isArray(parsed.allowed_methods) && { codeAllowedMethods: parsed.allowed_methods }),
+ ...(Array.isArray(parsed.blocked_methods) && { codeBlockedMethods: parsed.blocked_methods }),
+ };
+ getLogger().info(
+ { clientPermissions: parsed },
+ 'Overriding code execution permissions from x-stainless-mcp-client-permissions header',
+ );
+ }
+ } catch (error) {
+ getLogger().warn({ error }, 'Failed to parse x-stainless-mcp-client-permissions header');
+ }
+ }
+
await initMcpServer({
server: server,
- mcpOptions: mcpOptions,
+ mcpOptions: effectiveMcpOptions,
clientOptions: {
...clientOptions,
...authOptions,
From 098229535ec7e48c3a733c278e0eb9e12906757e Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 17 Mar 2026 13:46:10 +0000
Subject: [PATCH 025/164] chore(internal): switch npm publishing from token
authentication to OIDC
---
.github/workflows/publish-npm.yml | 3 +--
.github/workflows/release-doctor.yml | 2 --
.stats.yml | 2 +-
bin/check-release-environment | 4 ----
bin/publish-npm | 13 +++++++++++--
5 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml
index 0cb165d0..88c82c86 100644
--- a/.github/workflows/publish-npm.yml
+++ b/.github/workflows/publish-npm.yml
@@ -18,6 +18,7 @@ jobs:
runs-on: ubuntu-latest
permissions:
contents: write
+ id-token: write
steps:
- uses: actions/checkout@v6
@@ -39,8 +40,6 @@ jobs:
PATHS_RELEASED='[\".\", \"packages/mcp-server\"]'
fi
yarn tsn scripts/publish-packages.ts "{ \"paths_released\": \"$PATHS_RELEASED\" }"
- env:
- NPM_TOKEN: ${{ secrets.LITHIC_NPM_TOKEN || secrets.NPM_TOKEN }}
- name: Upload MCP Server DXT GitHub release asset
run: |
diff --git a/.github/workflows/release-doctor.yml b/.github/workflows/release-doctor.yml
index 764a1778..3ebabb64 100644
--- a/.github/workflows/release-doctor.yml
+++ b/.github/workflows/release-doctor.yml
@@ -17,5 +17,3 @@ jobs:
- name: Check release environment
run: |
bash ./bin/check-release-environment
- env:
- NPM_TOKEN: ${{ secrets.LITHIC_NPM_TOKEN || secrets.NPM_TOKEN }}
diff --git a/.stats.yml b/.stats.yml
index 6976609b..25c499dc 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-e88a4837037207e9591d48d534bd61acca57ca6e7c59ec0d4fdcf6e05288cc6d.yml
openapi_spec_hash: fd8bbc173d1b6dafd117fb1a3a3d446c
-config_hash: 3005e2502301e77754e5e1455584525b
+config_hash: 64f05ed5c69d8a76596979dc2c17f0f9
diff --git a/bin/check-release-environment b/bin/check-release-environment
index e4b6d58e..6b43775a 100644
--- a/bin/check-release-environment
+++ b/bin/check-release-environment
@@ -2,10 +2,6 @@
errors=()
-if [ -z "${NPM_TOKEN}" ]; then
- errors+=("The NPM_TOKEN secret has not been set. Please set it in either this repository's secrets or your organization secrets")
-fi
-
lenErrors=${#errors[@]}
if [[ lenErrors -gt 0 ]]; then
diff --git a/bin/publish-npm b/bin/publish-npm
index 45e8aa80..3d05c0bd 100644
--- a/bin/publish-npm
+++ b/bin/publish-npm
@@ -2,7 +2,12 @@
set -eux
-npm config set '//registry.npmjs.org/:_authToken' "$NPM_TOKEN"
+if [[ ${NPM_TOKEN:-} ]]; then
+ npm config set '//registry.npmjs.org/:_authToken' "$NPM_TOKEN"
+elif [[ ! ${ACTIONS_ID_TOKEN_REQUEST_TOKEN:-} ]]; then
+ echo "ERROR: NPM_TOKEN must be set if not running in a Github Action with id-token permission"
+ exit 1
+fi
yarn build
cd dist
@@ -57,5 +62,9 @@ else
TAG="latest"
fi
+# Install OIDC compatible npm version
+npm install --prefix ../oidc/ npm@11.6.2
+
# Publish with the appropriate tag
-yarn publish --tag "$TAG"
+export npm_config_registry='https://registry.npmjs.org'
+../oidc/node_modules/.bin/npm publish --tag "$TAG"
From 1210a2d219eff080215cb5abfc89fb47487e856f Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 17 Mar 2026 15:36:06 +0000
Subject: [PATCH 026/164] fix(types): make address/dob/email/government_id
optional in account-holders
---
.stats.yml | 6 +-
.../account-holders/account-holders.ts | 59 ++++++++++---------
2 files changed, 33 insertions(+), 32 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 25c499dc..63afb9e1 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-e88a4837037207e9591d48d534bd61acca57ca6e7c59ec0d4fdcf6e05288cc6d.yml
-openapi_spec_hash: fd8bbc173d1b6dafd117fb1a3a3d446c
-config_hash: 64f05ed5c69d8a76596979dc2c17f0f9
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-dad98281bf8dca620bc21f30217878fc043d725586d0395558f0b66b78f316a8.yml
+openapi_spec_hash: 326eff6733ff1b438d77dd1288816101
+config_hash: 400b9afe0f7f7b7d96177d05950775f9
diff --git a/src/resources/account-holders/account-holders.ts b/src/resources/account-holders/account-holders.ts
index 39d12907..44bd7ffa 100644
--- a/src/resources/account-holders/account-holders.ts
+++ b/src/resources/account-holders/account-holders.ts
@@ -2570,30 +2570,36 @@ export declare namespace AccountHolderCreateParams {
}
/**
- * Individuals associated with a KYB application. Phone number is optional.
+ * Individuals associated with a KYB_DELEGATED application. Only first and last
+ * name are required.
*/
export interface BeneficialOwnerIndividual {
+ /**
+ * Individual's first name, as it appears on government-issued identity documents.
+ */
+ first_name: string;
+
+ /**
+ * Individual's last name, as it appears on government-issued identity documents.
+ */
+ last_name: string;
+
/**
* Individual's current address - PO boxes, UPS drops, and FedEx drops are not
* acceptable; APO/FPO are acceptable. Only USA addresses are currently supported.
*/
- address: Shared.Address;
+ address?: Shared.Address;
/**
* Individual's date of birth, as an RFC 3339 date.
*/
- dob: string;
+ dob?: string;
/**
* Individual's email address. If utilizing Lithic for chargeback processing, this
* customer email address may be used to communicate dispute status and resolution.
*/
- email: string;
-
- /**
- * Individual's first name, as it appears on government-issued identity documents.
- */
- first_name: string;
+ email?: string;
/**
* Government-issued identification number (required for identity verification and
@@ -2601,12 +2607,7 @@ export declare namespace AccountHolderCreateParams {
* Individual Taxpayer Identification Numbers (ITIN) are currently supported,
* entered as full nine-digits, with or without hyphens
*/
- government_id: string;
-
- /**
- * Individual's last name, as it appears on government-issued identity documents.
- */
- last_name: string;
+ government_id?: string;
/**
* Individual's phone number, entered in E.164 format.
@@ -2625,27 +2626,32 @@ export declare namespace AccountHolderCreateParams {
* (Section II) for more background.
*/
export interface ControlPerson {
+ /**
+ * Individual's first name, as it appears on government-issued identity documents.
+ */
+ first_name: string;
+
+ /**
+ * Individual's last name, as it appears on government-issued identity documents.
+ */
+ last_name: string;
+
/**
* Individual's current address - PO boxes, UPS drops, and FedEx drops are not
* acceptable; APO/FPO are acceptable. Only USA addresses are currently supported.
*/
- address: Shared.Address;
+ address?: Shared.Address;
/**
* Individual's date of birth, as an RFC 3339 date.
*/
- dob: string;
+ dob?: string;
/**
* Individual's email address. If utilizing Lithic for chargeback processing, this
* customer email address may be used to communicate dispute status and resolution.
*/
- email: string;
-
- /**
- * Individual's first name, as it appears on government-issued identity documents.
- */
- first_name: string;
+ email?: string;
/**
* Government-issued identification number (required for identity verification and
@@ -2653,12 +2659,7 @@ export declare namespace AccountHolderCreateParams {
* Individual Taxpayer Identification Numbers (ITIN) are currently supported,
* entered as full nine-digits, with or without hyphens
*/
- government_id: string;
-
- /**
- * Individual's last name, as it appears on government-issued identity documents.
- */
- last_name: string;
+ government_id?: string;
/**
* Individual's phone number, entered in E.164 format.
From 6c57df9cbdf6eb69d7d13e24951b8ac697ce236f Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 17 Mar 2026 16:33:16 +0000
Subject: [PATCH 027/164] feat(api): add remittance_information field to
Payment
---
.stats.yml | 4 ++--
src/resources/payments.ts | 5 +++++
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 63afb9e1..91c157f0 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-dad98281bf8dca620bc21f30217878fc043d725586d0395558f0b66b78f316a8.yml
-openapi_spec_hash: 326eff6733ff1b438d77dd1288816101
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-fcf9b2688f1093591ebfa0f26aaa02929c63992600ce5709a97908d8a1360592.yml
+openapi_spec_hash: 7376ab615eac0a338424a9217717c21c
config_hash: 400b9afe0f7f7b7d96177d05950775f9
diff --git a/src/resources/payments.ts b/src/resources/payments.ts
index 28242623..850dc621 100644
--- a/src/resources/payments.ts
+++ b/src/resources/payments.ts
@@ -520,6 +520,11 @@ export namespace Payment {
* for tracking the message through the Fedwire system
*/
message_id?: string | null;
+
+ /**
+ * Payment details or invoice reference
+ */
+ remittance_information?: string | null;
}
/**
From 4d0a0d7b9b7bdd73f1d584e1549b81920667a951 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 17 Mar 2026 17:32:14 +0000
Subject: [PATCH 028/164] docs(api): update supported file types in account
holder document uploads
---
.stats.yml | 4 ++--
src/resources/account-holders/account-holders.ts | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 91c157f0..b655e630 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-fcf9b2688f1093591ebfa0f26aaa02929c63992600ce5709a97908d8a1360592.yml
-openapi_spec_hash: 7376ab615eac0a338424a9217717c21c
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-5bb8d2bedef02f07498de3f252fa6da1393d2fb59f727b05828804cea9aded30.yml
+openapi_spec_hash: d1f260252b3bb7ebc77fa7134db6c65d
config_hash: 400b9afe0f7f7b7d96177d05950775f9
diff --git a/src/resources/account-holders/account-holders.ts b/src/resources/account-holders/account-holders.ts
index 44bd7ffa..0bd2087f 100644
--- a/src/resources/account-holders/account-holders.ts
+++ b/src/resources/account-holders/account-holders.ts
@@ -272,8 +272,8 @@ export class AccountHolders extends APIResource {
*
* This endpoint is only valid for evaluations in a `PENDING_DOCUMENT` state.
*
- * Uploaded images must either be a `jpg` or `png` file, and each must be less than
- * 15 MiB. Once both required uploads have been successfully completed, your
+ * Supported file types include `jpg`, `png`, and `pdf`. Each file must be less
+ * than 15 MiB. Once both required uploads have been successfully completed, your
* document will be run through KYC verification.
*
* If you have registered a webhook, you will receive evaluation updates for any
From fd232fae50ef9abd5d14f78d93386bde8edc59ed Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 17 Mar 2026 17:32:42 +0000
Subject: [PATCH 029/164] release: 0.134.0
---
.release-please-manifest.json | 2 +-
CHANGELOG.md | 25 +++++++++++++++++++++++++
package.json | 2 +-
packages/mcp-server/manifest.json | 2 +-
packages/mcp-server/package.json | 2 +-
packages/mcp-server/src/server.ts | 2 +-
src/version.ts | 2 +-
7 files changed, 31 insertions(+), 6 deletions(-)
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 94e69931..e5452f67 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.133.0"
+ ".": "0.134.0"
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 48043068..4f12d030 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,30 @@
# Changelog
+## 0.134.0 (2026-03-17)
+
+Full Changelog: [v0.133.0...v0.134.0](https://github.com/lithic-com/lithic-node/compare/v0.133.0...v0.134.0)
+
+### Features
+
+* **api:** add remittance_information field to Payment ([133fe04](https://github.com/lithic-com/lithic-node/commit/133fe04e55a65208567a8056a96f8c5c91a641d1))
+
+
+### Bug Fixes
+
+* **types:** make address/dob/email/government_id optional in account-holders ([0966648](https://github.com/lithic-com/lithic-node/commit/0966648a478b19bff02dd8ee63cfa53f8db2454b))
+
+
+### Chores
+
+* **internal:** support x-stainless-mcp-client-permissions headers in MCP servers ([f5266e6](https://github.com/lithic-com/lithic-node/commit/f5266e6e139b91a9899b11f700c8ac0ca69b8d70))
+* **internal:** switch npm publishing from token authentication to OIDC ([2831ff1](https://github.com/lithic-com/lithic-node/commit/2831ff1d00c616a9ddac7bf9ea24ebc05cdd367b))
+* **internal:** tweak CI branches ([cb5acc3](https://github.com/lithic-com/lithic-node/commit/cb5acc3a9fe4ac157eb4876aab37345c39600e70))
+
+
+### Documentation
+
+* **api:** update supported file types in account holder document uploads ([dd26f0e](https://github.com/lithic-com/lithic-node/commit/dd26f0e7be9459b45b37fb3795c0522a6f1a81fc))
+
## 0.133.0 (2026-03-16)
Full Changelog: [v0.132.1...v0.133.0](https://github.com/lithic-com/lithic-node/compare/v0.132.1...v0.133.0)
diff --git a/package.json b/package.json
index d98d0baa..56db2b30 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "lithic",
- "version": "0.133.0",
+ "version": "0.134.0",
"description": "The official TypeScript library for the Lithic API",
"author": "Lithic ",
"types": "dist/index.d.ts",
diff --git a/packages/mcp-server/manifest.json b/packages/mcp-server/manifest.json
index 8e56cb8d..7b75a840 100644
--- a/packages/mcp-server/manifest.json
+++ b/packages/mcp-server/manifest.json
@@ -1,7 +1,7 @@
{
"dxt_version": "0.2",
"name": "lithic-mcp",
- "version": "0.133.0",
+ "version": "0.134.0",
"description": "The official MCP Server for the Lithic API",
"author": {
"name": "Lithic",
diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json
index ee2f0bd4..55818a76 100644
--- a/packages/mcp-server/package.json
+++ b/packages/mcp-server/package.json
@@ -1,6 +1,6 @@
{
"name": "lithic-mcp",
- "version": "0.133.0",
+ "version": "0.134.0",
"description": "The official MCP Server for the Lithic API",
"author": "Lithic ",
"types": "dist/index.d.ts",
diff --git a/packages/mcp-server/src/server.ts b/packages/mcp-server/src/server.ts
index b21b67c4..23735f17 100644
--- a/packages/mcp-server/src/server.ts
+++ b/packages/mcp-server/src/server.ts
@@ -21,7 +21,7 @@ export const newMcpServer = async (stainlessApiKey: string | undefined) =>
new McpServer(
{
name: 'lithic_api',
- version: '0.133.0',
+ version: '0.134.0',
},
{
instructions: await getInstructions(stainlessApiKey),
diff --git a/src/version.ts b/src/version.ts
index daf15132..9cd2d099 100644
--- a/src/version.ts
+++ b/src/version.ts
@@ -1 +1 @@
-export const VERSION = '0.133.0'; // x-release-please-version
+export const VERSION = '0.134.0'; // x-release-please-version
From 8d09ecae99069bb027c01219f31f078c3b083203 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 18 Mar 2026 19:00:03 +0000
Subject: [PATCH 030/164] feat(api): add card_age/account_age attributes to
auth rules v2
---
.stats.yml | 4 ++--
src/resources/auth-rules/v2/v2.ts | 9 +++++++--
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index b655e630..a1239ebb 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-5bb8d2bedef02f07498de3f252fa6da1393d2fb59f727b05828804cea9aded30.yml
-openapi_spec_hash: d1f260252b3bb7ebc77fa7134db6c65d
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-5f3c4878ed085a0e8925abdf14ed250ba25b04d5a128e3edd81f28be5fd79b69.yml
+openapi_spec_hash: f2cc51f780daf0454712a4f73b9c8302
config_hash: 400b9afe0f7f7b7d96177d05950775f9
diff --git a/src/resources/auth-rules/v2/v2.ts b/src/resources/auth-rules/v2/v2.ts
index b7f1b6b3..cf943e7d 100644
--- a/src/resources/auth-rules/v2/v2.ts
+++ b/src/resources/auth-rules/v2/v2.ts
@@ -781,6 +781,9 @@ export namespace ConditionalAuthorizationActionParameters {
* - `ADDRESS_MATCH`: Lithic's evaluation result comparing transaction's address
* data with the cardholder KYC data if it exists. Valid values are `MATCH`,
* `MATCH_ADDRESS_ONLY`, `MATCH_ZIP_ONLY`,`MISMATCH`,`NOT_PRESENT`.
+ * - `CARD_AGE`: The age of the card in seconds at the time of the authorization.
+ * - `ACCOUNT_AGE`: The age of the account holder's account in seconds at the time
+ * of the authorization.
*/
attribute:
| 'MCC'
@@ -801,7 +804,9 @@ export namespace ConditionalAuthorizationActionParameters {
| 'PIN_STATUS'
| 'WALLET_TYPE'
| 'TRANSACTION_INITIATOR'
- | 'ADDRESS_MATCH';
+ | 'ADDRESS_MATCH'
+ | 'CARD_AGE'
+ | 'ACCOUNT_AGE';
/**
* The operation to apply to the attribute
@@ -1342,7 +1347,7 @@ export namespace ReportStats {
* - `CARD`: The card associated with the event. Available for AUTHORIZATION and
* THREE_DS_AUTHENTICATION event stream rules.
* - `ACCOUNT_HOLDER`: The account holder associated with the card. Available for
- * THREE_DS_AUTHENTICATION event stream rules.
+ * AUTHORIZATION and THREE_DS_AUTHENTICATION event stream rules.
* - `IP_METADATA`: IP address metadata for the request. Available for
* THREE_DS_AUTHENTICATION event stream rules.
* - `SPEND_VELOCITY`: Spend velocity data for the card or account. Requires
From 1711cc35bcaa939d2e85c66c6f9c8fee8370e01e Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 18 Mar 2026 20:03:53 +0000
Subject: [PATCH 031/164] feat(api): add service location fields to auth rules
v2 and merchant models
---
.stats.yml | 4 +-
src/resources/auth-rules/v2/v2.ts | 10 ++++
src/resources/transactions/transactions.ts | 64 +++++++++++++++++++++-
src/resources/webhooks.ts | 64 +++++++++++++++++++++-
4 files changed, 138 insertions(+), 4 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index a1239ebb..c75e7bac 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-5f3c4878ed085a0e8925abdf14ed250ba25b04d5a128e3edd81f28be5fd79b69.yml
-openapi_spec_hash: f2cc51f780daf0454712a4f73b9c8302
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-7fb459122adaf544433c3d5acd17566e642289b3eccb7ee25d7b7ce418967e32.yml
+openapi_spec_hash: fe69fbb129fa5b7d7b1e71d4f2a908f1
config_hash: 400b9afe0f7f7b7d96177d05950775f9
diff --git a/src/resources/auth-rules/v2/v2.ts b/src/resources/auth-rules/v2/v2.ts
index cf943e7d..6925e18d 100644
--- a/src/resources/auth-rules/v2/v2.ts
+++ b/src/resources/auth-rules/v2/v2.ts
@@ -781,6 +781,14 @@ export namespace ConditionalAuthorizationActionParameters {
* - `ADDRESS_MATCH`: Lithic's evaluation result comparing transaction's address
* data with the cardholder KYC data if it exists. Valid values are `MATCH`,
* `MATCH_ADDRESS_ONLY`, `MATCH_ZIP_ONLY`,`MISMATCH`,`NOT_PRESENT`.
+ * - `SERVICE_LOCATION_STATE`: The state/province code (ISO 3166-2) where the
+ * cardholder received the service, e.g. "NY". When a service location is present
+ * in the network data, the service location state is used. Otherwise, falls back
+ * to the card acceptor state.
+ * - `SERVICE_LOCATION_POSTAL_CODE`: The postal code where the cardholder received
+ * the service, e.g. "10001". When a service location is present in the network
+ * data, the service location postal code is used. Otherwise, falls back to the
+ * card acceptor postal code.
* - `CARD_AGE`: The age of the card in seconds at the time of the authorization.
* - `ACCOUNT_AGE`: The age of the account holder's account in seconds at the time
* of the authorization.
@@ -805,6 +813,8 @@ export namespace ConditionalAuthorizationActionParameters {
| 'WALLET_TYPE'
| 'TRANSACTION_INITIATOR'
| 'ADDRESS_MATCH'
+ | 'SERVICE_LOCATION_STATE'
+ | 'SERVICE_LOCATION_POSTAL_CODE'
| 'CARD_AGE'
| 'ACCOUNT_AGE';
diff --git a/src/resources/transactions/transactions.ts b/src/resources/transactions/transactions.ts
index c5746ae2..fb978133 100644
--- a/src/resources/transactions/transactions.ts
+++ b/src/resources/transactions/transactions.ts
@@ -362,7 +362,10 @@ export interface Transaction {
financial_account_token: string | null;
- merchant: Shared.Merchant;
+ /**
+ * Merchant information including full location details.
+ */
+ merchant: Transaction.Merchant;
/**
* @deprecated Analogous to the 'amount', but in the merchant currency.
@@ -425,6 +428,13 @@ export interface Transaction {
| 'UNKNOWN_HOST_TIMEOUT'
| 'USER_TRANSACTION_LIMIT';
+ /**
+ * Where the cardholder received the service, when different from the card acceptor
+ * location. This is populated from network data elements such as Mastercard DE-122
+ * SE1 SF9-14 and Visa F34 DS02.
+ */
+ service_location: Transaction.ServiceLocation | null;
+
/**
* @deprecated The settled amount of the transaction in the settlement currency.
*/
@@ -531,6 +541,26 @@ export namespace Transaction {
zipcode: string;
}
+ /**
+ * Merchant information including full location details.
+ */
+ export interface Merchant extends Shared.Merchant {
+ /**
+ * Phone number of card acceptor.
+ */
+ phone_number: string | null;
+
+ /**
+ * Postal code of card acceptor.
+ */
+ postal_code: string | null;
+
+ /**
+ * Street address of card acceptor.
+ */
+ street_address: string | null;
+ }
+
export interface Pos {
entry_mode: Pos.EntryMode;
@@ -657,6 +687,38 @@ export namespace Transaction {
}
}
+ /**
+ * Where the cardholder received the service, when different from the card acceptor
+ * location. This is populated from network data elements such as Mastercard DE-122
+ * SE1 SF9-14 and Visa F34 DS02.
+ */
+ export interface ServiceLocation {
+ /**
+ * City of service location.
+ */
+ city: string | null;
+
+ /**
+ * Country code of service location, ISO 3166-1 alpha-3.
+ */
+ country: string | null;
+
+ /**
+ * Postal code of service location.
+ */
+ postal_code: string | null;
+
+ /**
+ * State/province code of service location, ISO 3166-2.
+ */
+ state: string | null;
+
+ /**
+ * Street address of service location.
+ */
+ street_address: string | null;
+ }
+
export interface Event {
/**
* Transaction event identifier.
diff --git a/src/resources/webhooks.ts b/src/resources/webhooks.ts
index 842485e7..96621eda 100644
--- a/src/resources/webhooks.ts
+++ b/src/resources/webhooks.ts
@@ -733,7 +733,10 @@ export interface CardAuthorizationApprovalRequestWebhookEvent {
event_type: 'card_authorization.approval_request';
- merchant: Shared.Merchant;
+ /**
+ * Merchant information including full location details.
+ */
+ merchant: CardAuthorizationApprovalRequestWebhookEvent.Merchant;
/**
* @deprecated Deprecated, use `amounts`. The amount that the merchant will
@@ -750,6 +753,13 @@ export interface CardAuthorizationApprovalRequestWebhookEvent {
*/
merchant_currency: string;
+ /**
+ * Where the cardholder received the service, when different from the card acceptor
+ * location. This is populated from network data elements such as Mastercard DE-122
+ * SE1 SF9-14 and Visa F34 DS02.
+ */
+ service_location: CardAuthorizationApprovalRequestWebhookEvent.ServiceLocation | null;
+
/**
* @deprecated Deprecated, use `amounts`. Amount (in cents) of the transaction that
* has been settled, including any acquirer fees.
@@ -986,6 +996,58 @@ export namespace CardAuthorizationApprovalRequestWebhookEvent {
type?: 'SINGLE_USE' | 'MERCHANT_LOCKED' | 'UNLOCKED' | 'PHYSICAL' | 'DIGITAL_WALLET' | 'VIRTUAL';
}
+ /**
+ * Merchant information including full location details.
+ */
+ export interface Merchant extends Shared.Merchant {
+ /**
+ * Phone number of card acceptor.
+ */
+ phone_number: string | null;
+
+ /**
+ * Postal code of card acceptor.
+ */
+ postal_code: string | null;
+
+ /**
+ * Street address of card acceptor.
+ */
+ street_address: string | null;
+ }
+
+ /**
+ * Where the cardholder received the service, when different from the card acceptor
+ * location. This is populated from network data elements such as Mastercard DE-122
+ * SE1 SF9-14 and Visa F34 DS02.
+ */
+ export interface ServiceLocation {
+ /**
+ * City of service location.
+ */
+ city: string | null;
+
+ /**
+ * Country code of service location, ISO 3166-1 alpha-3.
+ */
+ country: string | null;
+
+ /**
+ * Postal code of service location.
+ */
+ postal_code: string | null;
+
+ /**
+ * State/province code of service location, ISO 3166-2.
+ */
+ state: string | null;
+
+ /**
+ * Street address of service location.
+ */
+ street_address: string | null;
+ }
+
/**
* Optional Object containing information if the Card is a part of a Fleet managed
* program
From 088602ac8cb59844d7eb014cb90b844604f3e3fa Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Thu, 19 Mar 2026 18:59:09 +0000
Subject: [PATCH 032/164] refactor(tests): switch from prism to steady
---
CONTRIBUTING.md | 2 +-
scripts/mock | 26 +++++++++++++-------------
scripts/test | 16 ++++++++--------
3 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 9e158d16..3b8ffd4c 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -65,7 +65,7 @@ $ pnpm link --global lithic
## Running tests
-Most tests require you to [set up a mock server](https://github.com/stoplightio/prism) against the OpenAPI spec to run the tests.
+Most tests require you to [set up a mock server](https://github.com/dgellow/steady) against the OpenAPI spec to run the tests.
```sh
$ ./scripts/mock
diff --git a/scripts/mock b/scripts/mock
index bcf3b392..38201de8 100755
--- a/scripts/mock
+++ b/scripts/mock
@@ -19,34 +19,34 @@ fi
echo "==> Starting mock server with URL ${URL}"
-# Run prism mock on the given spec
+# Run steady mock on the given spec
if [ "$1" == "--daemon" ]; then
# Pre-install the package so the download doesn't eat into the startup timeout
- npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism --version
+ npm exec --package=@stdy/cli@0.19.3 -- steady --version
- npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL" &> .prism.log &
+ npm exec --package=@stdy/cli@0.19.3 -- steady --host 127.0.0.1 -p 4010 --validator-query-array-format=comma --validator-query-object-format=brackets "$URL" &> .stdy.log &
- # Wait for server to come online (max 30s)
+ # Wait for server to come online via health endpoint (max 30s)
echo -n "Waiting for server"
attempts=0
- while ! grep -q "✖ fatal\|Prism is listening" ".prism.log" ; do
+ while ! curl --silent --fail "http://127.0.0.1:4010/_x-steady/health" >/dev/null 2>&1; do
+ if ! kill -0 $! 2>/dev/null; then
+ echo
+ cat .stdy.log
+ exit 1
+ fi
attempts=$((attempts + 1))
if [ "$attempts" -ge 300 ]; then
echo
- echo "Timed out waiting for Prism server to start"
- cat .prism.log
+ echo "Timed out waiting for Steady server to start"
+ cat .stdy.log
exit 1
fi
echo -n "."
sleep 0.1
done
- if grep -q "✖ fatal" ".prism.log"; then
- cat .prism.log
- exit 1
- fi
-
echo
else
- npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL"
+ npm exec --package=@stdy/cli@0.19.3 -- steady --host 127.0.0.1 -p 4010 --validator-query-array-format=comma --validator-query-object-format=brackets "$URL"
fi
diff --git a/scripts/test b/scripts/test
index 7bce0516..af1c7a57 100755
--- a/scripts/test
+++ b/scripts/test
@@ -9,8 +9,8 @@ GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m' # No Color
-function prism_is_running() {
- curl --silent "http://localhost:4010" >/dev/null 2>&1
+function steady_is_running() {
+ curl --silent "http://127.0.0.1:4010/_x-steady/health" >/dev/null 2>&1
}
kill_server_on_port() {
@@ -25,7 +25,7 @@ function is_overriding_api_base_url() {
[ -n "$TEST_API_BASE_URL" ]
}
-if ! is_overriding_api_base_url && ! prism_is_running ; then
+if ! is_overriding_api_base_url && ! steady_is_running ; then
# When we exit this script, make sure to kill the background mock server process
trap 'kill_server_on_port 4010' EXIT
@@ -36,19 +36,19 @@ fi
if is_overriding_api_base_url ; then
echo -e "${GREEN}✔ Running tests against ${TEST_API_BASE_URL}${NC}"
echo
-elif ! prism_is_running ; then
- echo -e "${RED}ERROR:${NC} The test suite will not run without a mock Prism server"
+elif ! steady_is_running ; then
+ echo -e "${RED}ERROR:${NC} The test suite will not run without a mock Steady server"
echo -e "running against your OpenAPI spec."
echo
echo -e "To run the server, pass in the path or url of your OpenAPI"
- echo -e "spec to the prism command:"
+ echo -e "spec to the steady command:"
echo
- echo -e " \$ ${YELLOW}npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock path/to/your.openapi.yml${NC}"
+ echo -e " \$ ${YELLOW}npm exec --package=@stdy/cli@0.19.3 -- steady path/to/your.openapi.yml --host 127.0.0.1 -p 4010 --validator-query-array-format=comma --validator-query-object-format=brackets${NC}"
echo
exit 1
else
- echo -e "${GREEN}✔ Mock prism server is running with your OpenAPI spec${NC}"
+ echo -e "${GREEN}✔ Mock steady server is running with your OpenAPI spec${NC}"
echo
fi
From 016d03ec3709160d2ec6a6dd2a958cdd266bf9a3 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Thu, 19 Mar 2026 20:13:22 +0000
Subject: [PATCH 033/164] feat(api): add override_company_name parameter to
external payments create
---
.stats.yml | 4 ++--
src/resources/payments.ts | 6 ++++++
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index c75e7bac..b52f2358 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-7fb459122adaf544433c3d5acd17566e642289b3eccb7ee25d7b7ce418967e32.yml
-openapi_spec_hash: fe69fbb129fa5b7d7b1e71d4f2a908f1
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-8aac2690599ec7343fab3957433e94ebf63ac1186c753e00dff85b32f4d6e88c.yml
+openapi_spec_hash: 84da9d0725e41cb5661c6ed6661ce101
config_hash: 400b9afe0f7f7b7d96177d05950775f9
diff --git a/src/resources/payments.ts b/src/resources/payments.ts
index 850dc621..90b3600f 100644
--- a/src/resources/payments.ts
+++ b/src/resources/payments.ts
@@ -479,6 +479,12 @@ export namespace Payment {
*/
company_id?: string | null;
+ /**
+ * Value to override the configured company name with. Can only be used if allowed
+ * to override
+ */
+ override_company_name?: string | null;
+
/**
* Receipt routing number
*/
From 69c86589c6acc70de7ce1b928d2ec61ed1366598 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Fri, 20 Mar 2026 17:55:49 +0000
Subject: [PATCH 034/164] chore(tests): bump steady to v0.19.4
---
scripts/mock | 6 +++---
scripts/test | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/scripts/mock b/scripts/mock
index 38201de8..e1c19e88 100755
--- a/scripts/mock
+++ b/scripts/mock
@@ -22,9 +22,9 @@ echo "==> Starting mock server with URL ${URL}"
# Run steady mock on the given spec
if [ "$1" == "--daemon" ]; then
# Pre-install the package so the download doesn't eat into the startup timeout
- npm exec --package=@stdy/cli@0.19.3 -- steady --version
+ npm exec --package=@stdy/cli@0.19.4 -- steady --version
- npm exec --package=@stdy/cli@0.19.3 -- steady --host 127.0.0.1 -p 4010 --validator-query-array-format=comma --validator-query-object-format=brackets "$URL" &> .stdy.log &
+ npm exec --package=@stdy/cli@0.19.4 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" &> .stdy.log &
# Wait for server to come online via health endpoint (max 30s)
echo -n "Waiting for server"
@@ -48,5 +48,5 @@ if [ "$1" == "--daemon" ]; then
echo
else
- npm exec --package=@stdy/cli@0.19.3 -- steady --host 127.0.0.1 -p 4010 --validator-query-array-format=comma --validator-query-object-format=brackets "$URL"
+ npm exec --package=@stdy/cli@0.19.4 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL"
fi
diff --git a/scripts/test b/scripts/test
index af1c7a57..8cf5220a 100755
--- a/scripts/test
+++ b/scripts/test
@@ -43,7 +43,7 @@ elif ! steady_is_running ; then
echo -e "To run the server, pass in the path or url of your OpenAPI"
echo -e "spec to the steady command:"
echo
- echo -e " \$ ${YELLOW}npm exec --package=@stdy/cli@0.19.3 -- steady path/to/your.openapi.yml --host 127.0.0.1 -p 4010 --validator-query-array-format=comma --validator-query-object-format=brackets${NC}"
+ echo -e " \$ ${YELLOW}npm exec --package=@stdy/cli@0.19.4 -- steady path/to/your.openapi.yml --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets${NC}"
echo
exit 1
From 092c01fe9a2af77d6efbaaa71bcecb0ca5a98e9c Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Fri, 20 Mar 2026 21:47:09 +0000
Subject: [PATCH 035/164] chore(tests): bump steady to v0.19.5
---
scripts/mock | 6 +++---
scripts/test | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/scripts/mock b/scripts/mock
index e1c19e88..ab814d38 100755
--- a/scripts/mock
+++ b/scripts/mock
@@ -22,9 +22,9 @@ echo "==> Starting mock server with URL ${URL}"
# Run steady mock on the given spec
if [ "$1" == "--daemon" ]; then
# Pre-install the package so the download doesn't eat into the startup timeout
- npm exec --package=@stdy/cli@0.19.4 -- steady --version
+ npm exec --package=@stdy/cli@0.19.5 -- steady --version
- npm exec --package=@stdy/cli@0.19.4 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" &> .stdy.log &
+ npm exec --package=@stdy/cli@0.19.5 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" &> .stdy.log &
# Wait for server to come online via health endpoint (max 30s)
echo -n "Waiting for server"
@@ -48,5 +48,5 @@ if [ "$1" == "--daemon" ]; then
echo
else
- npm exec --package=@stdy/cli@0.19.4 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL"
+ npm exec --package=@stdy/cli@0.19.5 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL"
fi
diff --git a/scripts/test b/scripts/test
index 8cf5220a..907f7be0 100755
--- a/scripts/test
+++ b/scripts/test
@@ -43,7 +43,7 @@ elif ! steady_is_running ; then
echo -e "To run the server, pass in the path or url of your OpenAPI"
echo -e "spec to the steady command:"
echo
- echo -e " \$ ${YELLOW}npm exec --package=@stdy/cli@0.19.4 -- steady path/to/your.openapi.yml --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets${NC}"
+ echo -e " \$ ${YELLOW}npm exec --package=@stdy/cli@0.19.5 -- steady path/to/your.openapi.yml --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets${NC}"
echo
exit 1
From 0e6634de828e0fe5352116d08b3effcc540630b2 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 23 Mar 2026 12:43:51 +0000
Subject: [PATCH 036/164] chore(internal): update gitignore
---
.gitignore | 1 +
1 file changed, 1 insertion(+)
diff --git a/.gitignore b/.gitignore
index d62bea50..b7d4f6b9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
.prism.log
+.stdy.log
node_modules
yarn-error.log
codegen.log
From 7c69aa83db89041973a9f7d37e2ec663a15ae532 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 23 Mar 2026 15:40:38 +0000
Subject: [PATCH 037/164] docs(api): update nature_of_business and qr_code_url
field descriptions
---
.stats.yml | 4 ++--
src/resources/account-holders/account-holders.ts | 12 ++++++++----
src/resources/shared.ts | 4 +++-
src/resources/webhooks.ts | 6 ++++--
4 files changed, 17 insertions(+), 9 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index b52f2358..ae53556b 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-8aac2690599ec7343fab3957433e94ebf63ac1186c753e00dff85b32f4d6e88c.yml
-openapi_spec_hash: 84da9d0725e41cb5661c6ed6661ce101
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-17c04dd1b0508b380c21e3acc3d4cd1e86b590f81d14fa26d1973b236f660e38.yml
+openapi_spec_hash: f8ddee07358d2c938450a6889fbf7940
config_hash: 400b9afe0f7f7b7d96177d05950775f9
diff --git a/src/resources/account-holders/account-holders.ts b/src/resources/account-holders/account-holders.ts
index 0bd2087f..246e076a 100644
--- a/src/resources/account-holders/account-holders.ts
+++ b/src/resources/account-holders/account-holders.ts
@@ -736,7 +736,8 @@ export interface KYB {
/**
* Short description of the company's line of business (i.e., what does the company
- * do?).
+ * do?). Values longer than 255 characters will be truncated before KYB
+ * verification
*/
nature_of_business: string;
@@ -2282,7 +2283,8 @@ export declare namespace AccountHolderCreateParams {
/**
* Short description of the company's line of business (i.e., what does the company
- * do?).
+ * do?). Values longer than 255 characters will be truncated before KYB
+ * verification
*/
nature_of_business: string;
@@ -2506,7 +2508,8 @@ export declare namespace AccountHolderCreateParams {
/**
* Short description of the company's line of business (i.e., what does the company
- * do?).
+ * do?). Values longer than 255 characters will be truncated before KYB
+ * verification
*/
nature_of_business?: string;
@@ -2851,7 +2854,8 @@ export declare namespace AccountHolderUpdateParams {
/**
* Short description of the company's line of business (i.e., what does the company
- * do?).
+ * do?). Values longer than 255 characters will be truncated before KYB
+ * verification
*/
nature_of_business?: string;
diff --git a/src/resources/shared.ts b/src/resources/shared.ts
index 45b74346..ba1541c3 100644
--- a/src/resources/shared.ts
+++ b/src/resources/shared.ts
@@ -44,7 +44,9 @@ export interface Address {
export interface Carrier {
/**
- * QR code url to display on the card carrier
+ * QR code URL to display on the card carrier. The `qr_code_url` field requires
+ * your domain to be allowlisted by Lithic before use. Contact Support to configure
+ * your QR code domain
*/
qr_code_url?: string;
}
diff --git a/src/resources/webhooks.ts b/src/resources/webhooks.ts
index 96621eda..6a5f3710 100644
--- a/src/resources/webhooks.ts
+++ b/src/resources/webhooks.ts
@@ -160,7 +160,8 @@ export namespace AccountHolderUpdatedWebhookEvent {
/**
* Short description of the company's line of business (i.e., what does the company
- * do?).
+ * do?). Values longer than 255 characters will be truncated before KYB
+ * verification
*/
nature_of_business?: string;
@@ -2492,7 +2493,8 @@ export namespace ParsedWebhookEvent {
/**
* Short description of the company's line of business (i.e., what does the company
- * do?).
+ * do?). Values longer than 255 characters will be truncated before KYB
+ * verification
*/
nature_of_business?: string;
From a43ad20913d2df5afd0f9b515b5a3e2114a0f2c2 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 23 Mar 2026 16:22:16 +0000
Subject: [PATCH 038/164] chore(internal): fix MCP server TS errors that occur
with required client options
---
packages/mcp-server/src/code-tool.ts | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
diff --git a/packages/mcp-server/src/code-tool.ts b/packages/mcp-server/src/code-tool.ts
index a9c5aaaa..cc08ae9e 100644
--- a/packages/mcp-server/src/code-tool.ts
+++ b/packages/mcp-server/src/code-tool.ts
@@ -287,16 +287,14 @@ const localDenoHandler = async ({
// Strip null/undefined values so that the worker SDK client can fall back to
// reading from environment variables (including any upstreamClientEnvs).
- const opts: ClientOptions = Object.fromEntries(
- Object.entries({
- baseURL: client.baseURL,
- apiKey: client.apiKey,
- webhookSecret: client.webhookSecret,
- defaultHeaders: {
- 'X-Stainless-MCP': 'true',
- },
- }).filter(([_, v]) => v != null),
- ) as ClientOptions;
+ const opts = {
+ ...(client.baseURL != null ? { baseURL: client.baseURL } : undefined),
+ ...(client.apiKey != null ? { apiKey: client.apiKey } : undefined),
+ ...(client.webhookSecret != null ? { webhookSecret: client.webhookSecret } : undefined),
+ defaultHeaders: {
+ 'X-Stainless-MCP': 'true',
+ },
+ } satisfies Partial as ClientOptions;
const req = worker.request(
'http://localhost',
From a708884b4add8a49ff00c8819818260a1c2146ac Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 23 Mar 2026 18:04:22 +0000
Subject: [PATCH 039/164] chore(tests): bump steady to v0.19.6
---
scripts/mock | 6 +++---
scripts/test | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/scripts/mock b/scripts/mock
index ab814d38..b319bdfb 100755
--- a/scripts/mock
+++ b/scripts/mock
@@ -22,9 +22,9 @@ echo "==> Starting mock server with URL ${URL}"
# Run steady mock on the given spec
if [ "$1" == "--daemon" ]; then
# Pre-install the package so the download doesn't eat into the startup timeout
- npm exec --package=@stdy/cli@0.19.5 -- steady --version
+ npm exec --package=@stdy/cli@0.19.6 -- steady --version
- npm exec --package=@stdy/cli@0.19.5 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" &> .stdy.log &
+ npm exec --package=@stdy/cli@0.19.6 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" &> .stdy.log &
# Wait for server to come online via health endpoint (max 30s)
echo -n "Waiting for server"
@@ -48,5 +48,5 @@ if [ "$1" == "--daemon" ]; then
echo
else
- npm exec --package=@stdy/cli@0.19.5 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL"
+ npm exec --package=@stdy/cli@0.19.6 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL"
fi
diff --git a/scripts/test b/scripts/test
index 907f7be0..8061e043 100755
--- a/scripts/test
+++ b/scripts/test
@@ -43,7 +43,7 @@ elif ! steady_is_running ; then
echo -e "To run the server, pass in the path or url of your OpenAPI"
echo -e "spec to the steady command:"
echo
- echo -e " \$ ${YELLOW}npm exec --package=@stdy/cli@0.19.5 -- steady path/to/your.openapi.yml --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets${NC}"
+ echo -e " \$ ${YELLOW}npm exec --package=@stdy/cli@0.19.6 -- steady path/to/your.openapi.yml --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets${NC}"
echo
exit 1
From fd9278e9b9c06e2d07eb037fc234c62edd783c78 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 23 Mar 2026 21:18:42 +0000
Subject: [PATCH 040/164] chore(internal): switch from steady to prism for mock
server
---
.stats.yml | 2 +-
CONTRIBUTING.md | 2 +-
scripts/mock | 26 +++++++++++++-------------
scripts/test | 16 ++++++++--------
4 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index ae53556b..2c9eb4a3 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-17c04dd1b0508b380c21e3acc3d4cd1e86b590f81d14fa26d1973b236f660e38.yml
openapi_spec_hash: f8ddee07358d2c938450a6889fbf7940
-config_hash: 400b9afe0f7f7b7d96177d05950775f9
+config_hash: edbdfefeb0d3d927c2f9fe3402793215
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 3b8ffd4c..9e158d16 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -65,7 +65,7 @@ $ pnpm link --global lithic
## Running tests
-Most tests require you to [set up a mock server](https://github.com/dgellow/steady) against the OpenAPI spec to run the tests.
+Most tests require you to [set up a mock server](https://github.com/stoplightio/prism) against the OpenAPI spec to run the tests.
```sh
$ ./scripts/mock
diff --git a/scripts/mock b/scripts/mock
index b319bdfb..bcf3b392 100755
--- a/scripts/mock
+++ b/scripts/mock
@@ -19,34 +19,34 @@ fi
echo "==> Starting mock server with URL ${URL}"
-# Run steady mock on the given spec
+# Run prism mock on the given spec
if [ "$1" == "--daemon" ]; then
# Pre-install the package so the download doesn't eat into the startup timeout
- npm exec --package=@stdy/cli@0.19.6 -- steady --version
+ npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism --version
- npm exec --package=@stdy/cli@0.19.6 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" &> .stdy.log &
+ npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL" &> .prism.log &
- # Wait for server to come online via health endpoint (max 30s)
+ # Wait for server to come online (max 30s)
echo -n "Waiting for server"
attempts=0
- while ! curl --silent --fail "http://127.0.0.1:4010/_x-steady/health" >/dev/null 2>&1; do
- if ! kill -0 $! 2>/dev/null; then
- echo
- cat .stdy.log
- exit 1
- fi
+ while ! grep -q "✖ fatal\|Prism is listening" ".prism.log" ; do
attempts=$((attempts + 1))
if [ "$attempts" -ge 300 ]; then
echo
- echo "Timed out waiting for Steady server to start"
- cat .stdy.log
+ echo "Timed out waiting for Prism server to start"
+ cat .prism.log
exit 1
fi
echo -n "."
sleep 0.1
done
+ if grep -q "✖ fatal" ".prism.log"; then
+ cat .prism.log
+ exit 1
+ fi
+
echo
else
- npm exec --package=@stdy/cli@0.19.6 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL"
+ npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL"
fi
diff --git a/scripts/test b/scripts/test
index 8061e043..7bce0516 100755
--- a/scripts/test
+++ b/scripts/test
@@ -9,8 +9,8 @@ GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m' # No Color
-function steady_is_running() {
- curl --silent "http://127.0.0.1:4010/_x-steady/health" >/dev/null 2>&1
+function prism_is_running() {
+ curl --silent "http://localhost:4010" >/dev/null 2>&1
}
kill_server_on_port() {
@@ -25,7 +25,7 @@ function is_overriding_api_base_url() {
[ -n "$TEST_API_BASE_URL" ]
}
-if ! is_overriding_api_base_url && ! steady_is_running ; then
+if ! is_overriding_api_base_url && ! prism_is_running ; then
# When we exit this script, make sure to kill the background mock server process
trap 'kill_server_on_port 4010' EXIT
@@ -36,19 +36,19 @@ fi
if is_overriding_api_base_url ; then
echo -e "${GREEN}✔ Running tests against ${TEST_API_BASE_URL}${NC}"
echo
-elif ! steady_is_running ; then
- echo -e "${RED}ERROR:${NC} The test suite will not run without a mock Steady server"
+elif ! prism_is_running ; then
+ echo -e "${RED}ERROR:${NC} The test suite will not run without a mock Prism server"
echo -e "running against your OpenAPI spec."
echo
echo -e "To run the server, pass in the path or url of your OpenAPI"
- echo -e "spec to the steady command:"
+ echo -e "spec to the prism command:"
echo
- echo -e " \$ ${YELLOW}npm exec --package=@stdy/cli@0.19.6 -- steady path/to/your.openapi.yml --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets${NC}"
+ echo -e " \$ ${YELLOW}npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock path/to/your.openapi.yml${NC}"
echo
exit 1
else
- echo -e "${GREEN}✔ Mock steady server is running with your OpenAPI spec${NC}"
+ echo -e "${GREEN}✔ Mock prism server is running with your OpenAPI spec${NC}"
echo
fi
From f0e79cdde34af205753ac0826d1b81f1f036b4ff Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 23 Mar 2026 21:19:08 +0000
Subject: [PATCH 041/164] release: 0.135.0
---
.release-please-manifest.json | 2 +-
CHANGELOG.md | 30 ++++++++++++++++++++++++++++++
package.json | 2 +-
packages/mcp-server/manifest.json | 2 +-
packages/mcp-server/package.json | 2 +-
packages/mcp-server/src/server.ts | 2 +-
src/version.ts | 2 +-
7 files changed, 36 insertions(+), 6 deletions(-)
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index e5452f67..3799cbc2 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.134.0"
+ ".": "0.135.0"
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4f12d030..3d9ef74c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,35 @@
# Changelog
+## 0.135.0 (2026-03-23)
+
+Full Changelog: [v0.134.0...v0.135.0](https://github.com/lithic-com/lithic-node/compare/v0.134.0...v0.135.0)
+
+### Features
+
+* **api:** add card_age/account_age attributes to auth rules v2 ([37971d6](https://github.com/lithic-com/lithic-node/commit/37971d6f89e503b4e7cdc0425ac7ae3c2ebf80c4))
+* **api:** add override_company_name parameter to external payments create ([868f064](https://github.com/lithic-com/lithic-node/commit/868f064eec2ebc0a5aaa1d22ee6aae5b860b9219))
+* **api:** add service location fields to auth rules v2 and merchant models ([c364f7b](https://github.com/lithic-com/lithic-node/commit/c364f7b5924ee351a1a30f65bd79abfec12848d2))
+
+
+### Chores
+
+* **internal:** fix MCP server TS errors that occur with required client options ([42fb3a8](https://github.com/lithic-com/lithic-node/commit/42fb3a8cd1fb71ab45617036d96a70e57cf1a7af))
+* **internal:** switch from steady to prism for mock server ([90699a3](https://github.com/lithic-com/lithic-node/commit/90699a32f04947398a9ca20308a477a88cf589c9))
+* **internal:** update gitignore ([b49bfc6](https://github.com/lithic-com/lithic-node/commit/b49bfc659568b0a11a097def35e053985144d386))
+* **tests:** bump steady to v0.19.4 ([9491eb7](https://github.com/lithic-com/lithic-node/commit/9491eb75d9b0618688f2dc66fb4d2930c959ad51))
+* **tests:** bump steady to v0.19.5 ([37b04df](https://github.com/lithic-com/lithic-node/commit/37b04dfd4ac5ef9fee33d19cfb396cd8dbccc1d4))
+* **tests:** bump steady to v0.19.6 ([f9125f0](https://github.com/lithic-com/lithic-node/commit/f9125f0c12d7b6d66c6ebb50a2f5f1ab96cfe70a))
+
+
+### Documentation
+
+* **api:** update nature_of_business and qr_code_url field descriptions ([3f262d6](https://github.com/lithic-com/lithic-node/commit/3f262d6318c01ab2c1535387bd8bc98361c615bb))
+
+
+### Refactors
+
+* **tests:** switch from prism to steady ([5d648e0](https://github.com/lithic-com/lithic-node/commit/5d648e0e62eb55e2c27e252d120054ec3878e37e))
+
## 0.134.0 (2026-03-17)
Full Changelog: [v0.133.0...v0.134.0](https://github.com/lithic-com/lithic-node/compare/v0.133.0...v0.134.0)
diff --git a/package.json b/package.json
index 56db2b30..9c4285a8 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "lithic",
- "version": "0.134.0",
+ "version": "0.135.0",
"description": "The official TypeScript library for the Lithic API",
"author": "Lithic ",
"types": "dist/index.d.ts",
diff --git a/packages/mcp-server/manifest.json b/packages/mcp-server/manifest.json
index 7b75a840..93cd73d1 100644
--- a/packages/mcp-server/manifest.json
+++ b/packages/mcp-server/manifest.json
@@ -1,7 +1,7 @@
{
"dxt_version": "0.2",
"name": "lithic-mcp",
- "version": "0.134.0",
+ "version": "0.135.0",
"description": "The official MCP Server for the Lithic API",
"author": {
"name": "Lithic",
diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json
index 55818a76..a50b1d48 100644
--- a/packages/mcp-server/package.json
+++ b/packages/mcp-server/package.json
@@ -1,6 +1,6 @@
{
"name": "lithic-mcp",
- "version": "0.134.0",
+ "version": "0.135.0",
"description": "The official MCP Server for the Lithic API",
"author": "Lithic ",
"types": "dist/index.d.ts",
diff --git a/packages/mcp-server/src/server.ts b/packages/mcp-server/src/server.ts
index 23735f17..27a473bb 100644
--- a/packages/mcp-server/src/server.ts
+++ b/packages/mcp-server/src/server.ts
@@ -21,7 +21,7 @@ export const newMcpServer = async (stainlessApiKey: string | undefined) =>
new McpServer(
{
name: 'lithic_api',
- version: '0.134.0',
+ version: '0.135.0',
},
{
instructions: await getInstructions(stainlessApiKey),
diff --git a/src/version.ts b/src/version.ts
index 9cd2d099..b35cd532 100644
--- a/src/version.ts
+++ b/src/version.ts
@@ -1 +1 @@
-export const VERSION = '0.134.0'; // x-release-please-version
+export const VERSION = '0.135.0'; // x-release-please-version
From 1362fcc600d90384ee01311ef54f927c29ed9d6e Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 24 Mar 2026 14:40:55 +0000
Subject: [PATCH 042/164] feat(api): add override_company_name parameter to
payments ACH
---
.stats.yml | 4 ++--
src/resources/payments.ts | 6 ++++++
tests/api-resources/payments.test.ts | 1 +
3 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 2c9eb4a3..8315b1d8 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-17c04dd1b0508b380c21e3acc3d4cd1e86b590f81d14fa26d1973b236f660e38.yml
-openapi_spec_hash: f8ddee07358d2c938450a6889fbf7940
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-7349acbc90f2ba5668e44039a8e16c678944a2e83281f78e54812ba45904f49a.yml
+openapi_spec_hash: d749723cb9a5dca308c467a01cfdc3e9
config_hash: edbdfefeb0d3d927c2f9fe3402793215
diff --git a/src/resources/payments.ts b/src/resources/payments.ts
index 90b3600f..b102f62c 100644
--- a/src/resources/payments.ts
+++ b/src/resources/payments.ts
@@ -676,6 +676,12 @@ export namespace PaymentCreateParams {
ach_hold_period?: number;
addenda?: string | null;
+
+ /**
+ * Value to override the configured company name with. Can only be used if allowed
+ * to override
+ */
+ override_company_name?: string | null;
}
/**
diff --git a/tests/api-resources/payments.test.ts b/tests/api-resources/payments.test.ts
index d42b8cb6..6b57065a 100644
--- a/tests/api-resources/payments.test.ts
+++ b/tests/api-resources/payments.test.ts
@@ -36,6 +36,7 @@ describe('resource payments', () => {
sec_code: 'CCD',
ach_hold_period: 0,
addenda: 'addenda',
+ override_company_name: 'override_company_name',
},
type: 'COLLECTION',
token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
From 2612e9b672556c7a128e83f2ff7fe33eb6f47161 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 24 Mar 2026 15:21:20 +0000
Subject: [PATCH 043/164] chore(ci): skip lint on metadata-only changes
Note that we still want to run tests, as these depend on the metadata.
---
.github/workflows/ci.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 01e23a27..6eb3f5dc 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -19,7 +19,7 @@ jobs:
timeout-minutes: 10
name: lint
runs-on: ${{ github.repository == 'stainless-sdks/lithic-typescript' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
- if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
+ if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata')
steps:
- uses: actions/checkout@v6
@@ -38,7 +38,7 @@ jobs:
timeout-minutes: 5
name: build
runs-on: ${{ github.repository == 'stainless-sdks/lithic-typescript' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
- if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
+ if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata')
permissions:
contents: read
id-token: write
From ad793067cb359cfa6a4edf6b731b43288723d391 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 24 Mar 2026 20:28:53 +0000
Subject: [PATCH 044/164] codegen metadata
---
.stats.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 8315b1d8..885c1016 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-7349acbc90f2ba5668e44039a8e16c678944a2e83281f78e54812ba45904f49a.yml
-openapi_spec_hash: d749723cb9a5dca308c467a01cfdc3e9
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-8b222de46ecf164a1d6e47c5e677d6e1772c7b1726d0574d9322305c9af4eec6.yml
+openapi_spec_hash: f573dc729467c8c592750677f45a3ea4
config_hash: edbdfefeb0d3d927c2f9fe3402793215
From 8bb445ece1f036ecdf3192a4c45a82dc590b2ef0 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 25 Mar 2026 15:08:43 +0000
Subject: [PATCH 045/164] docs(api): clarify nature_of_business and qr_code_url
field constraints
---
.stats.yml | 4 ++--
src/resources/card-bulk-orders.ts | 29 +++++++++++++++--------------
src/resources/cards/cards.ts | 20 ++++++++++++--------
3 files changed, 29 insertions(+), 24 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 885c1016..f20dc054 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-8b222de46ecf164a1d6e47c5e677d6e1772c7b1726d0574d9322305c9af4eec6.yml
-openapi_spec_hash: f573dc729467c8c592750677f45a3ea4
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-eb2cf51467f505a1d29c3ca40b9595ecbf6d6a3743f53bc42a52c8135a252ff0.yml
+openapi_spec_hash: 2fbd71b69d71138b3e54432a38d759ed
config_hash: edbdfefeb0d3d927c2f9fe3402793215
diff --git a/src/resources/card-bulk-orders.ts b/src/resources/card-bulk-orders.ts
index 8d9ee205..c9f0a8b3 100644
--- a/src/resources/card-bulk-orders.ts
+++ b/src/resources/card-bulk-orders.ts
@@ -8,12 +8,11 @@ import { path } from '../internal/utils/path';
export class CardBulkOrders extends APIResource {
/**
- * Create a new bulk order for physical card shipments **[BETA]**. Cards can be
- * added to the order via the POST /v1/cards endpoint by specifying the
- * bulk_order_token. Lock the order via PATCH
- * /v1/card_bulk_orders/{bulk_order_token} to prepare for shipment. Please work
- * with your Customer Success Manager and card personalization bureau to ensure
- * bulk shipping is supported for your program.
+ * Create a new bulk order for physical card shipments. Cards can be added to the
+ * order via the POST /v1/cards endpoint by specifying the bulk_order_token. Lock
+ * the order via PATCH /v1/card_bulk_orders/{bulk_order_token} to prepare for
+ * shipment. Please work with your Customer Success Manager and card
+ * personalization bureau to ensure bulk shipping is supported for your program.
*
* @example
* ```ts
@@ -37,7 +36,7 @@ export class CardBulkOrders extends APIResource {
}
/**
- * Retrieve a specific bulk order by token **[BETA]**
+ * Retrieve a specific bulk order by token
*
* @example
* ```ts
@@ -51,8 +50,8 @@ export class CardBulkOrders extends APIResource {
}
/**
- * Update a bulk order **[BETA]**. Primarily used to lock the order, preventing
- * additional cards from being added
+ * Update a bulk order. Primarily used to lock the order, preventing additional
+ * cards from being added
*
* @example
* ```ts
@@ -71,7 +70,7 @@ export class CardBulkOrders extends APIResource {
}
/**
- * List bulk orders for physical card shipments **[BETA]**
+ * List bulk orders for physical card shipments
*
* @example
* ```ts
@@ -122,9 +121,10 @@ export interface CardBulkOrder {
shipping_address: unknown;
/**
- * Shipping method for all cards in this bulk order
+ * Shipping method for all cards in this bulk order. BULK_PRIORITY, BULK_2_DAY, and
+ * BULK_EXPRESS are only available with Perfect Plastic Printing
*/
- shipping_method: 'BULK_EXPEDITED';
+ shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS';
/**
* Status of the bulk order. OPEN indicates the order is accepting cards. LOCKED
@@ -151,9 +151,10 @@ export interface CardBulkOrderCreateParams {
shipping_address: unknown;
/**
- * Shipping method for all cards in this bulk order
+ * Shipping method for all cards in this bulk order. BULK_PRIORITY, BULK_2_DAY, and
+ * BULK_EXPRESS are only available with Perfect Plastic Printing
*/
- shipping_method: 'BULK_EXPEDITED';
+ shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS';
}
export interface CardBulkOrderUpdateParams {
diff --git a/src/resources/cards/cards.ts b/src/resources/cards/cards.ts
index 40af39d8..0ba3ba9b 100644
--- a/src/resources/cards/cards.ts
+++ b/src/resources/cards/cards.ts
@@ -1031,11 +1031,12 @@ export interface CardCreateParams {
* tracking
* - `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight
* or similar international option, with tracking
- * - `BULK_EXPEDITED` - Bulk shipment with Expedited shipping
+ * - `BULK` - Card will be shipped as part of a bulk fulfillment order. The
+ * shipping method and timeline are inherited from the parent bulk order.
*/
shipping_method?:
| '2_DAY'
- | 'BULK_EXPEDITED'
+ | 'BULK'
| 'EXPEDITED'
| 'EXPRESS'
| 'PRIORITY'
@@ -1263,11 +1264,12 @@ export interface CardConvertPhysicalParams {
* tracking
* - `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight
* or similar international option, with tracking
- * - `BULK_EXPEDITED` - Bulk shipment with Expedited shipping
+ * - `BULK` - Card will be shipped as part of a bulk fulfillment order. The
+ * shipping method and timeline are inherited from the parent bulk order.
*/
shipping_method?:
| '2_DAY'
- | 'BULK_EXPEDITED'
+ | 'BULK'
| 'EXPEDITED'
| 'EXPRESS'
| 'PRIORITY'
@@ -1431,11 +1433,12 @@ export interface CardReissueParams {
* tracking
* - `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight
* or similar international option, with tracking
- * - `BULK_EXPEDITED` - Bulk shipment with Expedited shipping
+ * - `BULK` - Card will be shipped as part of a bulk fulfillment order. The
+ * shipping method and timeline are inherited from the parent bulk order.
*/
shipping_method?:
| '2_DAY'
- | 'BULK_EXPEDITED'
+ | 'BULK'
| 'EXPEDITED'
| 'EXPRESS'
| 'PRIORITY'
@@ -1488,11 +1491,12 @@ export interface CardRenewParams {
* tracking
* - `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight
* or similar international option, with tracking
- * - `BULK_EXPEDITED` - Bulk shipment with Expedited shipping
+ * - `BULK` - Card will be shipped as part of a bulk fulfillment order. The
+ * shipping method and timeline are inherited from the parent bulk order.
*/
shipping_method?:
| '2_DAY'
- | 'BULK_EXPEDITED'
+ | 'BULK'
| 'EXPEDITED'
| 'EXPRESS'
| 'PRIORITY'
From d0166cedca5bab1496b6ee47fde10ce08175199d Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Thu, 26 Mar 2026 21:35:11 +0000
Subject: [PATCH 046/164] chore(internal): support custom-instructions-path
flag in MCP servers
---
packages/mcp-server/src/http.ts | 3 ++-
packages/mcp-server/src/instructions.ts | 31 +++++++++++++++++++++----
packages/mcp-server/src/options.ts | 6 +++++
packages/mcp-server/src/server.ts | 10 ++++++--
packages/mcp-server/src/stdio.ts | 5 +++-
5 files changed, 47 insertions(+), 8 deletions(-)
diff --git a/packages/mcp-server/src/http.ts b/packages/mcp-server/src/http.ts
index 3f9b4878..39f35908 100644
--- a/packages/mcp-server/src/http.ts
+++ b/packages/mcp-server/src/http.ts
@@ -23,7 +23,8 @@ const newServer = async ({
res: express.Response;
}): Promise => {
const stainlessApiKey = getStainlessApiKey(req, mcpOptions);
- const server = await newMcpServer(stainlessApiKey);
+ const customInstructionsPath = mcpOptions.customInstructionsPath;
+ const server = await newMcpServer({ stainlessApiKey, customInstructionsPath });
const authOptions = parseClientAuthHeaders(req, false);
diff --git a/packages/mcp-server/src/instructions.ts b/packages/mcp-server/src/instructions.ts
index 53deb6fc..818694cb 100644
--- a/packages/mcp-server/src/instructions.ts
+++ b/packages/mcp-server/src/instructions.ts
@@ -1,5 +1,6 @@
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+import fs from 'fs/promises';
import { readEnv } from './util';
import { getLogger } from './logger';
@@ -12,9 +13,15 @@ interface InstructionsCacheEntry {
const instructionsCache = new Map();
-export async function getInstructions(stainlessApiKey: string | undefined): Promise {
+export async function getInstructions({
+ stainlessApiKey,
+ customInstructionsPath,
+}: {
+ stainlessApiKey?: string | undefined;
+ customInstructionsPath?: string | undefined;
+}): Promise {
const now = Date.now();
- const cacheKey = stainlessApiKey ?? '';
+ const cacheKey = customInstructionsPath ?? stainlessApiKey ?? '';
const cached = instructionsCache.get(cacheKey);
if (cached && now - cached.fetchedAt <= INSTRUCTIONS_CACHE_TTL_MS) {
@@ -28,12 +35,28 @@ export async function getInstructions(stainlessApiKey: string | undefined): Prom
}
}
- const fetchedInstructions = await fetchLatestInstructions(stainlessApiKey);
+ let fetchedInstructions: string;
+
+ if (customInstructionsPath) {
+ fetchedInstructions = await fetchLatestInstructionsFromFile(customInstructionsPath);
+ } else {
+ fetchedInstructions = await fetchLatestInstructionsFromApi(stainlessApiKey);
+ }
+
instructionsCache.set(cacheKey, { fetchedInstructions, fetchedAt: now });
return fetchedInstructions;
}
-async function fetchLatestInstructions(stainlessApiKey: string | undefined): Promise {
+async function fetchLatestInstructionsFromFile(path: string): Promise {
+ try {
+ return await fs.readFile(path, 'utf-8');
+ } catch (error) {
+ getLogger().error({ error, path }, 'Error fetching instructions from file');
+ throw error;
+ }
+}
+
+async function fetchLatestInstructionsFromApi(stainlessApiKey: string | undefined): Promise {
// Setting the stainless API key is optional, but may be required
// to authenticate requests to the Stainless API.
const response = await fetch(
diff --git a/packages/mcp-server/src/options.ts b/packages/mcp-server/src/options.ts
index b9e8e8a6..d68058dc 100644
--- a/packages/mcp-server/src/options.ts
+++ b/packages/mcp-server/src/options.ts
@@ -22,6 +22,7 @@ export type McpOptions = {
codeAllowedMethods?: string[] | undefined;
codeBlockedMethods?: string[] | undefined;
codeExecutionMode: McpCodeExecutionMode;
+ customInstructionsPath?: string | undefined;
};
export type McpCodeExecutionMode = 'stainless-sandbox' | 'local';
@@ -52,6 +53,10 @@ export function parseCLIOptions(): CLIOptions {
description:
"Where to run code execution in code tool; 'stainless-sandbox' will execute code in Stainless-hosted sandboxes whereas 'local' will execute code locally on the MCP server machine.",
})
+ .option('custom-instructions-path', {
+ type: 'string',
+ description: 'Path to custom instructions for the MCP server',
+ })
.option('debug', { type: 'boolean', description: 'Enable debug logging' })
.option('log-format', {
type: 'string',
@@ -117,6 +122,7 @@ export function parseCLIOptions(): CLIOptions {
codeAllowedMethods: argv.codeAllowedMethods,
codeBlockedMethods: argv.codeBlockedMethods,
codeExecutionMode: argv.codeExecutionMode as McpCodeExecutionMode,
+ customInstructionsPath: argv.customInstructionsPath,
transport,
logFormat,
port: argv.port,
diff --git a/packages/mcp-server/src/server.ts b/packages/mcp-server/src/server.ts
index 27a473bb..9bc40981 100644
--- a/packages/mcp-server/src/server.ts
+++ b/packages/mcp-server/src/server.ts
@@ -17,14 +17,20 @@ import { blockedMethodsForCodeTool } from './methods';
import { HandlerFunction, McpRequestContext, ToolCallResult, McpTool } from './types';
import { readEnv } from './util';
-export const newMcpServer = async (stainlessApiKey: string | undefined) =>
+export const newMcpServer = async ({
+ stainlessApiKey,
+ customInstructionsPath,
+}: {
+ stainlessApiKey?: string | undefined;
+ customInstructionsPath?: string | undefined;
+}) =>
new McpServer(
{
name: 'lithic_api',
version: '0.135.0',
},
{
- instructions: await getInstructions(stainlessApiKey),
+ instructions: await getInstructions({ stainlessApiKey, customInstructionsPath }),
capabilities: { tools: {}, logging: {} },
},
);
diff --git a/packages/mcp-server/src/stdio.ts b/packages/mcp-server/src/stdio.ts
index e8bcbb19..b04a5441 100644
--- a/packages/mcp-server/src/stdio.ts
+++ b/packages/mcp-server/src/stdio.ts
@@ -4,7 +4,10 @@ import { initMcpServer, newMcpServer } from './server';
import { getLogger } from './logger';
export const launchStdioServer = async (mcpOptions: McpOptions) => {
- const server = await newMcpServer(mcpOptions.stainlessApiKey);
+ const server = await newMcpServer({
+ stainlessApiKey: mcpOptions.stainlessApiKey,
+ customInstructionsPath: mcpOptions.customInstructionsPath,
+ });
await initMcpServer({ server, mcpOptions, stainlessApiKey: mcpOptions.stainlessApiKey });
From af1ee79eeaf9fbdf8be38494f4d22cabfdbcac4c Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Fri, 27 Mar 2026 15:15:49 +0000
Subject: [PATCH 047/164] chore(internal): codegen related update
---
yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index 49adad97..b1a483e1 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1225,9 +1225,9 @@ baseline-browser-mapping@^2.9.0:
integrity sha512-B0xUquLkiGLgHhpPBqvl7GWegWBUNuujQ6kXd/r1U38ElPT6Ok8KZ8e+FpUGEc2ZoRQUzq/aUnaKFc/svWUGSg==
brace-expansion@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7"
- integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.3.tgz#0493338bdd58e319b1039c67cf7ee439892c01d9"
+ integrity sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==
dependencies:
balanced-match "^1.0.0"
From 80f514c4ec27552144b4bc5a7ddfcc8ce0f65a46 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Fri, 27 Mar 2026 18:05:48 +0000
Subject: [PATCH 048/164] chore(internal): support local docs search in MCP
servers
---
packages/mcp-server/package.json | 1 +
packages/mcp-server/src/docs-search-tool.ts | 66 +-
packages/mcp-server/src/local-docs-search.ts | 3522 ++++++++++++++++++
packages/mcp-server/src/options.ts | 18 +
packages/mcp-server/src/server.ts | 8 +
5 files changed, 3605 insertions(+), 10 deletions(-)
create mode 100644 packages/mcp-server/src/local-docs-search.ts
diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json
index a50b1d48..98904894 100644
--- a/packages/mcp-server/package.json
+++ b/packages/mcp-server/package.json
@@ -41,6 +41,7 @@
"cors": "^2.8.5",
"express": "^5.1.0",
"fuse.js": "^7.1.0",
+ "minisearch": "^7.2.0",
"jq-web": "https://github.com/stainless-api/jq-web/releases/download/v0.8.8/jq-web.tar.gz",
"pino": "^10.3.1",
"pino-http": "^11.0.0",
diff --git a/packages/mcp-server/src/docs-search-tool.ts b/packages/mcp-server/src/docs-search-tool.ts
index a3122cb9..b521738d 100644
--- a/packages/mcp-server/src/docs-search-tool.ts
+++ b/packages/mcp-server/src/docs-search-tool.ts
@@ -3,6 +3,7 @@
import { Tool } from '@modelcontextprotocol/sdk/types.js';
import { Metadata, McpRequestContext, asTextContentResult } from './types';
import { getLogger } from './logger';
+import type { LocalDocsSearch } from './local-docs-search';
export const metadata: Metadata = {
resource: 'all',
@@ -43,20 +44,49 @@ export const tool: Tool = {
const docsSearchURL =
process.env['DOCS_SEARCH_URL'] || 'https://api.stainless.com/api/projects/lithic/docs/search';
-export const handler = async ({
- reqContext,
- args,
-}: {
- reqContext: McpRequestContext;
- args: Record | undefined;
-}) => {
+let _localSearch: LocalDocsSearch | undefined;
+
+export function setLocalSearch(search: LocalDocsSearch): void {
+ _localSearch = search;
+}
+
+const SUPPORTED_LANGUAGES = new Set(['http', 'typescript', 'javascript']);
+
+async function searchLocal(args: Record): Promise {
+ if (!_localSearch) {
+ throw new Error('Local search not initialized');
+ }
+
+ const query = (args['query'] as string) ?? '';
+ const language = (args['language'] as string) ?? 'typescript';
+ const detail = (args['detail'] as string) ?? 'verbose';
+
+ if (!SUPPORTED_LANGUAGES.has(language)) {
+ throw new Error(
+ `Local docs search only supports HTTP, TypeScript, and JavaScript. Got language="${language}". ` +
+ `Use --docs-search-mode stainless-api for other languages, or set language to "http", "typescript", or "javascript".`,
+ );
+ }
+
+ return _localSearch.search({
+ query,
+ language,
+ detail,
+ maxResults: 10,
+ }).results;
+}
+
+async function searchRemote(
+ args: Record,
+ stainlessApiKey: string | undefined,
+): Promise {
const body = args as any;
const query = new URLSearchParams(body).toString();
const startTime = Date.now();
const result = await fetch(`${docsSearchURL}?${query}`, {
headers: {
- ...(reqContext.stainlessApiKey && { Authorization: reqContext.stainlessApiKey }),
+ ...(stainlessApiKey && { Authorization: stainlessApiKey }),
},
});
@@ -75,7 +105,7 @@ export const handler = async ({
'Got error response from docs search tool',
);
- if (result.status === 404 && !reqContext.stainlessApiKey) {
+ if (result.status === 404 && !stainlessApiKey) {
throw new Error(
'Could not find docs for this project. You may need to provide a Stainless API key via the STAINLESS_API_KEY environment variable, the --stainless-api-key flag, or the x-stainless-api-key HTTP header.',
);
@@ -94,7 +124,23 @@ export const handler = async ({
},
'Got docs search result',
);
- return asTextContentResult(resultBody);
+ return resultBody;
+}
+
+export const handler = async ({
+ reqContext,
+ args,
+}: {
+ reqContext: McpRequestContext;
+ args: Record | undefined;
+}) => {
+ const body = args ?? {};
+
+ if (_localSearch) {
+ return asTextContentResult(await searchLocal(body));
+ }
+
+ return asTextContentResult(await searchRemote(body, reqContext.stainlessApiKey));
};
export default { metadata, tool, handler };
diff --git a/packages/mcp-server/src/local-docs-search.ts b/packages/mcp-server/src/local-docs-search.ts
new file mode 100644
index 00000000..4810a0a2
--- /dev/null
+++ b/packages/mcp-server/src/local-docs-search.ts
@@ -0,0 +1,3522 @@
+// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+import MiniSearch from 'minisearch';
+import * as fs from 'node:fs/promises';
+import * as path from 'node:path';
+import { getLogger } from './logger';
+
+type MethodEntry = {
+ name: string;
+ endpoint: string;
+ httpMethod: string;
+ summary: string;
+ description: string;
+ stainlessPath: string;
+ qualified: string;
+ params?: string[];
+ response?: string;
+ markdown?: string;
+};
+
+type ProseChunk = {
+ content: string;
+ tag: string;
+ sectionContext?: string;
+ source?: string;
+};
+
+type MiniSearchDocument = {
+ id: string;
+ kind: 'http_method' | 'prose';
+ name?: string;
+ endpoint?: string;
+ summary?: string;
+ description?: string;
+ qualified?: string;
+ stainlessPath?: string;
+ content?: string;
+ sectionContext?: string;
+ _original: Record;
+};
+
+type SearchResult = {
+ results: (string | Record)[];
+};
+
+const EMBEDDED_METHODS: MethodEntry[] = [
+ {
+ name: 'api_status',
+ endpoint: '/v1/status',
+ httpMethod: 'get',
+ summary: 'API status check',
+ description: 'Status of api',
+ stainlessPath: '(resource) $client > (method) api_status',
+ qualified: 'client.apiStatus',
+ response: '{ message?: string; }',
+ markdown:
+ "## api_status\n\n`client.apiStatus(): { message?: string; }`\n\n**get** `/v1/status`\n\nStatus of api\n\n### Returns\n\n- `{ message?: string; }`\n\n - `message?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst apiStatus = await client.apiStatus();\n\nconsole.log(apiStatus);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/accounts/{account_token}',
+ httpMethod: 'get',
+ summary: 'Get account',
+ description: 'Get account configuration such as spend limits.',
+ stainlessPath: '(resource) accounts > (method) retrieve',
+ qualified: 'client.accounts.retrieve',
+ params: ['account_token: string;'],
+ response:
+ "{ token: string; created: string; spend_limit: { daily: number; lifetime: number; monthly: number; }; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; }",
+ markdown:
+ "## retrieve\n\n`client.accounts.retrieve(account_token: string): { token: string; created: string; spend_limit: object; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: object; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: object; }`\n\n**get** `/v1/accounts/{account_token}`\n\nGet account configuration such as spend limits.\n\n### Parameters\n\n- `account_token: string`\n\n### Returns\n\n- `{ token: string; created: string; spend_limit: { daily: number; lifetime: number; monthly: number; }; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; }`\n\n - `token: string`\n - `created: string`\n - `spend_limit: { daily: number; lifetime: number; monthly: number; }`\n - `state: 'ACTIVE' | 'PAUSED' | 'CLOSED'`\n - `account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }`\n - `auth_rule_tokens?: string[]`\n - `cardholder_currency?: string`\n - `comment?: string`\n - `substatus?: string`\n - `verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst account = await client.accounts.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(account);\n```",
+ },
+ {
+ name: 'update',
+ endpoint: '/v1/accounts/{account_token}',
+ httpMethod: 'patch',
+ summary: 'Update account',
+ description:
+ 'Update account configuration such as state or spend limits. Can only be run on accounts that are part of the program managed by this API key.\nAccounts that are in the `PAUSED` state will not be able to transact or create new cards.\n',
+ stainlessPath: '(resource) accounts > (method) update',
+ qualified: 'client.accounts.update',
+ params: [
+ 'account_token: string;',
+ 'comment?: string;',
+ 'daily_spend_limit?: number;',
+ 'lifetime_spend_limit?: number;',
+ 'monthly_spend_limit?: number;',
+ "state?: 'ACTIVE' | 'PAUSED' | 'CLOSED';",
+ 'substatus?: string;',
+ 'verification_address?: { address1?: string; address2?: string; city?: string; country?: string; postal_code?: string; state?: string; };',
+ ],
+ response:
+ "{ token: string; created: string; spend_limit: { daily: number; lifetime: number; monthly: number; }; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; }",
+ markdown:
+ "## update\n\n`client.accounts.update(account_token: string, comment?: string, daily_spend_limit?: number, lifetime_spend_limit?: number, monthly_spend_limit?: number, state?: 'ACTIVE' | 'PAUSED' | 'CLOSED', substatus?: string, verification_address?: { address1?: string; address2?: string; city?: string; country?: string; postal_code?: string; state?: string; }): { token: string; created: string; spend_limit: object; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: object; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: object; }`\n\n**patch** `/v1/accounts/{account_token}`\n\nUpdate account configuration such as state or spend limits. Can only be run on accounts that are part of the program managed by this API key.\nAccounts that are in the `PAUSED` state will not be able to transact or create new cards.\n\n\n### Parameters\n\n- `account_token: string`\n\n- `comment?: string`\n Additional context or information related to the account.\n\n- `daily_spend_limit?: number`\n Amount (in cents) for the account's daily spend limit (e.g. 100000 would be a $1,000 limit).\nBy default the daily spend limit is set to $1,250.\n\n\n- `lifetime_spend_limit?: number`\n Amount (in cents) for the account's lifetime spend limit (e.g. 100000 would be a $1,000 limit). Once this limit is reached, no transactions will be accepted on any card created for this account until the limit is updated.\nNote that a spend limit of 0 is effectively no limit, and should only be used to reset or remove a prior limit. Only a limit of 1 or above will result in declined transactions due to checks against the account limit. This behavior differs from the daily spend limit and the monthly spend limit.\n\n\n- `monthly_spend_limit?: number`\n Amount (in cents) for the account's monthly spend limit (e.g. 100000 would be a $1,000 limit).\nBy default the monthly spend limit is set to $5,000.\n\n\n- `state?: 'ACTIVE' | 'PAUSED' | 'CLOSED'`\n Account states.\n\n- `substatus?: string`\n Account state substatus values:\n* `FRAUD_IDENTIFIED` - The account has been recognized as being created or used with stolen or fabricated identity information, encompassing both true identity theft and synthetic identities.\n* `SUSPICIOUS_ACTIVITY` - The account has exhibited suspicious behavior, such as unauthorized access or fraudulent transactions, necessitating further investigation.\n* `RISK_VIOLATION` - The account has been involved in deliberate misuse by the legitimate account holder. Examples include disputing valid transactions without cause, falsely claiming non-receipt of goods, or engaging in intentional bust-out schemes to exploit account services.\n* `END_USER_REQUEST` - The account holder has voluntarily requested the closure of the account for personal reasons. This encompasses situations such as bankruptcy, other financial considerations, or the account holder's death.\n* `ISSUER_REQUEST` - The issuer has initiated the closure of the account due to business strategy, risk management, inactivity, product changes, regulatory concerns, or violations of terms and conditions.\n* `NOT_ACTIVE` - The account has not had any transactions or payment activity within a specified period. This status applies to accounts that are paused or closed due to inactivity.\n* `INTERNAL_REVIEW` - The account is temporarily paused pending further internal review. In future implementations, this status may prevent clients from activating the account via APIs until the review is completed.\n* `OTHER` - The reason for the account's current status does not fall into any of the above categories. A comment should be provided to specify the particular reason.\n\n- `verification_address?: { address1?: string; address2?: string; city?: string; country?: string; postal_code?: string; state?: string; }`\n Address used during Address Verification Service (AVS) checks during transactions if enabled via Auth Rules. This field is deprecated as AVS checks are no longer supported by Auth Rules. The field will be removed from the schema in a future release.\n - `address1?: string`\n - `address2?: string`\n - `city?: string`\n - `country?: string`\n - `postal_code?: string`\n - `state?: string`\n\n### Returns\n\n- `{ token: string; created: string; spend_limit: { daily: number; lifetime: number; monthly: number; }; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; }`\n\n - `token: string`\n - `created: string`\n - `spend_limit: { daily: number; lifetime: number; monthly: number; }`\n - `state: 'ACTIVE' | 'PAUSED' | 'CLOSED'`\n - `account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }`\n - `auth_rule_tokens?: string[]`\n - `cardholder_currency?: string`\n - `comment?: string`\n - `substatus?: string`\n - `verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst account = await client.accounts.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(account);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/accounts',
+ httpMethod: 'get',
+ summary: 'List accounts',
+ description: 'List account configurations.\n',
+ stainlessPath: '(resource) accounts > (method) list',
+ qualified: 'client.accounts.list',
+ params: [
+ 'begin?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ ],
+ response:
+ "{ token: string; created: string; spend_limit: { daily: number; lifetime: number; monthly: number; }; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; }",
+ markdown:
+ "## list\n\n`client.accounts.list(begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; created: string; spend_limit: object; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: object; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: object; }`\n\n**get** `/v1/accounts`\n\nList account configurations.\n\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; created: string; spend_limit: { daily: number; lifetime: number; monthly: number; }; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; }`\n\n - `token: string`\n - `created: string`\n - `spend_limit: { daily: number; lifetime: number; monthly: number; }`\n - `state: 'ACTIVE' | 'PAUSED' | 'CLOSED'`\n - `account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }`\n - `auth_rule_tokens?: string[]`\n - `cardholder_currency?: string`\n - `comment?: string`\n - `substatus?: string`\n - `verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const account of client.accounts.list()) {\n console.log(account);\n}\n```",
+ },
+ {
+ name: 'retrieve_spend_limits',
+ endpoint: '/v1/accounts/{account_token}/spend_limits',
+ httpMethod: 'get',
+ summary: "Get account's available spend limits",
+ description:
+ "Get an Account's available spend limits, which is based on the spend limit configured on the Account and the amount already spent over the spend limit's duration. For example, if the Account has a daily spend limit of $1000 configured, and has spent $600 in the last 24 hours, the available spend limit returned would be $400.",
+ stainlessPath: '(resource) accounts > (method) retrieve_spend_limits',
+ qualified: 'client.accounts.retrieveSpendLimits',
+ params: ['account_token: string;'],
+ response:
+ '{ available_spend_limit: { daily?: number; lifetime?: number; monthly?: number; }; spend_limit?: { daily?: number; lifetime?: number; monthly?: number; }; spend_velocity?: { daily?: number; lifetime?: number; monthly?: number; }; }',
+ markdown:
+ "## retrieve_spend_limits\n\n`client.accounts.retrieveSpendLimits(account_token: string): { available_spend_limit: object; spend_limit?: object; spend_velocity?: object; }`\n\n**get** `/v1/accounts/{account_token}/spend_limits`\n\nGet an Account's available spend limits, which is based on the spend limit configured on the Account and the amount already spent over the spend limit's duration. For example, if the Account has a daily spend limit of $1000 configured, and has spent $600 in the last 24 hours, the available spend limit returned would be $400.\n\n### Parameters\n\n- `account_token: string`\n\n### Returns\n\n- `{ available_spend_limit: { daily?: number; lifetime?: number; monthly?: number; }; spend_limit?: { daily?: number; lifetime?: number; monthly?: number; }; spend_velocity?: { daily?: number; lifetime?: number; monthly?: number; }; }`\n\n - `available_spend_limit: { daily?: number; lifetime?: number; monthly?: number; }`\n - `spend_limit?: { daily?: number; lifetime?: number; monthly?: number; }`\n - `spend_velocity?: { daily?: number; lifetime?: number; monthly?: number; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst accountSpendLimits = await client.accounts.retrieveSpendLimits('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(accountSpendLimits);\n```",
+ },
+ {
+ name: 'create',
+ endpoint: '/v1/account_holders',
+ httpMethod: 'post',
+ summary: 'Create an individual or business account holder',
+ description:
+ 'Create an account holder and initiate the appropriate onboarding workflow. Account holders and accounts have a 1:1 relationship. When an account holder is successfully created an associated account is also created.\nAll calls to this endpoint will return a synchronous response. The response time will depend on the workflow. In some cases, the response may indicate the workflow is under review or further action will be needed to complete the account creation process.\nThis endpoint can only be used on accounts that are part of the program that the calling API key manages.',
+ stainlessPath: '(resource) account_holders > (method) create',
+ qualified: 'client.accountHolders.create',
+ params: [
+ "{ beneficial_owner_individuals: { address: object; dob: string; email: string; first_name: string; government_id: string; last_name: string; phone_number?: string; }[]; business_entity: { address: object; government_id: string; legal_business_name: string; phone_numbers: string[]; dba_business_name?: string; parent_company?: string; }; control_person: { address: object; dob: string; email: string; first_name: string; government_id: string; last_name: string; phone_number?: string; }; nature_of_business: string; tos_timestamp: string; workflow: 'KYB_BASIC' | 'KYB_BYO'; external_id?: string; kyb_passed_timestamp?: string; naics_code?: string; website_url?: string; } | { business_entity: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; legal_business_name: string; dba_business_name?: string; government_id?: string; parent_company?: string; phone_numbers?: string[]; }; beneficial_owner_individuals?: { first_name: string; last_name: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob?: string; email?: string; government_id?: string; phone_number?: string; }[]; control_person?: { first_name: string; last_name: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob?: string; email?: string; government_id?: string; phone_number?: string; }; external_id?: string; naics_code?: string; nature_of_business?: string; tos_timestamp?: string; website_url?: string; workflow?: 'KYB_DELEGATED'; } | { individual: { address: object; dob: string; email: string; first_name: string; government_id: string; last_name: string; phone_number: string; }; tos_timestamp: string; workflow: 'KYC_BASIC' | 'KYC_BYO'; external_id?: string; kyc_passed_timestamp?: string; } | { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; email: string; first_name: string; kyc_exemption_type: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; last_name: string; phone_number: string; workflow: 'KYC_EXEMPT'; business_account_token?: string; external_id?: string; };",
+ ],
+ response:
+ "{ token: string; account_token: string; status: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons: string[]; created?: string; external_id?: string; required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]; }",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/account_holders/{account_holder_token}',
+ httpMethod: 'get',
+ summary: 'Get an individual or business account holder',
+ description: 'Get an Individual or Business Account Holder and/or their KYC or KYB evaluation status.',
+ stainlessPath: '(resource) account_holders > (method) retrieve',
+ qualified: 'client.accountHolders.retrieve',
+ params: ['account_holder_token: string;'],
+ response:
+ "{ token: string; created: string; account_token?: string; beneficial_owner_individuals?: object[]; business_account_token?: string; business_entity?: object; control_person?: object; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: object; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: required_document[]; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: object; website_url?: string; }",
+ markdown:
+ "## retrieve\n\n`client.accountHolders.retrieve(account_holder_token: string): { token: string; created: string; account_token?: string; beneficial_owner_individuals?: object[]; business_account_token?: string; business_entity?: object; control_person?: object; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: object; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: required_document[]; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: object; website_url?: string; }`\n\n**get** `/v1/account_holders/{account_holder_token}`\n\nGet an Individual or Business Account Holder and/or their KYC or KYB evaluation status.\n\n### Parameters\n\n- `account_holder_token: string`\n\n### Returns\n\n- `{ token: string; created: string; account_token?: string; beneficial_owner_individuals?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }[]; business_account_token?: string; business_entity?: { address: object; dba_business_name: string; entity_token: string; government_id: string; legal_business_name: string; phone_numbers: string[]; parent_company?: string; }; control_person?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: { created?: string; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; updated?: string; }; website_url?: string; }`\n\n - `token: string`\n - `created: string`\n - `account_token?: string`\n - `beneficial_owner_individuals?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }[]`\n - `business_account_token?: string`\n - `business_entity?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dba_business_name: string; entity_token: string; government_id: string; legal_business_name: string; phone_numbers: string[]; parent_company?: string; }`\n - `control_person?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }`\n - `email?: string`\n - `exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'`\n - `external_id?: string`\n - `individual?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }`\n - `naics_code?: string`\n - `nature_of_business?: string`\n - `phone_number?: string`\n - `required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]`\n - `status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'`\n - `status_reasons?: string[]`\n - `user_type?: 'BUSINESS' | 'INDIVIDUAL'`\n - `verification_application?: { created?: string; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; updated?: string; }`\n - `website_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst accountHolder = await client.accountHolders.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(accountHolder);\n```",
+ },
+ {
+ name: 'update',
+ endpoint: '/v1/account_holders/{account_holder_token}',
+ httpMethod: 'patch',
+ summary: 'Update account holder information and possibly resubmit for evaluation',
+ description:
+ "Update the information associated with a particular account holder (including business owners and control persons associated to a business account).\nIf Lithic is performing KYB or KYC and additional verification is required we will run the individual's or business's updated information again and return whether the status is accepted or pending (i.e., further action required).\nAll calls to this endpoint will return a synchronous response. The response time will depend on the workflow. In some cases, the response may indicate the workflow is under review or further action will be needed to complete the account creation process.\nThis endpoint can only be used on existing accounts that are part of the program that the calling API key manages.",
+ stainlessPath: '(resource) account_holders > (method) update',
+ qualified: 'client.accountHolders.update',
+ params: [
+ 'account_holder_token: string;',
+ 'body: { beneficial_owner_individuals?: { entity_token: string; address?: { address1?: string; address2?: string; city?: string; country?: string; postal_code?: string; state?: string; }; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }[]; business_entity?: { entity_token: string; address?: { address1?: string; address2?: string; city?: string; country?: string; postal_code?: string; state?: string; }; dba_business_name?: string; government_id?: string; legal_business_name?: string; parent_company?: string; phone_numbers?: string[]; }; control_person?: { entity_token: string; address?: { address1?: string; address2?: string; city?: string; country?: string; postal_code?: string; state?: string; }; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }; external_id?: string; naics_code?: string; nature_of_business?: string; website_url?: string; } | { external_id?: string; individual?: { entity_token: string; address?: { address1?: string; address2?: string; city?: string; country?: string; postal_code?: string; state?: string; }; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }; } | { address?: { address1?: string; address2?: string; city?: string; country?: string; postal_code?: string; state?: string; }; business_account_token?: string; email?: string; first_name?: string; last_name?: string; legal_business_name?: string; phone_number?: string; };',
+ ],
+ response:
+ "{ token?: string; account_token?: string; beneficial_owner_individuals?: object[]; business_account_token?: string; business_entity?: kyb_business_entity; control_person?: object; created?: string; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: object; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: required_document[]; status?: 'ACCEPTED' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: object; website_url?: string; } | { token?: string; address?: object; business_account_token?: string; email?: string; first_name?: string; last_name?: string; legal_business_name?: string; phone_number?: string; }",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/account_holders',
+ httpMethod: 'get',
+ summary: 'Get a list of individual or business account holders',
+ description:
+ 'Get a list of individual or business account holders and their KYC or KYB evaluation status.',
+ stainlessPath: '(resource) account_holders > (method) list',
+ qualified: 'client.accountHolders.list',
+ params: [
+ 'begin?: string;',
+ 'email?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'external_id?: string;',
+ 'first_name?: string;',
+ 'last_name?: string;',
+ 'legal_business_name?: string;',
+ 'limit?: number;',
+ 'phone_number?: string;',
+ 'starting_after?: string;',
+ ],
+ response:
+ "{ token: string; created: string; account_token?: string; beneficial_owner_individuals?: object[]; business_account_token?: string; business_entity?: object; control_person?: object; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: object; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: required_document[]; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: object; website_url?: string; }",
+ markdown:
+ "## list\n\n`client.accountHolders.list(begin?: string, email?: string, end?: string, ending_before?: string, external_id?: string, first_name?: string, last_name?: string, legal_business_name?: string, limit?: number, phone_number?: string, starting_after?: string): { token: string; created: string; account_token?: string; beneficial_owner_individuals?: object[]; business_account_token?: string; business_entity?: object; control_person?: object; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: object; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: required_document[]; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: object; website_url?: string; }`\n\n**get** `/v1/account_holders`\n\nGet a list of individual or business account holders and their KYC or KYB evaluation status.\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `email?: string`\n Email address of the account holder. The query must be an exact match, case insensitive.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `external_id?: string`\n If applicable, represents the external_id associated with the account_holder.\n\n- `first_name?: string`\n (Individual Account Holders only) The first name of the account holder. The query is case insensitive and supports partial matches.\n\n- `last_name?: string`\n (Individual Account Holders only) The last name of the account holder. The query is case insensitive and supports partial matches.\n\n- `legal_business_name?: string`\n (Business Account Holders only) The legal business name of the account holder. The query is case insensitive and supports partial matches.\n\n- `limit?: number`\n The number of account_holders to limit the response to.\n\n- `phone_number?: string`\n Phone number of the account holder. The query must be an exact match.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; created: string; account_token?: string; beneficial_owner_individuals?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }[]; business_account_token?: string; business_entity?: { address: object; dba_business_name: string; entity_token: string; government_id: string; legal_business_name: string; phone_numbers: string[]; parent_company?: string; }; control_person?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: { created?: string; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; updated?: string; }; website_url?: string; }`\n\n - `token: string`\n - `created: string`\n - `account_token?: string`\n - `beneficial_owner_individuals?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }[]`\n - `business_account_token?: string`\n - `business_entity?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dba_business_name: string; entity_token: string; government_id: string; legal_business_name: string; phone_numbers: string[]; parent_company?: string; }`\n - `control_person?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }`\n - `email?: string`\n - `exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'`\n - `external_id?: string`\n - `individual?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }`\n - `naics_code?: string`\n - `nature_of_business?: string`\n - `phone_number?: string`\n - `required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]`\n - `status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'`\n - `status_reasons?: string[]`\n - `user_type?: 'BUSINESS' | 'INDIVIDUAL'`\n - `verification_application?: { created?: string; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; updated?: string; }`\n - `website_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const accountHolder of client.accountHolders.list()) {\n console.log(accountHolder);\n}\n```",
+ },
+ {
+ name: 'list_documents',
+ endpoint: '/v1/account_holders/{account_holder_token}/documents',
+ httpMethod: 'get',
+ summary: 'Get account holder document uploads',
+ description:
+ 'Retrieve the status of account holder document uploads, or retrieve the upload URLs to process your image uploads.\n\nNote that this is not equivalent to checking the status of the KYC evaluation overall (a document may be successfully uploaded but not be sufficient for KYC to pass).\n\nIn the event your upload URLs have expired, calling this endpoint will refresh them.\nSimilarly, in the event a previous account holder document upload has failed, you can use this endpoint to get a new upload URL for the failed image upload.\n\nWhen a new document upload is generated for a failed attempt, the response will show an additional entry in the `required_document_uploads` list\nin a `PENDING` state for the corresponding `image_type`.\n',
+ stainlessPath: '(resource) account_holders > (method) list_documents',
+ qualified: 'client.accountHolders.listDocuments',
+ params: ['account_holder_token: string;'],
+ response:
+ '{ data?: { token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: object[]; }[]; }',
+ markdown:
+ "## list_documents\n\n`client.accountHolders.listDocuments(account_holder_token: string): { data?: document[]; }`\n\n**get** `/v1/account_holders/{account_holder_token}/documents`\n\nRetrieve the status of account holder document uploads, or retrieve the upload URLs to process your image uploads.\n\nNote that this is not equivalent to checking the status of the KYC evaluation overall (a document may be successfully uploaded but not be sufficient for KYC to pass).\n\nIn the event your upload URLs have expired, calling this endpoint will refresh them.\nSimilarly, in the event a previous account holder document upload has failed, you can use this endpoint to get a new upload URL for the failed image upload.\n\nWhen a new document upload is generated for a failed attempt, the response will show an additional entry in the `required_document_uploads` list\nin a `PENDING` state for the corresponding `image_type`.\n\n\n### Parameters\n\n- `account_holder_token: string`\n\n### Returns\n\n- `{ data?: { token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: object[]; }[]; }`\n\n - `data?: { token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.accountHolders.listDocuments('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'retrieve_document',
+ endpoint: '/v1/account_holders/{account_holder_token}/documents/{document_token}',
+ httpMethod: 'get',
+ summary: 'Get account holder document upload status',
+ description:
+ 'Check the status of an account holder document upload, or retrieve the upload URLs to process your image uploads.\n\nNote that this is not equivalent to checking the status of the KYC evaluation overall (a document may be successfully uploaded but not be sufficient for KYC to pass).\n\nIn the event your upload URLs have expired, calling this endpoint will refresh them.\nSimilarly, in the event a document upload has failed, you can use this endpoint to get a new upload URL for the failed image upload.\n\nWhen a new account holder document upload is generated for a failed attempt, the response will show an additional entry in the `required_document_uploads` array\nin a `PENDING` state for the corresponding `image_type`.\n',
+ stainlessPath: '(resource) account_holders > (method) retrieve_document',
+ qualified: 'client.accountHolders.retrieveDocument',
+ params: ['account_holder_token: string;', 'document_token: string;'],
+ response:
+ "{ token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]; }",
+ markdown:
+ "## retrieve_document\n\n`client.accountHolders.retrieveDocument(account_holder_token: string, document_token: string): { token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: object[]; }`\n\n**get** `/v1/account_holders/{account_holder_token}/documents/{document_token}`\n\nCheck the status of an account holder document upload, or retrieve the upload URLs to process your image uploads.\n\nNote that this is not equivalent to checking the status of the KYC evaluation overall (a document may be successfully uploaded but not be sufficient for KYC to pass).\n\nIn the event your upload URLs have expired, calling this endpoint will refresh them.\nSimilarly, in the event a document upload has failed, you can use this endpoint to get a new upload URL for the failed image upload.\n\nWhen a new account holder document upload is generated for a failed attempt, the response will show an additional entry in the `required_document_uploads` array\nin a `PENDING` state for the corresponding `image_type`.\n\n\n### Parameters\n\n- `account_holder_token: string`\n\n- `document_token: string`\n\n### Returns\n\n- `{ token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]; }`\n Describes the document and the required document image uploads\nrequired to re-run KYC\n\n - `token: string`\n - `account_holder_token: string`\n - `document_type: string`\n - `entity_token: string`\n - `required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst document = await client.accountHolders.retrieveDocument('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { account_holder_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(document);\n```",
+ },
+ {
+ name: 'simulate_enrollment_document_review',
+ endpoint: '/v1/simulate/account_holders/enrollment_document_review',
+ httpMethod: 'post',
+ summary: "Simulate an account holder document upload's review",
+ description: 'Simulates a review for an account holder document upload.',
+ stainlessPath: '(resource) account_holders > (method) simulate_enrollment_document_review',
+ qualified: 'client.accountHolders.simulateEnrollmentDocumentReview',
+ params: [
+ 'document_upload_token: string;',
+ "status: 'UPLOADED' | 'ACCEPTED' | 'REJECTED' | 'PARTIAL_APPROVAL';",
+ 'accepted_entity_status_reasons?: string[];',
+ 'status_reason?: string;',
+ ],
+ response:
+ "{ token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]; }",
+ markdown:
+ "## simulate_enrollment_document_review\n\n`client.accountHolders.simulateEnrollmentDocumentReview(document_upload_token: string, status: 'UPLOADED' | 'ACCEPTED' | 'REJECTED' | 'PARTIAL_APPROVAL', accepted_entity_status_reasons?: string[], status_reason?: string): { token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: object[]; }`\n\n**post** `/v1/simulate/account_holders/enrollment_document_review`\n\nSimulates a review for an account holder document upload.\n\n### Parameters\n\n- `document_upload_token: string`\n The account holder document upload which to perform the simulation upon.\n\n- `status: 'UPLOADED' | 'ACCEPTED' | 'REJECTED' | 'PARTIAL_APPROVAL'`\n An account holder document's upload status for use within the simulation.\n\n- `accepted_entity_status_reasons?: string[]`\n A list of status reasons associated with a KYB account holder in PENDING_REVIEW\n\n- `status_reason?: string`\n Status reason that will be associated with the simulated account holder status. Only required for a `REJECTED` status or `PARTIAL_APPROVAL` status.\n\n### Returns\n\n- `{ token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]; }`\n Describes the document and the required document image uploads\nrequired to re-run KYC\n\n - `token: string`\n - `account_holder_token: string`\n - `document_type: string`\n - `entity_token: string`\n - `required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst document = await client.accountHolders.simulateEnrollmentDocumentReview({ document_upload_token: 'b11cd67b-0a52-4180-8365-314f3def5426', status: 'UPLOADED' });\n\nconsole.log(document);\n```",
+ },
+ {
+ name: 'simulate_enrollment_review',
+ endpoint: '/v1/simulate/account_holders/enrollment_review',
+ httpMethod: 'post',
+ summary: "Simulate an account holder's enrollment review",
+ description:
+ ' Simulates an enrollment review for an account holder. This endpoint is only applicable for workflows that may required intervention such as `KYB_BASIC`. ',
+ stainlessPath: '(resource) account_holders > (method) simulate_enrollment_review',
+ qualified: 'client.accountHolders.simulateEnrollmentReview',
+ params: [
+ 'account_holder_token?: string;',
+ "status?: 'ACCEPTED' | 'REJECTED' | 'PENDING_REVIEW';",
+ 'status_reasons?: string[];',
+ ],
+ response:
+ "{ token?: string; account_token?: string; beneficial_owner_individuals?: { address?: object; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }[]; business_account_token?: string; business_entity?: object; control_person?: { address?: object; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }; created?: string; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: { address?: object; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: object[]; status?: 'ACCEPTED' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: { created: string; status: 'ACCEPTED' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons: string[]; updated: string; ky_passed_at?: string; }; website_url?: string; }",
+ markdown:
+ "## simulate_enrollment_review\n\n`client.accountHolders.simulateEnrollmentReview(account_holder_token?: string, status?: 'ACCEPTED' | 'REJECTED' | 'PENDING_REVIEW', status_reasons?: string[]): { token?: string; account_token?: string; beneficial_owner_individuals?: object[]; business_account_token?: string; business_entity?: kyb_business_entity; control_person?: object; created?: string; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: object; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: required_document[]; status?: 'ACCEPTED' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: object; website_url?: string; }`\n\n**post** `/v1/simulate/account_holders/enrollment_review`\n\n Simulates an enrollment review for an account holder. This endpoint is only applicable for workflows that may required intervention such as `KYB_BASIC`. \n\n### Parameters\n\n- `account_holder_token?: string`\n The account holder which to perform the simulation upon.\n\n- `status?: 'ACCEPTED' | 'REJECTED' | 'PENDING_REVIEW'`\n An account holder's status for use within the simulation.\n\n- `status_reasons?: string[]`\n Status reason that will be associated with the simulated account holder status. Only required for a `REJECTED` status.\n\n### Returns\n\n- `{ token?: string; account_token?: string; beneficial_owner_individuals?: { address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }[]; business_account_token?: string; business_entity?: { address: object; government_id: string; legal_business_name: string; phone_numbers: string[]; dba_business_name?: string; parent_company?: string; }; control_person?: { address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }; created?: string; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: { address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]; status?: 'ACCEPTED' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: { created: string; status: 'ACCEPTED' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons: string[]; updated: string; ky_passed_at?: string; }; website_url?: string; }`\n\n - `token?: string`\n - `account_token?: string`\n - `beneficial_owner_individuals?: { address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }[]`\n - `business_account_token?: string`\n - `business_entity?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; government_id: string; legal_business_name: string; phone_numbers: string[]; dba_business_name?: string; parent_company?: string; }`\n - `control_person?: { address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }`\n - `created?: string`\n - `email?: string`\n - `exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'`\n - `external_id?: string`\n - `individual?: { address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }`\n - `naics_code?: string`\n - `nature_of_business?: string`\n - `phone_number?: string`\n - `required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]`\n - `status?: 'ACCEPTED' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'`\n - `status_reasons?: string[]`\n - `user_type?: 'BUSINESS' | 'INDIVIDUAL'`\n - `verification_application?: { created: string; status: 'ACCEPTED' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons: string[]; updated: string; ky_passed_at?: string; }`\n - `website_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.accountHolders.simulateEnrollmentReview();\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'upload_document',
+ endpoint: '/v1/account_holders/{account_holder_token}/documents',
+ httpMethod: 'post',
+ summary: 'Initiate account holder document upload',
+ description:
+ 'Use this endpoint to identify which type of supported government-issued documentation you will upload for further verification.\nIt will return two URLs to upload your document images to - one for the front image and one for the back image.\n\nThis endpoint is only valid for evaluations in a `PENDING_DOCUMENT` state.\n\nSupported file types include `jpg`, `png`, and `pdf`. Each file must be less than 15 MiB. Once both required uploads have been successfully completed, your document will be run through KYC verification.\n\nIf you have registered a webhook, you will receive evaluation updates for any document submission evaluations, as well as for any failed document uploads.\n\nTwo document submission attempts are permitted via this endpoint before a `REJECTED` status is returned and the account creation process is ended. Currently only one type of\naccount holder document is supported per KYC verification.\n',
+ stainlessPath: '(resource) account_holders > (method) upload_document',
+ qualified: 'client.accountHolders.uploadDocument',
+ params: ['account_holder_token: string;', 'document_type: string;', 'entity_token: string;'],
+ response:
+ "{ token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]; }",
+ markdown:
+ "## upload_document\n\n`client.accountHolders.uploadDocument(account_holder_token: string, document_type: string, entity_token: string): { token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: object[]; }`\n\n**post** `/v1/account_holders/{account_holder_token}/documents`\n\nUse this endpoint to identify which type of supported government-issued documentation you will upload for further verification.\nIt will return two URLs to upload your document images to - one for the front image and one for the back image.\n\nThis endpoint is only valid for evaluations in a `PENDING_DOCUMENT` state.\n\nSupported file types include `jpg`, `png`, and `pdf`. Each file must be less than 15 MiB. Once both required uploads have been successfully completed, your document will be run through KYC verification.\n\nIf you have registered a webhook, you will receive evaluation updates for any document submission evaluations, as well as for any failed document uploads.\n\nTwo document submission attempts are permitted via this endpoint before a `REJECTED` status is returned and the account creation process is ended. Currently only one type of\naccount holder document is supported per KYC verification.\n\n\n### Parameters\n\n- `account_holder_token: string`\n\n- `document_type: string`\n The type of document to upload\n\n- `entity_token: string`\n Globally unique identifier for the entity.\n\n### Returns\n\n- `{ token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]; }`\n Describes the document and the required document image uploads\nrequired to re-run KYC\n\n - `token: string`\n - `account_holder_token: string`\n - `document_type: string`\n - `entity_token: string`\n - `required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst document = await client.accountHolders.uploadDocument('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { document_type: 'EIN_LETTER', entity_token: '83cf25ae-c14f-4d10-9fa2-0119f36c7286' });\n\nconsole.log(document);\n```",
+ },
+ {
+ name: 'create',
+ endpoint: '/v1/account_holders/{account_holder_token}/entities',
+ httpMethod: 'post',
+ summary: 'Create a new beneficial owner individual or replace the existing control person entity',
+ description:
+ 'Create a new beneficial owner individual or replace the control person entity on an existing KYB account holder. This endpoint is only applicable for account holders enrolled through a KYB workflow with the Persona KYB provider.\nA new control person can only replace the existing one. A maximum of 4 beneficial owners can be associated with an account holder.',
+ stainlessPath: '(resource) account_holders.entities > (method) create',
+ qualified: 'client.accountHolders.entities.create',
+ params: [
+ 'account_holder_token: string;',
+ 'address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; };',
+ 'dob: string;',
+ 'email: string;',
+ 'first_name: string;',
+ 'government_id: string;',
+ 'last_name: string;',
+ 'phone_number: string;',
+ "type: 'BENEFICIAL_OWNER_INDIVIDUAL' | 'CONTROL_PERSON';",
+ ],
+ response:
+ "{ token: string; account_holder_token: string; created: string; required_documents: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]; status: 'ACCEPTED' | 'INACTIVE' | 'PENDING_REVIEW' | 'REJECTED'; status_reasons: string[]; }",
+ markdown:
+ "## create\n\n`client.accountHolders.entities.create(account_holder_token: string, address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }, dob: string, email: string, first_name: string, government_id: string, last_name: string, phone_number: string, type: 'BENEFICIAL_OWNER_INDIVIDUAL' | 'CONTROL_PERSON'): { token: string; account_holder_token: string; created: string; required_documents: required_document[]; status: 'ACCEPTED' | 'INACTIVE' | 'PENDING_REVIEW' | 'REJECTED'; status_reasons: string[]; }`\n\n**post** `/v1/account_holders/{account_holder_token}/entities`\n\nCreate a new beneficial owner individual or replace the control person entity on an existing KYB account holder. This endpoint is only applicable for account holders enrolled through a KYB workflow with the Persona KYB provider.\nA new control person can only replace the existing one. A maximum of 4 beneficial owners can be associated with an account holder.\n\n### Parameters\n\n- `account_holder_token: string`\n\n- `address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n Individual's current address - PO boxes, UPS drops, and FedEx drops are not acceptable; APO/FPO are acceptable. Only USA addresses are currently supported.\n - `address1: string`\n Valid deliverable address (no PO boxes).\n - `city: string`\n Name of city.\n - `country: string`\n Valid country code. Only USA is currently supported, entered in uppercase ISO 3166-1 alpha-3 three-character format.\n - `postal_code: string`\n Valid postal code. Only USA ZIP codes are currently supported, entered as a five-digit ZIP or nine-digit ZIP+4.\n - `state: string`\n Valid state code. Only USA state codes are currently supported, entered in uppercase ISO 3166-2 two-character format.\n - `address2?: string`\n Unit or apartment number (if applicable).\n\n- `dob: string`\n Individual's date of birth, as an RFC 3339 date.\n\n- `email: string`\n Individual's email address. If utilizing Lithic for chargeback processing, this customer email address may be used to communicate dispute status and resolution.\n\n- `first_name: string`\n Individual's first name, as it appears on government-issued identity documents.\n\n- `government_id: string`\n Government-issued identification number (required for identity verification and compliance with banking regulations). Social Security Numbers (SSN) and Individual Taxpayer Identification Numbers (ITIN) are currently supported, entered as full nine-digits, with or without hyphens\n\n- `last_name: string`\n Individual's last name, as it appears on government-issued identity documents.\n\n- `phone_number: string`\n Individual's phone number, entered in E.164 format.\n\n- `type: 'BENEFICIAL_OWNER_INDIVIDUAL' | 'CONTROL_PERSON'`\n The type of entity to create on the account holder\n\n### Returns\n\n- `{ token: string; account_holder_token: string; created: string; required_documents: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]; status: 'ACCEPTED' | 'INACTIVE' | 'PENDING_REVIEW' | 'REJECTED'; status_reasons: string[]; }`\n Response body for creating a new beneficial owner or replacing the control person entity on an existing KYB account holder.\n\n - `token: string`\n - `account_holder_token: string`\n - `created: string`\n - `required_documents: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]`\n - `status: 'ACCEPTED' | 'INACTIVE' | 'PENDING_REVIEW' | 'REJECTED'`\n - `status_reasons: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst entity = await client.accountHolders.entities.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n address: {\n address1: '300 Normal Forest Way',\n city: 'Portland',\n country: 'USA',\n postal_code: '90210',\n state: 'OR',\n},\n dob: '1991-03-08T08:00:00Z',\n email: 'tim@left-earth.com',\n first_name: 'Timmy',\n government_id: '211-23-1412',\n last_name: 'Turner',\n phone_number: '+15555555555',\n type: 'BENEFICIAL_OWNER_INDIVIDUAL',\n});\n\nconsole.log(entity);\n```",
+ },
+ {
+ name: 'delete',
+ endpoint: '/v1/account_holders/{account_holder_token}/entities/{entity_token}',
+ httpMethod: 'delete',
+ summary: 'Deactivate a beneficial owner individual',
+ description:
+ 'Deactivate a beneficial owner individual on an existing KYB account holder. Only beneficial owner individuals can be deactivated.',
+ stainlessPath: '(resource) account_holders.entities > (method) delete',
+ qualified: 'client.accountHolders.entities.delete',
+ params: ['account_holder_token: string;', 'entity_token: string;'],
+ response:
+ "{ token: string; account_holder_token: string; address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; first_name: string; last_name: string; phone_number: string; status: 'ACCEPTED' | 'INACTIVE' | 'PENDING_REVIEW' | 'REJECTED'; type: 'BENEFICIAL_OWNER_INDIVIDUAL' | 'CONTROL_PERSON'; }",
+ markdown:
+ "## delete\n\n`client.accountHolders.entities.delete(account_holder_token: string, entity_token: string): { token: string; account_holder_token: string; address: object; dob: string; email: string; first_name: string; last_name: string; phone_number: string; status: 'ACCEPTED' | 'INACTIVE' | 'PENDING_REVIEW' | 'REJECTED'; type: 'BENEFICIAL_OWNER_INDIVIDUAL' | 'CONTROL_PERSON'; }`\n\n**delete** `/v1/account_holders/{account_holder_token}/entities/{entity_token}`\n\nDeactivate a beneficial owner individual on an existing KYB account holder. Only beneficial owner individuals can be deactivated.\n\n### Parameters\n\n- `account_holder_token: string`\n\n- `entity_token: string`\n\n### Returns\n\n- `{ token: string; account_holder_token: string; address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; first_name: string; last_name: string; phone_number: string; status: 'ACCEPTED' | 'INACTIVE' | 'PENDING_REVIEW' | 'REJECTED'; type: 'BENEFICIAL_OWNER_INDIVIDUAL' | 'CONTROL_PERSON'; }`\n Information about an entity associated with an account holder\n\n - `token: string`\n - `account_holder_token: string`\n - `address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `dob: string`\n - `email: string`\n - `first_name: string`\n - `last_name: string`\n - `phone_number: string`\n - `status: 'ACCEPTED' | 'INACTIVE' | 'PENDING_REVIEW' | 'REJECTED'`\n - `type: 'BENEFICIAL_OWNER_INDIVIDUAL' | 'CONTROL_PERSON'`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst accountHolderEntity = await client.accountHolders.entities.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { account_holder_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(accountHolderEntity);\n```",
+ },
+ {
+ name: 'create',
+ endpoint: '/v2/auth_rules',
+ httpMethod: 'post',
+ summary: 'Create a new rule',
+ description: 'Creates a new V2 Auth rule in draft mode',
+ stainlessPath: '(resource) auth_rules.v2 > (method) create',
+ qualified: 'client.authRules.v2.create',
+ params: [
+ "{ parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; account_tokens?: string[]; business_account_tokens?: string[]; event_stream?: string; name?: string; } | { card_tokens: string[]; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; event_stream?: string; name?: string; } | { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; program_level: boolean; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; event_stream?: string; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; name?: string; };",
+ ],
+ response:
+ "{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v2/auth_rules/{auth_rule_token}',
+ httpMethod: 'get',
+ summary: 'Fetch a rule',
+ description: 'Fetches a V2 Auth rule by its token',
+ stainlessPath: '(resource) auth_rules.v2 > (method) retrieve',
+ qualified: 'client.authRules.v2.retrieve',
+ params: ['auth_rule_token: string;'],
+ response:
+ "{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }",
+ markdown:
+ "## retrieve\n\n`client.authRules.v2.retrieve(auth_rule_token: string): { token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: object; draft_version: object; event_stream: event_stream; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}`\n\nFetches a V2 Auth rule by its token\n\n### Parameters\n\n- `auth_rule_token: string`\n\n### Returns\n\n- `{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n - `token: string`\n - `account_tokens: string[]`\n - `business_account_tokens: string[]`\n - `card_tokens: string[]`\n - `current_version: { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; version: number; }`\n - `draft_version: { error: string; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }`\n - `event_stream: string`\n - `lithic_managed: boolean`\n - `name: string`\n - `program_level: boolean`\n - `state: 'ACTIVE' | 'INACTIVE'`\n - `type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'`\n - `excluded_account_tokens?: string[]`\n - `excluded_business_account_tokens?: string[]`\n - `excluded_card_tokens?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst authRule = await client.authRules.v2.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule);\n```",
+ },
+ {
+ name: 'update',
+ endpoint: '/v2/auth_rules/{auth_rule_token}',
+ httpMethod: 'patch',
+ summary: 'Update a rule',
+ description:
+ "Updates a V2 Auth rule's properties\n\nIf `account_tokens`, `card_tokens`, `program_level`, `excluded_card_tokens`, `excluded_account_tokens`, or `excluded_business_account_tokens` is provided, this will replace existing associations with the provided list of entities.\n",
+ stainlessPath: '(resource) auth_rules.v2 > (method) update',
+ qualified: 'client.authRules.v2.update',
+ params: [
+ 'auth_rule_token: string;',
+ "body: { account_tokens?: string[]; business_account_tokens?: string[]; name?: string; state?: 'INACTIVE'; } | { card_tokens?: string[]; name?: string; state?: 'INACTIVE'; } | { excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; name?: string; program_level?: boolean; state?: 'INACTIVE'; };",
+ ],
+ response:
+ "{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }",
+ },
+ {
+ name: 'list',
+ endpoint: '/v2/auth_rules',
+ httpMethod: 'get',
+ summary: 'List rules',
+ description: 'Lists V2 Auth rules',
+ stainlessPath: '(resource) auth_rules.v2 > (method) list',
+ qualified: 'client.authRules.v2.list',
+ params: [
+ 'account_token?: string;',
+ 'business_account_token?: string;',
+ 'card_token?: string;',
+ 'ending_before?: string;',
+ 'event_stream?: string;',
+ 'event_streams?: string[];',
+ 'page_size?: number;',
+ "scope?: 'PROGRAM' | 'ACCOUNT' | 'BUSINESS_ACCOUNT' | 'CARD' | 'ANY';",
+ 'starting_after?: string;',
+ ],
+ response:
+ "{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }",
+ markdown:
+ "## list\n\n`client.authRules.v2.list(account_token?: string, business_account_token?: string, card_token?: string, ending_before?: string, event_stream?: string, event_streams?: string[], page_size?: number, scope?: 'PROGRAM' | 'ACCOUNT' | 'BUSINESS_ACCOUNT' | 'CARD' | 'ANY', starting_after?: string): { token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: object; draft_version: object; event_stream: event_stream; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n**get** `/v2/auth_rules`\n\nLists V2 Auth rules\n\n### Parameters\n\n- `account_token?: string`\n Only return Auth Rules that are bound to the provided account token.\n\n- `business_account_token?: string`\n Only return Auth Rules that are bound to the provided business account token.\n\n- `card_token?: string`\n Only return Auth Rules that are bound to the provided card token.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `event_stream?: string`\n Deprecated: Use event_streams instead. Only return Auth rules that are executed during the provided event stream.\n\n- `event_streams?: string[]`\n Only return Auth rules that are executed during any of the provided event streams. If event_streams and event_stream are specified, the values will be combined.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `scope?: 'PROGRAM' | 'ACCOUNT' | 'BUSINESS_ACCOUNT' | 'CARD' | 'ANY'`\n Only return Auth Rules that are bound to the provided scope.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n - `token: string`\n - `account_tokens: string[]`\n - `business_account_tokens: string[]`\n - `card_tokens: string[]`\n - `current_version: { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; version: number; }`\n - `draft_version: { error: string; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }`\n - `event_stream: string`\n - `lithic_managed: boolean`\n - `name: string`\n - `program_level: boolean`\n - `state: 'ACTIVE' | 'INACTIVE'`\n - `type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'`\n - `excluded_account_tokens?: string[]`\n - `excluded_business_account_tokens?: string[]`\n - `excluded_card_tokens?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const authRule of client.authRules.v2.list()) {\n console.log(authRule);\n}\n```",
+ },
+ {
+ name: 'delete',
+ endpoint: '/v2/auth_rules/{auth_rule_token}',
+ httpMethod: 'delete',
+ summary: 'Delete a rule',
+ description: 'Deletes a V2 Auth rule',
+ stainlessPath: '(resource) auth_rules.v2 > (method) delete',
+ qualified: 'client.authRules.v2.delete',
+ params: ['auth_rule_token: string;'],
+ markdown:
+ "## delete\n\n`client.authRules.v2.delete(auth_rule_token: string): void`\n\n**delete** `/v2/auth_rules/{auth_rule_token}`\n\nDeletes a V2 Auth rule\n\n### Parameters\n\n- `auth_rule_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.authRules.v2.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')\n```",
+ },
+ {
+ name: 'draft',
+ endpoint: '/v2/auth_rules/{auth_rule_token}/draft',
+ httpMethod: 'post',
+ summary: 'Draft a new rule version',
+ description:
+ 'Creates a new draft version of a rule that will be ran in shadow mode.\n\nThis can also be utilized to reset the draft parameters, causing a draft version to no longer be ran in shadow mode.\n',
+ stainlessPath: '(resource) auth_rules.v2 > (method) draft',
+ qualified: 'client.authRules.v2.draft',
+ params: [
+ 'auth_rule_token: string;',
+ "parameters?: { conditions: { attribute: conditional_attribute; operation: conditional_operation; value: conditional_value; }[]; } | { period: { duration: number; type: 'CUSTOM'; } | { type: 'DAY'; } | { type: 'WEEK'; day_of_week?: number; } | { type: 'MONTH'; day_of_month?: number; } | { type: 'YEAR'; day_of_month?: number; month?: number; }; scope: 'CARD' | 'ACCOUNT'; filters?: { exclude_countries?: string[]; exclude_mccs?: string[]; include_countries?: string[]; include_mccs?: string[]; include_pan_entry_modes?: string[]; }; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: string; value: string | number | string[] | string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: string; value: string | number | string[] | string; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: string; value: string | number | string[] | string; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: string; value: string | number | string[] | string; }[]; } | { code: string; features: { type: 'AUTHORIZATION'; name?: string; } | { type: 'AUTHENTICATION'; name?: string; } | { type: 'TOKENIZATION'; name?: string; } | { type: 'ACH_RECEIPT'; name?: string; } | { type: 'CARD'; name?: string; } | { type: 'ACCOUNT_HOLDER'; name?: string; } | { type: 'IP_METADATA'; name?: string; } | { period: velocity_limit_period; scope: 'CARD' | 'ACCOUNT'; type: 'SPEND_VELOCITY'; filters?: velocity_limit_filters; name?: string; }[]; };",
+ ],
+ response:
+ "{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }",
+ markdown:
+ "## draft\n\n`client.authRules.v2.draft(auth_rule_token: string, parameters?: { conditions: auth_rule_condition[]; } | { period: velocity_limit_period; scope: 'CARD' | 'ACCOUNT'; filters?: velocity_limit_filters; limit_amount?: number; limit_count?: number; } | { merchants: object[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: object[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: object[]; } | { action: object | object; conditions: object[]; } | { action: object | object; conditions: object[]; } | { code: string; features: rule_feature[]; }): { token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: object; draft_version: object; event_stream: event_stream; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n**post** `/v2/auth_rules/{auth_rule_token}/draft`\n\nCreates a new draft version of a rule that will be ran in shadow mode.\n\nThis can also be utilized to reset the draft parameters, causing a draft version to no longer be ran in shadow mode.\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `parameters?: { conditions: { attribute: conditional_attribute; operation: conditional_operation; value: conditional_value; }[]; } | { period: { duration: number; type: 'CUSTOM'; } | { type: 'DAY'; } | { type: 'WEEK'; day_of_week?: number; } | { type: 'MONTH'; day_of_month?: number; } | { type: 'YEAR'; day_of_month?: number; month?: number; }; scope: 'CARD' | 'ACCOUNT'; filters?: { exclude_countries?: string[]; exclude_mccs?: string[]; include_countries?: string[]; include_mccs?: string[]; include_pan_entry_modes?: string[]; }; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: string; value: string | number | string[] | string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: string; value: string | number | string[] | string; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: string; value: string | number | string[] | string; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: string; value: string | number | string[] | string; }[]; } | { code: string; features: { type: 'AUTHORIZATION'; name?: string; } | { type: 'AUTHENTICATION'; name?: string; } | { type: 'TOKENIZATION'; name?: string; } | { type: 'ACH_RECEIPT'; name?: string; } | { type: 'CARD'; name?: string; } | { type: 'ACCOUNT_HOLDER'; name?: string; } | { type: 'IP_METADATA'; name?: string; } | { period: velocity_limit_period; scope: 'CARD' | 'ACCOUNT'; type: 'SPEND_VELOCITY'; filters?: velocity_limit_filters; name?: string; }[]; }`\n Parameters for the Auth Rule\n\n### Returns\n\n- `{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n - `token: string`\n - `account_tokens: string[]`\n - `business_account_tokens: string[]`\n - `card_tokens: string[]`\n - `current_version: { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; version: number; }`\n - `draft_version: { error: string; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }`\n - `event_stream: string`\n - `lithic_managed: boolean`\n - `name: string`\n - `program_level: boolean`\n - `state: 'ACTIVE' | 'INACTIVE'`\n - `type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'`\n - `excluded_account_tokens?: string[]`\n - `excluded_business_account_tokens?: string[]`\n - `excluded_card_tokens?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst authRule = await client.authRules.v2.draft('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule);\n```",
+ },
+ {
+ name: 'list_results',
+ endpoint: '/v2/auth_rules/results',
+ httpMethod: 'get',
+ summary: 'List rule evaluation results',
+ description:
+ 'Lists Auth Rule evaluation results.\n\n**Limitations:**\n- Results are available for the past 3 months only\n- At least one filter (`event_token` or `auth_rule_token`) must be provided\n- When filtering by `event_token`, pagination is not supported\n',
+ stainlessPath: '(resource) auth_rules.v2 > (method) list_results',
+ qualified: 'client.authRules.v2.listResults',
+ params: [
+ 'auth_rule_token?: string;',
+ 'begin?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'event_token?: string;',
+ 'has_actions?: boolean;',
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ ],
+ response:
+ "{ token: string; actions: { code: string; type: 'DECLINE'; explanation?: string; } | { type: 'CHALLENGE'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'AUTHORIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'DECLINE' | 'CHALLENGE'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'THREE_DS_AUTHENTICATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'DECLINE'; explanation?: string; reason?: string; } | { type: 'REQUIRE_TFA'; explanation?: string; reason?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'TOKENIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'APPROVE'; explanation?: string; } | { code: string; type: 'RETURN'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'ACH_CREDIT_RECEIPT' | 'ACH_DEBIT_RECEIPT'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; }",
+ markdown:
+ "## list_results\n\n`client.authRules.v2.listResults(auth_rule_token?: string, begin?: string, end?: string, ending_before?: string, event_token?: string, has_actions?: boolean, page_size?: number, starting_after?: string): { token: string; actions: object | object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'AUTHORIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'THREE_DS_AUTHENTICATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: object | object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'TOKENIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: object | object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'ACH_CREDIT_RECEIPT' | 'ACH_DEBIT_RECEIPT'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; }`\n\n**get** `/v2/auth_rules/results`\n\nLists Auth Rule evaluation results.\n\n**Limitations:**\n- Results are available for the past 3 months only\n- At least one filter (`event_token` or `auth_rule_token`) must be provided\n- When filtering by `event_token`, pagination is not supported\n\n\n### Parameters\n\n- `auth_rule_token?: string`\n Filter by Auth Rule token\n\n- `begin?: string`\n Date string in RFC 3339 format. Only events evaluated after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only events evaluated before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `event_token?: string`\n Filter by event token\n\n- `has_actions?: boolean`\n Filter by whether the rule evaluation produced any actions. When not provided, all results are returned.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; actions: { code: string; type: 'DECLINE'; explanation?: string; } | { type: 'CHALLENGE'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'AUTHORIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'DECLINE' | 'CHALLENGE'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'THREE_DS_AUTHENTICATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'DECLINE'; explanation?: string; reason?: string; } | { type: 'REQUIRE_TFA'; explanation?: string; reason?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'TOKENIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'APPROVE'; explanation?: string; } | { code: string; type: 'RETURN'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'ACH_CREDIT_RECEIPT' | 'ACH_DEBIT_RECEIPT'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; }`\n Result of an Auth Rule evaluation\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const v2ListResultsResponse of client.authRules.v2.listResults()) {\n console.log(v2ListResultsResponse);\n}\n```",
+ },
+ {
+ name: 'list_versions',
+ endpoint: '/v2/auth_rules/{auth_rule_token}/versions',
+ httpMethod: 'get',
+ summary: 'List rule versions',
+ description: 'Returns all versions of an auth rule, sorted by version number descending (newest first).',
+ stainlessPath: '(resource) auth_rules.v2 > (method) list_versions',
+ qualified: 'client.authRules.v2.listVersions',
+ params: ['auth_rule_token: string;'],
+ response:
+ "{ data: { created: string; parameters: conditional_block_parameters | velocity_limit_params | merchant_lock_parameters | conditional_3ds_action_parameters | conditional_authorization_action_parameters | conditional_ach_action_parameters | conditional_tokenization_action_parameters | typescript_code_parameters; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }",
+ markdown:
+ "## list_versions\n\n`client.authRules.v2.listVersions(auth_rule_token: string): { data: auth_rule_version[]; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}/versions`\n\nReturns all versions of an auth rule, sorted by version number descending (newest first).\n\n### Parameters\n\n- `auth_rule_token: string`\n\n### Returns\n\n- `{ data: { created: string; parameters: conditional_block_parameters | velocity_limit_params | merchant_lock_parameters | conditional_3ds_action_parameters | conditional_authorization_action_parameters | conditional_ach_action_parameters | conditional_tokenization_action_parameters | typescript_code_parameters; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }`\n\n - `data: { created: string; parameters: { conditions: auth_rule_condition[]; } | { period: velocity_limit_period; scope: 'CARD' | 'ACCOUNT'; filters?: velocity_limit_filters; limit_amount?: number; limit_count?: number; } | { merchants: object[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: object[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: object[]; } | { action: object | object; conditions: object[]; } | { action: object | object; conditions: object[]; } | { code: string; features: rule_feature[]; }; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.authRules.v2.listVersions('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'promote',
+ endpoint: '/v2/auth_rules/{auth_rule_token}/promote',
+ httpMethod: 'post',
+ summary: 'Promote a rule version',
+ description:
+ 'Promotes the draft version of an Auth rule to the currently active version such that it is enforced in the respective stream.',
+ stainlessPath: '(resource) auth_rules.v2 > (method) promote',
+ qualified: 'client.authRules.v2.promote',
+ params: ['auth_rule_token: string;'],
+ response:
+ "{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }",
+ markdown:
+ "## promote\n\n`client.authRules.v2.promote(auth_rule_token: string): { token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: object; draft_version: object; event_stream: event_stream; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n**post** `/v2/auth_rules/{auth_rule_token}/promote`\n\nPromotes the draft version of an Auth rule to the currently active version such that it is enforced in the respective stream.\n\n### Parameters\n\n- `auth_rule_token: string`\n\n### Returns\n\n- `{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n - `token: string`\n - `account_tokens: string[]`\n - `business_account_tokens: string[]`\n - `card_tokens: string[]`\n - `current_version: { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; version: number; }`\n - `draft_version: { error: string; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }`\n - `event_stream: string`\n - `lithic_managed: boolean`\n - `name: string`\n - `program_level: boolean`\n - `state: 'ACTIVE' | 'INACTIVE'`\n - `type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'`\n - `excluded_account_tokens?: string[]`\n - `excluded_business_account_tokens?: string[]`\n - `excluded_card_tokens?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst authRule = await client.authRules.v2.promote('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule);\n```",
+ },
+ {
+ name: 'retrieve_features',
+ endpoint: '/v2/auth_rules/{auth_rule_token}/features',
+ httpMethod: 'get',
+ summary: 'Calculated Feature values',
+ description:
+ 'Fetches the current calculated Feature values for the given Auth Rule\n\nThis only calculates the features for the active version.\n- VelocityLimit Rules calculates the current Velocity Feature data. This requires a `card_token` or `account_token` matching what the rule is Scoped to.\n- ConditionalBlock Rules calculates the CARD_TRANSACTION_COUNT_* attributes on the rule. This requires a `card_token`\n',
+ stainlessPath: '(resource) auth_rules.v2 > (method) retrieve_features',
+ qualified: 'client.authRules.v2.retrieveFeatures',
+ params: ['auth_rule_token: string;', 'account_token?: string;', 'card_token?: string;'],
+ response:
+ "{ evaluated: string; features: { filters: object; period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; value: { amount: number; count: number; }; }[]; }",
+ markdown:
+ "## retrieve_features\n\n`client.authRules.v2.retrieveFeatures(auth_rule_token: string, account_token?: string, card_token?: string): { evaluated: string; features: object[]; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}/features`\n\nFetches the current calculated Feature values for the given Auth Rule\n\nThis only calculates the features for the active version.\n- VelocityLimit Rules calculates the current Velocity Feature data. This requires a `card_token` or `account_token` matching what the rule is Scoped to.\n- ConditionalBlock Rules calculates the CARD_TRANSACTION_COUNT_* attributes on the rule. This requires a `card_token`\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `account_token?: string`\n\n- `card_token?: string`\n\n### Returns\n\n- `{ evaluated: string; features: { filters: object; period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; value: { amount: number; count: number; }; }[]; }`\n\n - `evaluated: string`\n - `features: { filters: { exclude_countries?: string[]; exclude_mccs?: string[]; include_countries?: string[]; include_mccs?: string[]; include_pan_entry_modes?: string[]; }; period: { duration: number; type: 'CUSTOM'; } | { type: 'DAY'; } | { type: 'WEEK'; day_of_week?: number; } | { type: 'MONTH'; day_of_month?: number; } | { type: 'YEAR'; day_of_month?: number; month?: number; }; scope: 'CARD' | 'ACCOUNT'; value: { amount: number; count: number; }; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.authRules.v2.retrieveFeatures('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'retrieve_report',
+ endpoint: '/v2/auth_rules/{auth_rule_token}/report',
+ httpMethod: 'get',
+ summary: 'Retrieve a performance report',
+ description:
+ 'Retrieves a performance report for an Auth rule containing daily statistics and evaluation outcomes.\n\n**Time Range Limitations:**\n- Reports are supported for the past 3 months only\n- Maximum interval length is 1 month\n- Report data is available only through the previous day in UTC (current day data is not available)\n\nThe report provides daily statistics for both current and draft versions of the Auth rule, including approval, decline, and challenge counts along with sample events.\n',
+ stainlessPath: '(resource) auth_rules.v2 > (method) retrieve_report',
+ qualified: 'client.authRules.v2.retrieveReport',
+ params: ['auth_rule_token: string;', 'begin: string;', 'end: string;'],
+ response:
+ "{ auth_rule_token: string; begin: string; daily_statistics: { current_version_statistics: object; date: string; draft_version_statistics: object; versions: { action_counts: object; examples: object[]; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }[]; end: string; }",
+ markdown:
+ "## retrieve_report\n\n`client.authRules.v2.retrieveReport(auth_rule_token: string, begin: string, end: string): { auth_rule_token: string; begin: string; daily_statistics: object[]; end: string; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}/report`\n\nRetrieves a performance report for an Auth rule containing daily statistics and evaluation outcomes.\n\n**Time Range Limitations:**\n- Reports are supported for the past 3 months only\n- Maximum interval length is 1 month\n- Report data is available only through the previous day in UTC (current day data is not available)\n\nThe report provides daily statistics for both current and draft versions of the Auth rule, including approval, decline, and challenge counts along with sample events.\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `begin: string`\n Start date for the report\n\n- `end: string`\n End date for the report\n\n### Returns\n\n- `{ auth_rule_token: string; begin: string; daily_statistics: { current_version_statistics: object; date: string; draft_version_statistics: object; versions: { action_counts: object; examples: object[]; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }[]; end: string; }`\n\n - `auth_rule_token: string`\n - `begin: string`\n - `daily_statistics: { current_version_statistics: { action_counts?: object; approved?: number; challenged?: number; declined?: number; examples?: { actions?: object | object | object | object | object | object | object[]; approved?: boolean; decision?: 'APPROVED' | 'DECLINED' | 'CHALLENGED'; event_token?: string; timestamp?: string; }[]; }; date: string; draft_version_statistics: { action_counts?: object; approved?: number; challenged?: number; declined?: number; examples?: { actions?: object | object | object | object | object | object | object[]; approved?: boolean; decision?: 'APPROVED' | 'DECLINED' | 'CHALLENGED'; event_token?: string; timestamp?: string; }[]; }; versions: { action_counts: object; examples: { actions: { code: string; type: 'DECLINE'; } | { type: 'CHALLENGE'; } | { type: 'DECLINE' | 'CHALLENGE'; } | { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; } | { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }[]; event_token: string; timestamp: string; }[]; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }[]`\n - `end: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.authRules.v2.retrieveReport('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { begin: '2019-12-27', end: '2019-12-27' });\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'create',
+ endpoint: '/v2/auth_rules/{auth_rule_token}/backtests',
+ httpMethod: 'post',
+ summary: 'Request a backtest',
+ description:
+ "Initiates a request to asynchronously generate a backtest for an Auth rule. During backtesting, both the active version (if one exists) and the draft version of the Auth Rule are evaluated by replaying historical transaction data against the rule's conditions. This process allows customers to simulate and understand the effects of proposed rule changes before deployment.\nThe generated backtest report provides detailed results showing whether the draft version of the Auth Rule would have approved or declined historical transactions which were processed during the backtest period. These reports help evaluate how changes to rule configurations might affect overall transaction approval rates.\n\nThe generated backtest report will be delivered asynchronously through a webhook with `event_type` = `auth_rules.backtest_report.created`. See the docs on setting up [webhook subscriptions](https://docs.lithic.com/docs/events-api).\nIt is also possible to request backtest reports on-demand through the `/v2/auth_rules/{auth_rule_token}/backtests/{auth_rule_backtest_token}` endpoint.\n\nLithic currently supports backtesting for `CONDITIONAL_BLOCK` / `CONDITIONAL_ACTION` rules. Backtesting for `VELOCITY_LIMIT` rules is generally not supported. In specific cases (i.e. where Lithic has pre-calculated the requested velocity metrics for historical transactions), a backtest may be feasible. However, such cases are uncommon and customers should not anticipate support for velocity backtests under most configurations.\nIf a historical transaction does not feature the required inputs to evaluate the rule, then it will not be included in the final backtest report.\n",
+ stainlessPath: '(resource) auth_rules.v2.backtests > (method) create',
+ qualified: 'client.authRules.v2.backtests.create',
+ params: ['auth_rule_token: string;', 'end?: string;', 'start?: string;'],
+ response: '{ backtest_token?: string; }',
+ markdown:
+ "## create\n\n`client.authRules.v2.backtests.create(auth_rule_token: string, end?: string, start?: string): { backtest_token?: string; }`\n\n**post** `/v2/auth_rules/{auth_rule_token}/backtests`\n\nInitiates a request to asynchronously generate a backtest for an Auth rule. During backtesting, both the active version (if one exists) and the draft version of the Auth Rule are evaluated by replaying historical transaction data against the rule's conditions. This process allows customers to simulate and understand the effects of proposed rule changes before deployment.\nThe generated backtest report provides detailed results showing whether the draft version of the Auth Rule would have approved or declined historical transactions which were processed during the backtest period. These reports help evaluate how changes to rule configurations might affect overall transaction approval rates.\n\nThe generated backtest report will be delivered asynchronously through a webhook with `event_type` = `auth_rules.backtest_report.created`. See the docs on setting up [webhook subscriptions](https://docs.lithic.com/docs/events-api).\nIt is also possible to request backtest reports on-demand through the `/v2/auth_rules/{auth_rule_token}/backtests/{auth_rule_backtest_token}` endpoint.\n\nLithic currently supports backtesting for `CONDITIONAL_BLOCK` / `CONDITIONAL_ACTION` rules. Backtesting for `VELOCITY_LIMIT` rules is generally not supported. In specific cases (i.e. where Lithic has pre-calculated the requested velocity metrics for historical transactions), a backtest may be feasible. However, such cases are uncommon and customers should not anticipate support for velocity backtests under most configurations.\nIf a historical transaction does not feature the required inputs to evaluate the rule, then it will not be included in the final backtest report.\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `end?: string`\n The end time of the backtest.\n\n- `start?: string`\n The start time of the backtest.\n\n### Returns\n\n- `{ backtest_token?: string; }`\n\n - `backtest_token?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst backtest = await client.authRules.v2.backtests.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(backtest);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v2/auth_rules/{auth_rule_token}/backtests/{auth_rule_backtest_token}',
+ httpMethod: 'get',
+ summary: 'Retrieve backtest results',
+ description:
+ 'Returns the backtest results of an Auth rule (if available).\n\nBacktesting is an asynchronous process that requires time to complete. If a customer retrieves the backtest results using this endpoint before the report is fully generated, the response will return null for `results.current_version` and `results.draft_version`. Customers are advised to wait for the backtest creation process to complete (as indicated by the webhook event auth_rules.backtest_report.created) before retrieving results from this endpoint.\n\nBacktesting is an asynchronous process, while the backtest is being processed, results will not be available which will cause `results.current_version` and `results.draft_version` objects to contain `null`.\nThe entries in `results` will also always represent the configuration of the rule at the time requests are made to this endpoint. For example, the results for `current_version` in the served backtest report will be consistent with which version of the rule is currently activated in the respective event stream, regardless of which version of the rule was active in the event stream at the time a backtest is requested.\n',
+ stainlessPath: '(resource) auth_rules.v2.backtests > (method) retrieve',
+ qualified: 'client.authRules.v2.backtests.retrieve',
+ params: ['auth_rule_token: string;', 'auth_rule_backtest_token: string;'],
+ response:
+ '{ backtest_token: string; results: { current_version?: object; draft_version?: object; }; simulation_parameters: { end: string; start: string; }; }',
+ markdown:
+ "## retrieve\n\n`client.authRules.v2.backtests.retrieve(auth_rule_token: string, auth_rule_backtest_token: string): { backtest_token: string; results: object; simulation_parameters: object; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}/backtests/{auth_rule_backtest_token}`\n\nReturns the backtest results of an Auth rule (if available).\n\nBacktesting is an asynchronous process that requires time to complete. If a customer retrieves the backtest results using this endpoint before the report is fully generated, the response will return null for `results.current_version` and `results.draft_version`. Customers are advised to wait for the backtest creation process to complete (as indicated by the webhook event auth_rules.backtest_report.created) before retrieving results from this endpoint.\n\nBacktesting is an asynchronous process, while the backtest is being processed, results will not be available which will cause `results.current_version` and `results.draft_version` objects to contain `null`.\nThe entries in `results` will also always represent the configuration of the rule at the time requests are made to this endpoint. For example, the results for `current_version` in the served backtest report will be consistent with which version of the rule is currently activated in the respective event stream, regardless of which version of the rule was active in the event stream at the time a backtest is requested.\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `auth_rule_backtest_token: string`\n\n### Returns\n\n- `{ backtest_token: string; results: { current_version?: object; draft_version?: object; }; simulation_parameters: { end: string; start: string; }; }`\n\n - `backtest_token: string`\n - `results: { current_version?: { approved?: number; challenged?: number; declined?: number; examples?: { decision?: 'APPROVED' | 'DECLINED' | 'CHALLENGED'; event_token?: string; timestamp?: string; }[]; version?: number; }; draft_version?: { approved?: number; challenged?: number; declined?: number; examples?: { decision?: 'APPROVED' | 'DECLINED' | 'CHALLENGED'; event_token?: string; timestamp?: string; }[]; version?: number; }; }`\n - `simulation_parameters: { end: string; start: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst backtestResults = await client.authRules.v2.backtests.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { auth_rule_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(backtestResults);\n```",
+ },
+ {
+ name: 'retrieve_secret',
+ endpoint: '/v1/auth_stream/secret',
+ httpMethod: 'get',
+ summary: 'Retrieve the ASA HMAC secret key',
+ description:
+ 'Retrieve the ASA HMAC secret key. If one does not exist for your program yet, calling this endpoint will create one for you. The headers (which you can use to verify webhooks) will begin appearing shortly after calling this endpoint for the first time. See [this page](https://docs.lithic.com/docs/auth-stream-access-asa#asa-webhook-verification) for more detail about verifying ASA webhooks.\n',
+ stainlessPath: '(resource) auth_stream_enrollment > (method) retrieve_secret',
+ qualified: 'client.authStreamEnrollment.retrieveSecret',
+ response: '{ secret?: string; }',
+ markdown:
+ "## retrieve_secret\n\n`client.authStreamEnrollment.retrieveSecret(): { secret?: string; }`\n\n**get** `/v1/auth_stream/secret`\n\nRetrieve the ASA HMAC secret key. If one does not exist for your program yet, calling this endpoint will create one for you. The headers (which you can use to verify webhooks) will begin appearing shortly after calling this endpoint for the first time. See [this page](https://docs.lithic.com/docs/auth-stream-access-asa#asa-webhook-verification) for more detail about verifying ASA webhooks.\n\n\n### Returns\n\n- `{ secret?: string; }`\n\n - `secret?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst authStreamSecret = await client.authStreamEnrollment.retrieveSecret();\n\nconsole.log(authStreamSecret);\n```",
+ },
+ {
+ name: 'rotate_secret',
+ endpoint: '/v1/auth_stream/secret/rotate',
+ httpMethod: 'post',
+ summary: 'Rotate the ASA HMAC secret key',
+ description:
+ 'Generate a new ASA HMAC secret key. The old ASA HMAC secret key will be deactivated 24 hours after a successful request to this endpoint. Make a [`GET /auth_stream/secret`](https://docs.lithic.com/reference/getauthstreamsecret) request to retrieve the new secret key.\n',
+ stainlessPath: '(resource) auth_stream_enrollment > (method) rotate_secret',
+ qualified: 'client.authStreamEnrollment.rotateSecret',
+ markdown:
+ "## rotate_secret\n\n`client.authStreamEnrollment.rotateSecret(): void`\n\n**post** `/v1/auth_stream/secret/rotate`\n\nGenerate a new ASA HMAC secret key. The old ASA HMAC secret key will be deactivated 24 hours after a successful request to this endpoint. Make a [`GET /auth_stream/secret`](https://docs.lithic.com/reference/getauthstreamsecret) request to retrieve the new secret key.\n\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.authStreamEnrollment.rotateSecret()\n```",
+ },
+ {
+ name: 'retrieve_secret',
+ endpoint: '/v1/tokenization_decisioning/secret',
+ httpMethod: 'get',
+ summary: 'Retrieve the Tokenization Decisioning HMAC secret key',
+ description:
+ 'Retrieve the Tokenization Decisioning secret key. If one does not exist your program yet, calling this endpoint will create one for you. The headers of the Tokenization Decisioning request will contain a hmac signature which you can use to verify requests originate from Lithic. See [this page](https://docs.lithic.com/docs/events-api#verifying-webhooks) for more detail about verifying Tokenization Decisioning requests.\n',
+ stainlessPath: '(resource) tokenization_decisioning > (method) retrieve_secret',
+ qualified: 'client.tokenizationDecisioning.retrieveSecret',
+ response: '{ secret?: string; }',
+ markdown:
+ "## retrieve_secret\n\n`client.tokenizationDecisioning.retrieveSecret(): { secret?: string; }`\n\n**get** `/v1/tokenization_decisioning/secret`\n\nRetrieve the Tokenization Decisioning secret key. If one does not exist your program yet, calling this endpoint will create one for you. The headers of the Tokenization Decisioning request will contain a hmac signature which you can use to verify requests originate from Lithic. See [this page](https://docs.lithic.com/docs/events-api#verifying-webhooks) for more detail about verifying Tokenization Decisioning requests.\n\n\n### Returns\n\n- `{ secret?: string; }`\n\n - `secret?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst tokenizationSecret = await client.tokenizationDecisioning.retrieveSecret();\n\nconsole.log(tokenizationSecret);\n```",
+ },
+ {
+ name: 'rotate_secret',
+ endpoint: '/v1/tokenization_decisioning/secret/rotate',
+ httpMethod: 'post',
+ summary: 'Rotate the Tokenization Decisioning HMAC secret key',
+ description:
+ 'Generate a new Tokenization Decisioning secret key. The old Tokenization Decisioning secret key will be deactivated 24 hours after a successful request to this endpoint.\n',
+ stainlessPath: '(resource) tokenization_decisioning > (method) rotate_secret',
+ qualified: 'client.tokenizationDecisioning.rotateSecret',
+ response: '{ secret?: string; }',
+ markdown:
+ "## rotate_secret\n\n`client.tokenizationDecisioning.rotateSecret(): { secret?: string; }`\n\n**post** `/v1/tokenization_decisioning/secret/rotate`\n\nGenerate a new Tokenization Decisioning secret key. The old Tokenization Decisioning secret key will be deactivated 24 hours after a successful request to this endpoint.\n\n\n### Returns\n\n- `{ secret?: string; }`\n\n - `secret?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.tokenizationDecisioning.rotateSecret();\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/tokenizations/{tokenization_token}',
+ httpMethod: 'get',
+ summary: 'Get a single card tokenization',
+ description: 'Get tokenization',
+ stainlessPath: '(resource) tokenizations > (method) retrieve',
+ qualified: 'client.tokenizations.retrieve',
+ params: ['tokenization_token: string;'],
+ response:
+ "{ token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: { token?: string; created_at?: string; result?: string; rule_results?: object[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]; payment_account_reference_id?: string; }",
+ markdown:
+ "## retrieve\n\n`client.tokenizations.retrieve(tokenization_token: string): { token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: object[]; payment_account_reference_id?: string; }`\n\n**get** `/v1/tokenizations/{tokenization_token}`\n\nGet tokenization\n\n### Parameters\n\n- `tokenization_token: string`\n\n### Returns\n\n- `{ token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: { token?: string; created_at?: string; result?: string; rule_results?: object[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]; payment_account_reference_id?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `card_token: string`\n - `created_at: string`\n - `dpan: string`\n - `status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'`\n - `token_requestor_name: string | string`\n - `token_unique_reference: string`\n - `tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'`\n - `updated_at: string`\n - `device_id?: string`\n - `digital_card_art_token?: string`\n - `events?: { token?: string; created_at?: string; result?: string; rule_results?: { auth_rule_token: string; explanation: string; name: string; result: 'APPROVED' | 'DECLINED' | 'REQUIRE_TFA' | 'ERROR'; }[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]`\n - `payment_account_reference_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst tokenization = await client.tokenizations.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(tokenization);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/tokenizations',
+ httpMethod: 'get',
+ summary: "Get a card's tokenizations",
+ description: 'List card tokenizations',
+ stainlessPath: '(resource) tokenizations > (method) list',
+ qualified: 'client.tokenizations.list',
+ params: [
+ 'account_token?: string;',
+ 'begin?: string;',
+ 'card_token?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ "tokenization_channel?: 'DIGITAL_WALLET' | 'MERCHANT' | 'ALL';",
+ ],
+ response:
+ "{ token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: { token?: string; created_at?: string; result?: string; rule_results?: object[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]; payment_account_reference_id?: string; }",
+ markdown:
+ "## list\n\n`client.tokenizations.list(account_token?: string, begin?: string, card_token?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string, tokenization_channel?: 'DIGITAL_WALLET' | 'MERCHANT' | 'ALL'): { token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: object[]; payment_account_reference_id?: string; }`\n\n**get** `/v1/tokenizations`\n\nList card tokenizations\n\n### Parameters\n\n- `account_token?: string`\n Filters for tokenizations associated with a specific account.\n\n- `begin?: string`\n Filter for tokenizations created after this date.\n\n- `card_token?: string`\n Filters for tokenizations associated with a specific card.\n\n- `end?: string`\n Filter for tokenizations created before this date.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `tokenization_channel?: 'DIGITAL_WALLET' | 'MERCHANT' | 'ALL'`\n Filter for tokenizations by tokenization channel. If this is not specified, only DIGITAL_WALLET tokenizations will be returned.\n\n### Returns\n\n- `{ token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: { token?: string; created_at?: string; result?: string; rule_results?: object[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]; payment_account_reference_id?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `card_token: string`\n - `created_at: string`\n - `dpan: string`\n - `status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'`\n - `token_requestor_name: string | string`\n - `token_unique_reference: string`\n - `tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'`\n - `updated_at: string`\n - `device_id?: string`\n - `digital_card_art_token?: string`\n - `events?: { token?: string; created_at?: string; result?: string; rule_results?: { auth_rule_token: string; explanation: string; name: string; result: 'APPROVED' | 'DECLINED' | 'REQUIRE_TFA' | 'ERROR'; }[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]`\n - `payment_account_reference_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const tokenization of client.tokenizations.list()) {\n console.log(tokenization);\n}\n```",
+ },
+ {
+ name: 'activate',
+ endpoint: '/v1/tokenizations/{tokenization_token}/activate',
+ httpMethod: 'post',
+ summary: 'Activate a card tokenization',
+ description:
+ 'This endpoint is used to ask the card network to activate a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network activates the tokenization, the state will be updated and a tokenization.updated event will be sent. The endpoint may only be used on digital wallet tokenizations with status `INACTIVE`, `PENDING_ACTIVATION`, or `PENDING_2FA`.\nThis will put the tokenization in an active state, and transactions will be allowed.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.',
+ stainlessPath: '(resource) tokenizations > (method) activate',
+ qualified: 'client.tokenizations.activate',
+ params: ['tokenization_token: string;'],
+ markdown:
+ "## activate\n\n`client.tokenizations.activate(tokenization_token: string): void`\n\n**post** `/v1/tokenizations/{tokenization_token}/activate`\n\nThis endpoint is used to ask the card network to activate a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network activates the tokenization, the state will be updated and a tokenization.updated event will be sent. The endpoint may only be used on digital wallet tokenizations with status `INACTIVE`, `PENDING_ACTIVATION`, or `PENDING_2FA`.\nThis will put the tokenization in an active state, and transactions will be allowed.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n\n### Parameters\n\n- `tokenization_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.tokenizations.activate('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')\n```",
+ },
+ {
+ name: 'deactivate',
+ endpoint: '/v1/tokenizations/{tokenization_token}/deactivate',
+ httpMethod: 'post',
+ summary: 'Deactivate a card tokenization',
+ description:
+ 'This endpoint is used to ask the card network to deactivate a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network deactivates the tokenization, the state will be updated and a tokenization.updated event will be sent.\nAuthorizations attempted with a deactivated tokenization will be blocked and will not be forwarded to Lithic from the network. Deactivating the token is a permanent operation. If the target is a digital wallet tokenization, it will be removed from its device.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.',
+ stainlessPath: '(resource) tokenizations > (method) deactivate',
+ qualified: 'client.tokenizations.deactivate',
+ params: ['tokenization_token: string;'],
+ markdown:
+ "## deactivate\n\n`client.tokenizations.deactivate(tokenization_token: string): void`\n\n**post** `/v1/tokenizations/{tokenization_token}/deactivate`\n\nThis endpoint is used to ask the card network to deactivate a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network deactivates the tokenization, the state will be updated and a tokenization.updated event will be sent.\nAuthorizations attempted with a deactivated tokenization will be blocked and will not be forwarded to Lithic from the network. Deactivating the token is a permanent operation. If the target is a digital wallet tokenization, it will be removed from its device.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n\n### Parameters\n\n- `tokenization_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.tokenizations.deactivate('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')\n```",
+ },
+ {
+ name: 'pause',
+ endpoint: '/v1/tokenizations/{tokenization_token}/pause',
+ httpMethod: 'post',
+ summary: 'Pause a card tokenization',
+ description:
+ 'This endpoint is used to ask the card network to pause a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network pauses the tokenization, the state will be updated and a tokenization.updated event will be sent. The endpoint may only be used on tokenizations with status `ACTIVE`.\nA paused token will prevent merchants from sending authorizations, and is a temporary status that can be changed.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.',
+ stainlessPath: '(resource) tokenizations > (method) pause',
+ qualified: 'client.tokenizations.pause',
+ params: ['tokenization_token: string;'],
+ markdown:
+ "## pause\n\n`client.tokenizations.pause(tokenization_token: string): void`\n\n**post** `/v1/tokenizations/{tokenization_token}/pause`\n\nThis endpoint is used to ask the card network to pause a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network pauses the tokenization, the state will be updated and a tokenization.updated event will be sent. The endpoint may only be used on tokenizations with status `ACTIVE`.\nA paused token will prevent merchants from sending authorizations, and is a temporary status that can be changed.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n\n### Parameters\n\n- `tokenization_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.tokenizations.pause('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')\n```",
+ },
+ {
+ name: 'resend_activation_code',
+ endpoint: '/v1/tokenizations/{tokenization_token}/resend_activation_code',
+ httpMethod: 'post',
+ summary: 'Resend activation code for a card tokenization',
+ description:
+ 'This endpoint is used to ask the card network to send another activation code to a cardholder that has already tried tokenizing a card. A successful response indicates that the request was successfully delivered to the card network.\nThe endpoint may only be used on Mastercard digital wallet tokenizations with status `INACTIVE`, `PENDING_ACTIVATION`, or `PENDING_2FA`. The network will send a new activation code to the one of the contact methods provided in the initial tokenization flow. If a user fails to enter the code correctly 3 times, the contact method will not be eligible for resending the activation code, and the cardholder must restart the provision process.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.',
+ stainlessPath: '(resource) tokenizations > (method) resend_activation_code',
+ qualified: 'client.tokenizations.resendActivationCode',
+ params: [
+ 'tokenization_token: string;',
+ "activation_method_type?: 'EMAIL_TO_CARDHOLDER_ADDRESS' | 'TEXT_TO_CARDHOLDER_NUMBER';",
+ ],
+ markdown:
+ "## resend_activation_code\n\n`client.tokenizations.resendActivationCode(tokenization_token: string, activation_method_type?: 'EMAIL_TO_CARDHOLDER_ADDRESS' | 'TEXT_TO_CARDHOLDER_NUMBER'): void`\n\n**post** `/v1/tokenizations/{tokenization_token}/resend_activation_code`\n\nThis endpoint is used to ask the card network to send another activation code to a cardholder that has already tried tokenizing a card. A successful response indicates that the request was successfully delivered to the card network.\nThe endpoint may only be used on Mastercard digital wallet tokenizations with status `INACTIVE`, `PENDING_ACTIVATION`, or `PENDING_2FA`. The network will send a new activation code to the one of the contact methods provided in the initial tokenization flow. If a user fails to enter the code correctly 3 times, the contact method will not be eligible for resending the activation code, and the cardholder must restart the provision process.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n\n### Parameters\n\n- `tokenization_token: string`\n\n- `activation_method_type?: 'EMAIL_TO_CARDHOLDER_ADDRESS' | 'TEXT_TO_CARDHOLDER_NUMBER'`\n The communication method that the user has selected to use to receive the authentication code.\nSupported Values: Sms = \"TEXT_TO_CARDHOLDER_NUMBER\". Email = \"EMAIL_TO_CARDHOLDER_ADDRESS\"\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.tokenizations.resendActivationCode('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')\n```",
+ },
+ {
+ name: 'simulate',
+ endpoint: '/v1/simulate/tokenizations',
+ httpMethod: 'post',
+ summary: "Simulate a card's tokenization",
+ description:
+ "This endpoint is used to simulate a card's tokenization in the Digital Wallet and merchant tokenization ecosystem.\n",
+ stainlessPath: '(resource) tokenizations > (method) simulate',
+ qualified: 'client.tokenizations.simulate',
+ params: [
+ 'cvv: string;',
+ 'expiration_date: string;',
+ 'pan: string;',
+ "tokenization_source: 'APPLE_PAY' | 'GOOGLE' | 'SAMSUNG_PAY' | 'MERCHANT';",
+ 'account_score?: number;',
+ 'device_score?: number;',
+ 'entity?: string;',
+ "wallet_recommended_decision?: 'APPROVED' | 'DECLINED' | 'REQUIRE_ADDITIONAL_AUTHENTICATION';",
+ ],
+ response:
+ "{ token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: { token?: string; created_at?: string; result?: string; rule_results?: object[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]; payment_account_reference_id?: string; }",
+ markdown:
+ "## simulate\n\n`client.tokenizations.simulate(cvv: string, expiration_date: string, pan: string, tokenization_source: 'APPLE_PAY' | 'GOOGLE' | 'SAMSUNG_PAY' | 'MERCHANT', account_score?: number, device_score?: number, entity?: string, wallet_recommended_decision?: 'APPROVED' | 'DECLINED' | 'REQUIRE_ADDITIONAL_AUTHENTICATION'): { token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: object[]; payment_account_reference_id?: string; }`\n\n**post** `/v1/simulate/tokenizations`\n\nThis endpoint is used to simulate a card's tokenization in the Digital Wallet and merchant tokenization ecosystem.\n\n\n### Parameters\n\n- `cvv: string`\n The three digit cvv for the card.\n\n- `expiration_date: string`\n The expiration date of the card in 'MM/YY' format.\n\n- `pan: string`\n The sixteen digit card number.\n\n- `tokenization_source: 'APPLE_PAY' | 'GOOGLE' | 'SAMSUNG_PAY' | 'MERCHANT'`\n The source of the tokenization request.\n\n- `account_score?: number`\n The account score (1-5) that represents how the Digital Wallet's view on how reputable an end user's account is.\n\n- `device_score?: number`\n The device score (1-5) that represents how the Digital Wallet's view on how reputable an end user's device is.\n\n- `entity?: string`\n Optional field to specify the token requestor name for a merchant token simulation. Ignored when tokenization_source is not MERCHANT.\n\n- `wallet_recommended_decision?: 'APPROVED' | 'DECLINED' | 'REQUIRE_ADDITIONAL_AUTHENTICATION'`\n The decision that the Digital Wallet's recommend\n\n### Returns\n\n- `{ token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: { token?: string; created_at?: string; result?: string; rule_results?: object[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]; payment_account_reference_id?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `card_token: string`\n - `created_at: string`\n - `dpan: string`\n - `status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'`\n - `token_requestor_name: string | string`\n - `token_unique_reference: string`\n - `tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'`\n - `updated_at: string`\n - `device_id?: string`\n - `digital_card_art_token?: string`\n - `events?: { token?: string; created_at?: string; result?: string; rule_results?: { auth_rule_token: string; explanation: string; name: string; result: 'APPROVED' | 'DECLINED' | 'REQUIRE_TFA' | 'ERROR'; }[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]`\n - `payment_account_reference_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst tokenization = await client.tokenizations.simulate({\n cvv: '776',\n expiration_date: '08/29',\n pan: '4111111289144142',\n tokenization_source: 'APPLE_PAY',\n});\n\nconsole.log(tokenization);\n```",
+ },
+ {
+ name: 'unpause',
+ endpoint: '/v1/tokenizations/{tokenization_token}/unpause',
+ httpMethod: 'post',
+ summary: 'Unpause a card tokenization',
+ description:
+ 'This endpoint is used to ask the card network to unpause a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network unpauses the tokenization, the state will be updated and a tokenization.updated event will be sent. The endpoint may only be used on tokenizations with status `PAUSED`.\nThis will put the tokenization in an active state, and transactions may resume.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.',
+ stainlessPath: '(resource) tokenizations > (method) unpause',
+ qualified: 'client.tokenizations.unpause',
+ params: ['tokenization_token: string;'],
+ markdown:
+ "## unpause\n\n`client.tokenizations.unpause(tokenization_token: string): void`\n\n**post** `/v1/tokenizations/{tokenization_token}/unpause`\n\nThis endpoint is used to ask the card network to unpause a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network unpauses the tokenization, the state will be updated and a tokenization.updated event will be sent. The endpoint may only be used on tokenizations with status `PAUSED`.\nThis will put the tokenization in an active state, and transactions may resume.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n\n### Parameters\n\n- `tokenization_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.tokenizations.unpause('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')\n```",
+ },
+ {
+ name: 'update_digital_card_art',
+ endpoint: '/v1/tokenizations/{tokenization_token}/update_digital_card_art',
+ httpMethod: 'post',
+ summary: 'Update digital card art for a card tokenization',
+ description:
+ "This endpoint is used update the digital card art for a digital wallet tokenization. A successful response indicates that the card network has updated the tokenization's art, and the tokenization's `digital_cart_art_token` field was updated.\nThe endpoint may not be used on tokenizations with status `DEACTIVATED`.\nNote that this updates the art for one specific tokenization, not all tokenizations for a card. New tokenizations for a card will be created with the art referenced in the card object's `digital_card_art_token` field.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.",
+ stainlessPath: '(resource) tokenizations > (method) update_digital_card_art',
+ qualified: 'client.tokenizations.updateDigitalCardArt',
+ params: ['tokenization_token: string;', 'digital_card_art_token?: string;'],
+ response:
+ "{ token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: { token?: string; created_at?: string; result?: string; rule_results?: object[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]; payment_account_reference_id?: string; }",
+ markdown:
+ "## update_digital_card_art\n\n`client.tokenizations.updateDigitalCardArt(tokenization_token: string, digital_card_art_token?: string): { token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: object[]; payment_account_reference_id?: string; }`\n\n**post** `/v1/tokenizations/{tokenization_token}/update_digital_card_art`\n\nThis endpoint is used update the digital card art for a digital wallet tokenization. A successful response indicates that the card network has updated the tokenization's art, and the tokenization's `digital_cart_art_token` field was updated.\nThe endpoint may not be used on tokenizations with status `DEACTIVATED`.\nNote that this updates the art for one specific tokenization, not all tokenizations for a card. New tokenizations for a card will be created with the art referenced in the card object's `digital_card_art_token` field.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n\n### Parameters\n\n- `tokenization_token: string`\n\n- `digital_card_art_token?: string`\n Specifies the digital card art to be displayed in the user’s digital wallet for a tokenization. This artwork must be approved by the network and configured by Lithic to use. See [Flexible Card Art Guide](https://docs.lithic.com/docs/about-digital-wallets#flexible-card-art).\n\n### Returns\n\n- `{ token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: { token?: string; created_at?: string; result?: string; rule_results?: object[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]; payment_account_reference_id?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `card_token: string`\n - `created_at: string`\n - `dpan: string`\n - `status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'`\n - `token_requestor_name: string | string`\n - `token_unique_reference: string`\n - `tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'`\n - `updated_at: string`\n - `device_id?: string`\n - `digital_card_art_token?: string`\n - `events?: { token?: string; created_at?: string; result?: string; rule_results?: { auth_rule_token: string; explanation: string; name: string; result: 'APPROVED' | 'DECLINED' | 'REQUIRE_TFA' | 'ERROR'; }[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]`\n - `payment_account_reference_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst tokenization = await client.tokenizations.updateDigitalCardArt('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(tokenization);\n```",
+ },
+ {
+ name: 'create',
+ endpoint: '/v1/cards',
+ httpMethod: 'post',
+ summary: 'Create card',
+ description:
+ 'Create a new virtual or physical card. Parameters `shipping_address` and `product_id` only apply to physical cards.\n',
+ stainlessPath: '(resource) cards > (method) create',
+ qualified: 'client.cards.create',
+ params: [
+ "type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET';",
+ 'account_token?: string;',
+ 'bulk_order_token?: string;',
+ 'card_program_token?: string;',
+ 'carrier?: { qr_code_url?: string; };',
+ 'digital_card_art_token?: string;',
+ 'exp_month?: string;',
+ 'exp_year?: string;',
+ 'memo?: string;',
+ 'pin?: string;',
+ 'product_id?: string;',
+ 'replacement_account_token?: string;',
+ 'replacement_comment?: string;',
+ 'replacement_for?: string;',
+ 'replacement_substatus?: string;',
+ 'shipping_address?: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; };',
+ "shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING';",
+ 'spend_limit?: number;',
+ "spend_limit_duration?: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION';",
+ "state?: 'OPEN' | 'PAUSED';",
+ 'Idempotency-Key?: string;',
+ ],
+ response:
+ "{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }",
+ markdown:
+ "## create\n\n`client.cards.create(type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET', account_token?: string, bulk_order_token?: string, card_program_token?: string, carrier?: { qr_code_url?: string; }, digital_card_art_token?: string, exp_month?: string, exp_year?: string, memo?: string, pin?: string, product_id?: string, replacement_account_token?: string, replacement_comment?: string, replacement_for?: string, replacement_substatus?: string, shipping_address?: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }, shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING', spend_limit?: number, spend_limit_duration?: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION', state?: 'OPEN' | 'PAUSED', Idempotency-Key?: string): object`\n\n**post** `/v1/cards`\n\nCreate a new virtual or physical card. Parameters `shipping_address` and `product_id` only apply to physical cards.\n\n\n### Parameters\n\n- `type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'`\n Card types:\n* `VIRTUAL` - Card will authorize at any merchant and can be added to a digital wallet like Apple Pay or Google Pay (if the card program is digital wallet-enabled).\n* `PHYSICAL` - Manufactured and sent to the cardholder. We offer white label branding, credit, ATM, PIN debit, chip/EMV, NFC and magstripe functionality. Reach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n* `SINGLE_USE` - Card is closed upon first successful authorization.\n* `MERCHANT_LOCKED` - Card is locked to the first merchant that successfully authorizes the card.\n* `UNLOCKED` - *[Deprecated]* Similar behavior to VIRTUAL cards, please use VIRTUAL instead.\n* `DIGITAL_WALLET` - *[Deprecated]* Similar behavior to VIRTUAL cards, please use VIRTUAL instead.\n\n- `account_token?: string`\n Globally unique identifier for the account that the card will be associated with. Required for programs enrolling users using the [/account\\_holders endpoint](https://docs.lithic.com/docs/account-holders-kyc). See [Managing Your Program](doc:managing-your-program) for more information.\n\n\n- `bulk_order_token?: string`\n Globally unique identifier for an existing bulk order to associate this card with. When specified, the card will be added to the bulk order for batch shipment. Only applicable to cards of type PHYSICAL\n\n- `card_program_token?: string`\n For card programs with more than one BIN range. This must be configured with Lithic before use. Identifies the card program/BIN range under which to create the card. If omitted, will utilize the program's default `card_program_token`. In Sandbox, use 00000000-0000-0000-1000-000000000000 and 00000000-0000-0000-2000-000000000000 to test creating cards on specific card programs.\n\n- `carrier?: { qr_code_url?: string; }`\n - `qr_code_url?: string`\n QR code URL to display on the card carrier. The `qr_code_url` field requires your domain to be allowlisted by Lithic before use. Contact Support to configure your QR code domain\n\n- `digital_card_art_token?: string`\n Specifies the digital card art to be displayed in the user’s digital wallet after tokenization. This artwork must be approved by Mastercard and configured by Lithic to use. See [Flexible Card Art Guide](https://docs.lithic.com/docs/about-digital-wallets#flexible-card-art).\n\n- `exp_month?: string`\n Two digit (MM) expiry month. If neither `exp_month` nor `exp_year` is provided, an expiration date will be generated.\n\n- `exp_year?: string`\n Four digit (yyyy) expiry year. If neither `exp_month` nor `exp_year` is provided, an expiration date will be generated.\n\n- `memo?: string`\n Friendly name to identify the card.\n\n- `pin?: string`\n Encrypted PIN block (in base64). Applies to cards of type `PHYSICAL` and `VIRTUAL`. See [Encrypted PIN Block](https://docs.lithic.com/docs/cards#encrypted-pin-block).\n\n- `product_id?: string`\n Only applicable to cards of type `PHYSICAL`. This must be configured with Lithic before use. Specifies the configuration (i.e., physical card art) that the card should be manufactured with.\n\n- `replacement_account_token?: string`\n Restricted field limited to select use cases. Lithic will reach out directly if this field should be used. Globally unique identifier for the replacement card's account. If this field is specified, `replacement_for` must also be specified. If `replacement_for` is specified and this field is omitted, the replacement card's account will be inferred from the card being replaced.\n\n- `replacement_comment?: string`\n Additional context or information related to the card that this card will replace.\n\n- `replacement_for?: string`\n Globally unique identifier for the card that this card will replace. If the card type is `PHYSICAL` it will be replaced by a `PHYSICAL` card. If the card type is `VIRTUAL` it will be replaced by a `VIRTUAL` card.\n\n- `replacement_substatus?: string`\n Card state substatus values for the card that this card will replace:\n* `LOST` - The physical card is no longer in the cardholder's possession due to being lost or never received by the cardholder.\n* `COMPROMISED` - Card information has been exposed, potentially leading to unauthorized access. This may involve physical card theft, cloning, or online data breaches.\n* `DAMAGED` - The physical card is not functioning properly, such as having chip failures or a demagnetized magnetic stripe.\n* `END_USER_REQUEST` - The cardholder requested the closure of the card for reasons unrelated to fraud or damage, such as switching to a different product or closing the account.\n* `ISSUER_REQUEST` - The issuer closed the card for reasons unrelated to fraud or damage, such as account inactivity, product or policy changes, or technology upgrades.\n* `NOT_ACTIVE` - The card hasn’t had any transaction activity for a specified period, applicable to statuses like `PAUSED` or `CLOSED`.\n* `SUSPICIOUS_ACTIVITY` - The card has one or more suspicious transactions or activities that require review. This can involve prompting the cardholder to confirm legitimate use or report confirmed fraud.\n* `INTERNAL_REVIEW` - The card is temporarily paused pending further internal review.\n* `EXPIRED` - The card has expired and has been closed without being reissued.\n* `UNDELIVERABLE` - The card cannot be delivered to the cardholder and has been returned.\n* `OTHER` - The reason for the status does not fall into any of the above categories. A comment should be provided to specify the reason.\n\n- `shipping_address?: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }`\n - `address1: string`\n Valid USPS routable address.\n - `city: string`\n City\n - `country: string`\n Uppercase ISO 3166-1 alpha-3 three character abbreviation.\n - `first_name: string`\n Customer's first name. This will be the first name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `last_name: string`\n Customer's surname (family name). This will be the last name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `postal_code: string`\n Postal code (formerly zipcode). For US addresses, either five-digit postal code or nine-digit postal code (ZIP+4) using the format 12345-1234.\n - `state: string`\n Uppercase ISO 3166-2 two character abbreviation for US and CA. Optional with a limit of 24 characters for other countries.\n - `address2?: string`\n Unit number (if applicable).\n - `email?: string`\n Email address to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n - `line2_text?: string`\n Text to be printed on line two of the physical card. Use of this field requires additional permissions.\n - `phone_number?: string`\n Cardholder's phone number in E.164 format to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n\n- `shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING'`\n Shipping method for the card. Only applies to cards of type PHYSICAL.\nUse of options besides `STANDARD` require additional permissions.\n\n* `STANDARD` - USPS regular mail or similar international option, with no tracking\n* `STANDARD_WITH_TRACKING` - USPS regular mail or similar international option, with tracking\n* `PRIORITY` - USPS Priority, 1-3 day shipping, with tracking\n* `EXPRESS` - FedEx or UPS depending on card manufacturer, Express, 3-day shipping, with tracking\n* `2_DAY` - FedEx or UPS depending on card manufacturer, 2-day shipping, with tracking\n* `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking\n* `BULK` - Card will be shipped as part of a bulk fulfillment order. The shipping method and timeline are inherited from the parent bulk order.\n\n- `spend_limit?: number`\n Amount (in cents) to limit approved authorizations (e.g. 100000 would be a $1,000 limit). Transaction requests above the spend limit will be declined. Note that a spend limit of 0 is effectively no limit, and should only be used to reset or remove a prior limit. Only a limit of 1 or above will result in declined transactions due to checks against the card limit.\n\n- `spend_limit_duration?: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'`\n Spend limit duration values:\n\n* `ANNUALLY` - Card will authorize transactions up to spend limit for the trailing year.\n* `FOREVER` - Card will authorize only up to spend limit for the entire lifetime of the card.\n* `MONTHLY` - Card will authorize transactions up to spend limit for the trailing month. To support recurring monthly payments, which can occur on different day every month, the time window we consider for monthly velocity starts 6 days after the current calendar date one month prior.\n* `TRANSACTION` - Card will authorize multiple transactions if each individual transaction is under the spend limit.\n\n- `state?: 'OPEN' | 'PAUSED'`\n Card state values:\n* `OPEN` - Card will approve authorizations (if they match card and account parameters).\n* `PAUSED` - Card will decline authorizations, but can be resumed at a later time.\n\n- `Idempotency-Key?: string`\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details with potentially PCI sensitive information for Enterprise customers\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst card = await client.cards.create({ type: 'VIRTUAL' });\n\nconsole.log(card);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/cards/{card_token}',
+ httpMethod: 'get',
+ summary: 'Get card',
+ description: 'Get card configuration such as spend limit and state.',
+ stainlessPath: '(resource) cards > (method) retrieve',
+ qualified: 'client.cards.retrieve',
+ params: ['card_token: string;'],
+ response:
+ "{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }",
+ markdown:
+ "## retrieve\n\n`client.cards.retrieve(card_token: string): object`\n\n**get** `/v1/cards/{card_token}`\n\nGet card configuration such as spend limit and state.\n\n### Parameters\n\n- `card_token: string`\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details with potentially PCI sensitive information for Enterprise customers\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst card = await client.cards.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(card);\n```",
+ },
+ {
+ name: 'update',
+ endpoint: '/v1/cards/{card_token}',
+ httpMethod: 'patch',
+ summary: 'Update card',
+ description:
+ 'Update the specified properties of the card. Unsupplied properties will remain unchanged.\n\n*Note: setting a card to a `CLOSED` state is a final action that cannot be undone.*\n',
+ stainlessPath: '(resource) cards > (method) update',
+ qualified: 'client.cards.update',
+ params: [
+ 'card_token: string;',
+ 'comment?: string;',
+ 'digital_card_art_token?: string;',
+ 'memo?: string;',
+ 'network_program_token?: string;',
+ 'pin?: string;',
+ "pin_status?: 'OK';",
+ 'spend_limit?: number;',
+ "spend_limit_duration?: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION';",
+ "state?: 'CLOSED' | 'OPEN' | 'PAUSED';",
+ 'substatus?: string;',
+ ],
+ response:
+ "{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }",
+ markdown:
+ "## update\n\n`client.cards.update(card_token: string, comment?: string, digital_card_art_token?: string, memo?: string, network_program_token?: string, pin?: string, pin_status?: 'OK', spend_limit?: number, spend_limit_duration?: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION', state?: 'CLOSED' | 'OPEN' | 'PAUSED', substatus?: string): object`\n\n**patch** `/v1/cards/{card_token}`\n\nUpdate the specified properties of the card. Unsupplied properties will remain unchanged.\n\n*Note: setting a card to a `CLOSED` state is a final action that cannot be undone.*\n\n\n### Parameters\n\n- `card_token: string`\n\n- `comment?: string`\n Additional context or information related to the card.\n\n- `digital_card_art_token?: string`\n Specifies the digital card art to be displayed in the user’s digital wallet after tokenization. This artwork must be approved by Mastercard and configured by Lithic to use. See [Flexible Card Art Guide](https://docs.lithic.com/docs/about-digital-wallets#flexible-card-art).\n\n- `memo?: string`\n Friendly name to identify the card.\n\n- `network_program_token?: string`\n Globally unique identifier for the card's network program. Currently applicable to Visa cards participating in Account Level Management only.\n\n- `pin?: string`\n Encrypted PIN block (in base64). Only applies to cards of type `PHYSICAL` and `VIRTUAL`. Changing PIN also resets PIN status to `OK`. See [Encrypted PIN Block](https://docs.lithic.com/docs/cards#encrypted-pin-block).\n\n- `pin_status?: 'OK'`\n Indicates if a card is blocked due a PIN status issue (e.g. excessive incorrect attempts). Can only be set to `OK` to unblock a card.\n\n- `spend_limit?: number`\n Amount (in cents) to limit approved authorizations (e.g. 100000 would be a $1,000 limit). Transaction requests above the spend limit will be declined. Note that a spend limit of 0 is effectively no limit, and should only be used to reset or remove a prior limit. Only a limit of 1 or above will result in declined transactions due to checks against the card limit.\n\n- `spend_limit_duration?: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'`\n Spend limit duration values:\n\n* `ANNUALLY` - Card will authorize transactions up to spend limit for the trailing year.\n* `FOREVER` - Card will authorize only up to spend limit for the entire lifetime of the card.\n* `MONTHLY` - Card will authorize transactions up to spend limit for the trailing month. To support recurring monthly payments, which can occur on different day every month, the time window we consider for monthly velocity starts 6 days after the current calendar date one month prior.\n* `TRANSACTION` - Card will authorize multiple transactions if each individual transaction is under the spend limit.\n\n- `state?: 'CLOSED' | 'OPEN' | 'PAUSED'`\n Card state values:\n* `CLOSED` - Card will no longer approve authorizations. Closing a card cannot be undone.\n* `OPEN` - Card will approve authorizations (if they match card and account parameters).\n* `PAUSED` - Card will decline authorizations, but can be resumed at a later time.\n\n- `substatus?: string`\n Card state substatus values:\n* `LOST` - The physical card is no longer in the cardholder's possession due to being lost or never received by the cardholder.\n* `COMPROMISED` - Card information has been exposed, potentially leading to unauthorized access. This may involve physical card theft, cloning, or online data breaches.\n* `DAMAGED` - The physical card is not functioning properly, such as having chip failures or a demagnetized magnetic stripe.\n* `END_USER_REQUEST` - The cardholder requested the closure of the card for reasons unrelated to fraud or damage, such as switching to a different product or closing the account.\n* `ISSUER_REQUEST` - The issuer closed the card for reasons unrelated to fraud or damage, such as account inactivity, product or policy changes, or technology upgrades.\n* `NOT_ACTIVE` - The card hasn’t had any transaction activity for a specified period, applicable to statuses like `PAUSED` or `CLOSED`.\n* `SUSPICIOUS_ACTIVITY` - The card has one or more suspicious transactions or activities that require review. This can involve prompting the cardholder to confirm legitimate use or report confirmed fraud.\n* `INTERNAL_REVIEW` - The card is temporarily paused pending further internal review.\n* `EXPIRED` - The card has expired and has been closed without being reissued.\n* `UNDELIVERABLE` - The card cannot be delivered to the cardholder and has been returned.\n* `OTHER` - The reason for the status does not fall into any of the above categories. A comment should be provided to specify the reason.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details with potentially PCI sensitive information for Enterprise customers\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst card = await client.cards.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(card);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/cards',
+ httpMethod: 'get',
+ summary: 'List cards',
+ description: 'List cards.',
+ stainlessPath: '(resource) cards > (method) list',
+ qualified: 'client.cards.list',
+ params: [
+ 'account_token?: string;',
+ 'begin?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'memo?: string;',
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ "state?: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT';",
+ ],
+ response:
+ "{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }",
+ markdown:
+ "## list\n\n`client.cards.list(account_token?: string, begin?: string, end?: string, ending_before?: string, memo?: string, page_size?: number, starting_after?: string, state?: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'): { token: string; account_token: string; card_program_token: string; created: string; funding: object; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: spend_limit_duration; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n\n**get** `/v1/cards`\n\nList cards.\n\n### Parameters\n\n- `account_token?: string`\n Returns cards associated with the specified account.\n\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `memo?: string`\n Returns cards containing the specified partial or full memo text.\n\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `state?: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'`\n Returns cards with the specified state.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details without PCI information\n\n - `token: string`\n - `account_token: string`\n - `card_program_token: string`\n - `created: string`\n - `funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }`\n - `last_four: string`\n - `pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'`\n - `spend_limit: number`\n - `spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'`\n - `state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'`\n - `type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'`\n - `auth_rule_tokens?: string[]`\n - `bulk_order_token?: string`\n - `cardholder_currency?: string`\n - `comment?: string`\n - `digital_card_art_token?: string`\n - `exp_month?: string`\n - `exp_year?: string`\n - `hostname?: string`\n - `memo?: string`\n - `network_program_token?: string`\n - `pending_commands?: string[]`\n - `product_id?: string`\n - `replacement_for?: string`\n - `substatus?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const nonPCICard of client.cards.list()) {\n console.log(nonPCICard);\n}\n```",
+ },
+ {
+ name: 'convert_physical',
+ endpoint: '/v1/cards/{card_token}/convert_physical',
+ httpMethod: 'post',
+ summary: 'Convert virtual to physical card',
+ description:
+ "Convert a virtual card into a physical card and manufacture it.\nCustomer must supply relevant fields for physical card creation including `product_id`, `carrier`, `shipping_method`, and `shipping_address`.\nThe card token will be unchanged. The card's type will be altered to `PHYSICAL`.\nThe card will be set to state `PENDING_FULFILLMENT` and fulfilled at next fulfillment cycle.\nVirtual cards created on card programs which do not support physical cards cannot be converted. The card program cannot be changed as part of the conversion. Cards must be in an `OPEN` state to be converted.\nOnly applies to cards of type `VIRTUAL` (or existing cards with deprecated types of `DIGITAL_WALLET` and `UNLOCKED`).",
+ stainlessPath: '(resource) cards > (method) convert_physical',
+ qualified: 'client.cards.convertPhysical',
+ params: [
+ 'card_token: string;',
+ 'shipping_address: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; };',
+ 'carrier?: { qr_code_url?: string; };',
+ 'product_id?: string;',
+ "shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING';",
+ ],
+ response:
+ "{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }",
+ markdown:
+ "## convert_physical\n\n`client.cards.convertPhysical(card_token: string, shipping_address: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }, carrier?: { qr_code_url?: string; }, product_id?: string, shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING'): object`\n\n**post** `/v1/cards/{card_token}/convert_physical`\n\nConvert a virtual card into a physical card and manufacture it.\nCustomer must supply relevant fields for physical card creation including `product_id`, `carrier`, `shipping_method`, and `shipping_address`.\nThe card token will be unchanged. The card's type will be altered to `PHYSICAL`.\nThe card will be set to state `PENDING_FULFILLMENT` and fulfilled at next fulfillment cycle.\nVirtual cards created on card programs which do not support physical cards cannot be converted. The card program cannot be changed as part of the conversion. Cards must be in an `OPEN` state to be converted.\nOnly applies to cards of type `VIRTUAL` (or existing cards with deprecated types of `DIGITAL_WALLET` and `UNLOCKED`).\n\n### Parameters\n\n- `card_token: string`\n\n- `shipping_address: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }`\n The shipping address this card will be sent to.\n - `address1: string`\n Valid USPS routable address.\n - `city: string`\n City\n - `country: string`\n Uppercase ISO 3166-1 alpha-3 three character abbreviation.\n - `first_name: string`\n Customer's first name. This will be the first name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `last_name: string`\n Customer's surname (family name). This will be the last name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `postal_code: string`\n Postal code (formerly zipcode). For US addresses, either five-digit postal code or nine-digit postal code (ZIP+4) using the format 12345-1234.\n - `state: string`\n Uppercase ISO 3166-2 two character abbreviation for US and CA. Optional with a limit of 24 characters for other countries.\n - `address2?: string`\n Unit number (if applicable).\n - `email?: string`\n Email address to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n - `line2_text?: string`\n Text to be printed on line two of the physical card. Use of this field requires additional permissions.\n - `phone_number?: string`\n Cardholder's phone number in E.164 format to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n\n- `carrier?: { qr_code_url?: string; }`\n If omitted, the previous carrier will be used.\n - `qr_code_url?: string`\n QR code URL to display on the card carrier. The `qr_code_url` field requires your domain to be allowlisted by Lithic before use. Contact Support to configure your QR code domain\n\n- `product_id?: string`\n Specifies the configuration (e.g. physical card art) that the card should be manufactured with, and only applies to cards of type `PHYSICAL`. This must be configured with Lithic before use.\n\n\n- `shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING'`\n Shipping method for the card. Only applies to cards of type PHYSICAL.\nUse of options besides `STANDARD` require additional permissions.\n\n* `STANDARD` - USPS regular mail or similar international option, with no tracking\n* `STANDARD_WITH_TRACKING` - USPS regular mail or similar international option, with tracking\n* `PRIORITY` - USPS Priority, 1-3 day shipping, with tracking\n* `EXPRESS` - FedEx or UPS depending on card manufacturer, Express, 3-day shipping, with tracking\n* `2_DAY` - FedEx or UPS depending on card manufacturer, 2-day shipping, with tracking\n* `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking\n* `BULK` - Card will be shipped as part of a bulk fulfillment order. The shipping method and timeline are inherited from the parent bulk order.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details with potentially PCI sensitive information for Enterprise customers\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst card = await client.cards.convertPhysical('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { shipping_address: {\n address1: '5 Broad Street',\n city: 'NEW YORK',\n country: 'USA',\n first_name: 'Janet',\n last_name: 'Yellen',\n postal_code: '10001',\n state: 'NY',\n} });\n\nconsole.log(card);\n```",
+ },
+ {
+ name: 'embed',
+ endpoint: '/v1/embed/card',
+ httpMethod: 'get',
+ summary: 'Embedded card UI',
+ description:
+ 'Handling full card PANs and CVV codes requires that you comply with the Payment Card Industry Data Security Standards (PCI DSS). Some clients choose to reduce their compliance obligations by leveraging our embedded card UI solution documented below.\n\nIn this setup, PANs and CVV codes are presented to the end-user via a card UI that we provide, optionally styled in the customer\'s branding using a specified css stylesheet. A user\'s browser makes the request directly to api.lithic.com, so card PANs and CVVs never touch the API customer\'s servers while full card data is displayed to their end-users. The response contains an HTML document (see Embedded Card UI or Changelog for upcoming changes in January). This means that the url for the request can be inserted straight into the `src` attribute of an iframe.\n\n```html\n\n```\n\nYou should compute the request payload on the server side. You can render it (or the whole iframe) on the server or make an ajax call from your front end code, but **do not ever embed your API key into front end code, as doing so introduces a serious security vulnerability**.\n',
+ stainlessPath: '(resource) cards > (method) embed',
+ qualified: 'client.cards.embed',
+ params: ['embed_request: string;', 'hmac: string;'],
+ response: 'string',
+ markdown:
+ "## embed\n\n`client.cards.embed(embed_request: string, hmac: string): string`\n\n**get** `/v1/embed/card`\n\nHandling full card PANs and CVV codes requires that you comply with the Payment Card Industry Data Security Standards (PCI DSS). Some clients choose to reduce their compliance obligations by leveraging our embedded card UI solution documented below.\n\nIn this setup, PANs and CVV codes are presented to the end-user via a card UI that we provide, optionally styled in the customer's branding using a specified css stylesheet. A user's browser makes the request directly to api.lithic.com, so card PANs and CVVs never touch the API customer's servers while full card data is displayed to their end-users. The response contains an HTML document (see Embedded Card UI or Changelog for upcoming changes in January). This means that the url for the request can be inserted straight into the `src` attribute of an iframe.\n\n```html\n\n```\n\nYou should compute the request payload on the server side. You can render it (or the whole iframe) on the server or make an ajax call from your front end code, but **do not ever embed your API key into front end code, as doing so introduces a serious security vulnerability**.\n\n\n### Parameters\n\n- `embed_request: string`\n A base64 encoded JSON string of an EmbedRequest to specify which card to load.\n\n- `hmac: string`\n SHA256 HMAC of the embed_request JSON string with base64 digest.\n\n### Returns\n\n- `string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.cards.embed({ embed_request: 'embed_request', hmac: 'hmac' });\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'provision',
+ endpoint: '/v1/cards/{card_token}/provision',
+ httpMethod: 'post',
+ summary: 'Provision card (Digital Wallet)',
+ description:
+ "Allow your cardholders to directly add payment cards to the device's digital wallet (e.g. Apple Pay) with one touch from your app.\n\nThis requires some additional setup and configuration. Please [Contact Us](https://lithic.com/contact) or your Customer Success representative for more information.\n",
+ stainlessPath: '(resource) cards > (method) provision',
+ qualified: 'client.cards.provision',
+ params: [
+ 'card_token: string;',
+ 'certificate?: string;',
+ 'client_device_id?: string;',
+ 'client_wallet_account_id?: string;',
+ "digital_wallet?: 'APPLE_PAY' | 'GOOGLE_PAY' | 'SAMSUNG_PAY';",
+ 'nonce?: string;',
+ 'nonce_signature?: string;',
+ ],
+ response:
+ '{ provisioning_payload?: string | { activationData?: string; encryptedData?: string; ephemeralPublicKey?: string; }; }',
+ markdown:
+ "## provision\n\n`client.cards.provision(card_token: string, certificate?: string, client_device_id?: string, client_wallet_account_id?: string, digital_wallet?: 'APPLE_PAY' | 'GOOGLE_PAY' | 'SAMSUNG_PAY', nonce?: string, nonce_signature?: string): { provisioning_payload?: string | provision_response; }`\n\n**post** `/v1/cards/{card_token}/provision`\n\nAllow your cardholders to directly add payment cards to the device's digital wallet (e.g. Apple Pay) with one touch from your app.\n\nThis requires some additional setup and configuration. Please [Contact Us](https://lithic.com/contact) or your Customer Success representative for more information.\n\n\n### Parameters\n\n- `card_token: string`\n\n- `certificate?: string`\n Only applicable if `digital_wallet` is `APPLE_PAY`. Omit to receive only `activationData` in the response. Apple's public leaf certificate. Base64 encoded in PEM format with headers `(-----BEGIN CERTIFICATE-----)` and trailers omitted. Provided by the device's wallet.\n\n- `client_device_id?: string`\n Only applicable if `digital_wallet` is `GOOGLE_PAY` or `SAMSUNG_PAY` and the card is on the Visa network. Stable device identification set by the wallet provider.\n\n- `client_wallet_account_id?: string`\n Only applicable if `digital_wallet` is `GOOGLE_PAY` or `SAMSUNG_PAY` and the card is on the Visa network. Consumer ID that identifies the wallet account holder entity.\n\n- `digital_wallet?: 'APPLE_PAY' | 'GOOGLE_PAY' | 'SAMSUNG_PAY'`\n Name of digital wallet provider.\n\n- `nonce?: string`\n Only applicable if `digital_wallet` is `APPLE_PAY`. Omit to receive only `activationData` in the response. Base64 cryptographic nonce provided by the device's wallet.\n\n- `nonce_signature?: string`\n Only applicable if `digital_wallet` is `APPLE_PAY`. Omit to receive only `activationData` in the response. Base64 cryptographic nonce provided by the device's wallet.\n\n### Returns\n\n- `{ provisioning_payload?: string | { activationData?: string; encryptedData?: string; ephemeralPublicKey?: string; }; }`\n\n - `provisioning_payload?: string | { activationData?: string; encryptedData?: string; ephemeralPublicKey?: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.cards.provision('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'reissue',
+ endpoint: '/v1/cards/{card_token}/reissue',
+ httpMethod: 'post',
+ summary: 'Reissue physical card',
+ description:
+ 'Initiate print and shipment of a duplicate physical card (e.g. card is physically damaged). The PAN, expiry, and CVC2 will remain the same and the original card can continue to be used until the new card is activated.\nOnly applies to cards of type `PHYSICAL`. A card can be reissued or renewed a total of 8 times.',
+ stainlessPath: '(resource) cards > (method) reissue',
+ qualified: 'client.cards.reissue',
+ params: [
+ 'card_token: string;',
+ 'carrier?: { qr_code_url?: string; };',
+ 'product_id?: string;',
+ 'shipping_address?: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; };',
+ "shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING';",
+ ],
+ response:
+ "{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }",
+ markdown:
+ "## reissue\n\n`client.cards.reissue(card_token: string, carrier?: { qr_code_url?: string; }, product_id?: string, shipping_address?: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }, shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING'): object`\n\n**post** `/v1/cards/{card_token}/reissue`\n\nInitiate print and shipment of a duplicate physical card (e.g. card is physically damaged). The PAN, expiry, and CVC2 will remain the same and the original card can continue to be used until the new card is activated.\nOnly applies to cards of type `PHYSICAL`. A card can be reissued or renewed a total of 8 times.\n\n### Parameters\n\n- `card_token: string`\n\n- `carrier?: { qr_code_url?: string; }`\n If omitted, the previous carrier will be used.\n - `qr_code_url?: string`\n QR code URL to display on the card carrier. The `qr_code_url` field requires your domain to be allowlisted by Lithic before use. Contact Support to configure your QR code domain\n\n- `product_id?: string`\n Specifies the configuration (e.g. physical card art) that the card should be manufactured with, and only applies to cards of type `PHYSICAL`. This must be configured with Lithic before use.\n\n\n- `shipping_address?: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }`\n If omitted, the previous shipping address will be used.\n - `address1: string`\n Valid USPS routable address.\n - `city: string`\n City\n - `country: string`\n Uppercase ISO 3166-1 alpha-3 three character abbreviation.\n - `first_name: string`\n Customer's first name. This will be the first name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `last_name: string`\n Customer's surname (family name). This will be the last name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `postal_code: string`\n Postal code (formerly zipcode). For US addresses, either five-digit postal code or nine-digit postal code (ZIP+4) using the format 12345-1234.\n - `state: string`\n Uppercase ISO 3166-2 two character abbreviation for US and CA. Optional with a limit of 24 characters for other countries.\n - `address2?: string`\n Unit number (if applicable).\n - `email?: string`\n Email address to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n - `line2_text?: string`\n Text to be printed on line two of the physical card. Use of this field requires additional permissions.\n - `phone_number?: string`\n Cardholder's phone number in E.164 format to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n\n- `shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING'`\n Shipping method for the card. Only applies to cards of type PHYSICAL.\nUse of options besides `STANDARD` require additional permissions.\n\n* `STANDARD` - USPS regular mail or similar international option, with no tracking\n* `STANDARD_WITH_TRACKING` - USPS regular mail or similar international option, with tracking\n* `PRIORITY` - USPS Priority, 1-3 day shipping, with tracking\n* `EXPRESS` - FedEx or UPS depending on card manufacturer, Express, 3-day shipping, with tracking\n* `2_DAY` - FedEx or UPS depending on card manufacturer, 2-day shipping, with tracking\n* `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking\n* `BULK` - Card will be shipped as part of a bulk fulfillment order. The shipping method and timeline are inherited from the parent bulk order.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details with potentially PCI sensitive information for Enterprise customers\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst card = await client.cards.reissue('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(card);\n```",
+ },
+ {
+ name: 'renew',
+ endpoint: '/v1/cards/{card_token}/renew',
+ httpMethod: 'post',
+ summary: 'Renew a card',
+ description:
+ 'Applies to card types `PHYSICAL` and `VIRTUAL`.\nFor `PHYSICAL`, creates a new card with the same card token and PAN, but updated expiry and CVC2 code. The original card will keep working for card-present transactions until the new card is activated. For card-not-present transactions, the original card details (expiry, CVC2) will also keep working until the new card is activated.\nA `PHYSICAL` card can be reissued or renewed a total of 8 times.\nFor `VIRTUAL`, the card will retain the same card token and PAN and receive an updated expiry and CVC2 code.\n`product_id`, `shipping_method`, `shipping_address`, `carrier` are only relevant for renewing `PHYSICAL` cards.',
+ stainlessPath: '(resource) cards > (method) renew',
+ qualified: 'client.cards.renew',
+ params: [
+ 'card_token: string;',
+ 'shipping_address: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; };',
+ 'carrier?: { qr_code_url?: string; };',
+ 'exp_month?: string;',
+ 'exp_year?: string;',
+ 'product_id?: string;',
+ "shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING';",
+ ],
+ response:
+ "{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }",
+ markdown:
+ "## renew\n\n`client.cards.renew(card_token: string, shipping_address: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }, carrier?: { qr_code_url?: string; }, exp_month?: string, exp_year?: string, product_id?: string, shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING'): object`\n\n**post** `/v1/cards/{card_token}/renew`\n\nApplies to card types `PHYSICAL` and `VIRTUAL`.\nFor `PHYSICAL`, creates a new card with the same card token and PAN, but updated expiry and CVC2 code. The original card will keep working for card-present transactions until the new card is activated. For card-not-present transactions, the original card details (expiry, CVC2) will also keep working until the new card is activated.\nA `PHYSICAL` card can be reissued or renewed a total of 8 times.\nFor `VIRTUAL`, the card will retain the same card token and PAN and receive an updated expiry and CVC2 code.\n`product_id`, `shipping_method`, `shipping_address`, `carrier` are only relevant for renewing `PHYSICAL` cards.\n\n### Parameters\n\n- `card_token: string`\n\n- `shipping_address: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }`\n The shipping address this card will be sent to.\n - `address1: string`\n Valid USPS routable address.\n - `city: string`\n City\n - `country: string`\n Uppercase ISO 3166-1 alpha-3 three character abbreviation.\n - `first_name: string`\n Customer's first name. This will be the first name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `last_name: string`\n Customer's surname (family name). This will be the last name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `postal_code: string`\n Postal code (formerly zipcode). For US addresses, either five-digit postal code or nine-digit postal code (ZIP+4) using the format 12345-1234.\n - `state: string`\n Uppercase ISO 3166-2 two character abbreviation for US and CA. Optional with a limit of 24 characters for other countries.\n - `address2?: string`\n Unit number (if applicable).\n - `email?: string`\n Email address to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n - `line2_text?: string`\n Text to be printed on line two of the physical card. Use of this field requires additional permissions.\n - `phone_number?: string`\n Cardholder's phone number in E.164 format to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n\n- `carrier?: { qr_code_url?: string; }`\n If omitted, the previous carrier will be used.\n - `qr_code_url?: string`\n QR code URL to display on the card carrier. The `qr_code_url` field requires your domain to be allowlisted by Lithic before use. Contact Support to configure your QR code domain\n\n- `exp_month?: string`\n Two digit (MM) expiry month. If neither `exp_month` nor `exp_year` is provided, an expiration date six years in the future will be generated.\n\n- `exp_year?: string`\n Four digit (yyyy) expiry year. If neither `exp_month` nor `exp_year` is provided, an expiration date six years in the future will be generated.\n\n- `product_id?: string`\n Specifies the configuration (e.g. physical card art) that the card should be manufactured with, and only applies to cards of type `PHYSICAL`. This must be configured with Lithic before use.\n\n\n- `shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING'`\n Shipping method for the card. Only applies to cards of type PHYSICAL.\nUse of options besides `STANDARD` require additional permissions.\n\n* `STANDARD` - USPS regular mail or similar international option, with no tracking\n* `STANDARD_WITH_TRACKING` - USPS regular mail or similar international option, with tracking\n* `PRIORITY` - USPS Priority, 1-3 day shipping, with tracking\n* `EXPRESS` - FedEx or UPS depending on card manufacturer, Express, 3-day shipping, with tracking\n* `2_DAY` - FedEx or UPS depending on card manufacturer, 2-day shipping, with tracking\n* `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking\n* `BULK` - Card will be shipped as part of a bulk fulfillment order. The shipping method and timeline are inherited from the parent bulk order.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details with potentially PCI sensitive information for Enterprise customers\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst card = await client.cards.renew('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { shipping_address: {\n address1: '5 Broad Street',\n city: 'NEW YORK',\n country: 'USA',\n first_name: 'Janet',\n last_name: 'Yellen',\n postal_code: '10001',\n state: 'NY',\n} });\n\nconsole.log(card);\n```",
+ },
+ {
+ name: 'retrieve_spend_limits',
+ endpoint: '/v1/cards/{card_token}/spend_limits',
+ httpMethod: 'get',
+ summary: "Get card's available spend limit",
+ description:
+ "Get a Card's available spend limit, which is based on the spend limit configured on the Card and the amount already spent over the spend limit's duration. For example, if the Card has a monthly spend limit of $1000 configured, and has spent $600 in the last month, the available spend limit returned would be $400.",
+ stainlessPath: '(resource) cards > (method) retrieve_spend_limits',
+ qualified: 'client.cards.retrieveSpendLimits',
+ params: ['card_token: string;'],
+ response:
+ '{ available_spend_limit: { annually?: number; forever?: number; monthly?: number; }; spend_limit?: { annually?: number; forever?: number; monthly?: number; }; spend_velocity?: { annually?: number; forever?: number; monthly?: number; }; }',
+ markdown:
+ "## retrieve_spend_limits\n\n`client.cards.retrieveSpendLimits(card_token: string): { available_spend_limit: object; spend_limit?: object; spend_velocity?: object; }`\n\n**get** `/v1/cards/{card_token}/spend_limits`\n\nGet a Card's available spend limit, which is based on the spend limit configured on the Card and the amount already spent over the spend limit's duration. For example, if the Card has a monthly spend limit of $1000 configured, and has spent $600 in the last month, the available spend limit returned would be $400.\n\n### Parameters\n\n- `card_token: string`\n\n### Returns\n\n- `{ available_spend_limit: { annually?: number; forever?: number; monthly?: number; }; spend_limit?: { annually?: number; forever?: number; monthly?: number; }; spend_velocity?: { annually?: number; forever?: number; monthly?: number; }; }`\n\n - `available_spend_limit: { annually?: number; forever?: number; monthly?: number; }`\n - `spend_limit?: { annually?: number; forever?: number; monthly?: number; }`\n - `spend_velocity?: { annually?: number; forever?: number; monthly?: number; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst cardSpendLimits = await client.cards.retrieveSpendLimits('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(cardSpendLimits);\n```",
+ },
+ {
+ name: 'search_by_pan',
+ endpoint: '/v1/cards/search_by_pan',
+ httpMethod: 'post',
+ summary: 'Search for card by PAN',
+ description:
+ 'Get card configuration such as spend limit and state. Customers must be PCI compliant to use this endpoint. Please contact [support@lithic.com](mailto:support@lithic.com) for questions.\n*Note: this is a `POST` endpoint because it is more secure to send sensitive data in a request body than in a URL.*',
+ stainlessPath: '(resource) cards > (method) search_by_pan',
+ qualified: 'client.cards.searchByPan',
+ params: ['pan: string;'],
+ response:
+ "{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }",
+ markdown:
+ "## search_by_pan\n\n`client.cards.searchByPan(pan: string): object`\n\n**post** `/v1/cards/search_by_pan`\n\nGet card configuration such as spend limit and state. Customers must be PCI compliant to use this endpoint. Please contact [support@lithic.com](mailto:support@lithic.com) for questions.\n*Note: this is a `POST` endpoint because it is more secure to send sensitive data in a request body than in a URL.*\n\n### Parameters\n\n- `pan: string`\n The PAN for the card being retrieved.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details with potentially PCI sensitive information for Enterprise customers\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst card = await client.cards.searchByPan({ pan: '4111111289144142' });\n\nconsole.log(card);\n```",
+ },
+ {
+ name: 'web_provision',
+ endpoint: '/v1/cards/{card_token}/web_provision',
+ httpMethod: 'post',
+ summary: 'Web Push Provision card (Digital Wallet)',
+ description:
+ "Allow your cardholders to directly add payment cards to the device's digital wallet from a browser on the web.\n\nThis requires some additional setup and configuration. Please [Contact Us](https://lithic.com/contact) or your Customer Success representative for more information.\n",
+ stainlessPath: '(resource) cards > (method) web_provision',
+ qualified: 'client.cards.webProvision',
+ params: [
+ 'card_token: string;',
+ 'client_device_id?: string;',
+ 'client_wallet_account_id?: string;',
+ "digital_wallet?: 'APPLE_PAY' | 'GOOGLE_PAY';",
+ 'server_session_id?: string;',
+ ],
+ response:
+ '{ jws: { header?: { kid?: string; }; payload?: string; protected?: string; signature?: string; }; state: string; } | { google_opc?: string; tsp_opc?: string; }',
+ markdown:
+ "## web_provision\n\n`client.cards.webProvision(card_token: string, client_device_id?: string, client_wallet_account_id?: string, digital_wallet?: 'APPLE_PAY' | 'GOOGLE_PAY', server_session_id?: string): { jws: object; state: string; } | { google_opc?: string; tsp_opc?: string; }`\n\n**post** `/v1/cards/{card_token}/web_provision`\n\nAllow your cardholders to directly add payment cards to the device's digital wallet from a browser on the web.\n\nThis requires some additional setup and configuration. Please [Contact Us](https://lithic.com/contact) or your Customer Success representative for more information.\n\n\n### Parameters\n\n- `card_token: string`\n\n- `client_device_id?: string`\n Only applicable if `digital_wallet` is GOOGLE_PAY. Google Pay Web Push Provisioning device identifier required for the tokenization flow\n\n- `client_wallet_account_id?: string`\n Only applicable if `digital_wallet` is GOOGLE_PAY. Google Pay Web Push Provisioning wallet account identifier required for the tokenization flow\n\n- `digital_wallet?: 'APPLE_PAY' | 'GOOGLE_PAY'`\n Name of digital wallet provider.\n\n- `server_session_id?: string`\n Only applicable if `digital_wallet` is GOOGLE_PAY. Google Pay Web Push Provisioning session identifier required for the FPAN flow.\n\n### Returns\n\n- `{ jws: { header?: { kid?: string; }; payload?: string; protected?: string; signature?: string; }; state: string; } | { google_opc?: string; tsp_opc?: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.cards.webProvision('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/cards/{card_token}/balances',
+ httpMethod: 'get',
+ summary: 'Get card balances',
+ description: 'Get the balances for a given card.',
+ stainlessPath: '(resource) cards.balances > (method) list',
+ qualified: 'client.cards.balances.list',
+ params: ['card_token: string;', 'balance_date?: string;', 'last_transaction_event_token?: string;'],
+ response:
+ "{ token: string; available_amount: number; created: string; currency: string; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; updated: string; }",
+ markdown:
+ "## list\n\n`client.cards.balances.list(card_token: string, balance_date?: string, last_transaction_event_token?: string): { token: string; available_amount: number; created: string; currency: string; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; updated: string; }`\n\n**get** `/v1/cards/{card_token}/balances`\n\nGet the balances for a given card.\n\n### Parameters\n\n- `card_token: string`\n\n- `balance_date?: string`\n UTC date of the balance to retrieve. Defaults to latest available balance\n\n- `last_transaction_event_token?: string`\n Balance after a given financial event occured.\nFor example, passing the event_token of a $5 CARD_CLEARING financial event will return a balance decreased by $5\n\n\n### Returns\n\n- `{ token: string; available_amount: number; created: string; currency: string; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; updated: string; }`\n Balance of a Financial Account\n\n - `token: string`\n - `available_amount: number`\n - `created: string`\n - `currency: string`\n - `last_transaction_event_token: string`\n - `last_transaction_token: string`\n - `pending_amount: number`\n - `total_amount: number`\n - `type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const financialAccountBalance of client.cards.balances.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(financialAccountBalance);\n}\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/cards/{card_token}/financial_transactions/{financial_transaction_token}',
+ httpMethod: 'get',
+ summary: 'Get card financial transaction',
+ description: 'Get the card financial transaction for the provided token.',
+ stainlessPath: '(resource) cards.financial_transactions > (method) retrieve',
+ qualified: 'client.cards.financialTransactions.retrieve',
+ params: ['card_token: string;', 'financial_transaction_token: string;'],
+ response:
+ "{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }",
+ markdown:
+ "## retrieve\n\n`client.cards.financialTransactions.retrieve(card_token: string, financial_transaction_token: string): { token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: financial_event[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n**get** `/v1/cards/{card_token}/financial_transactions/{financial_transaction_token}`\n\nGet the card financial transaction for the provided token.\n\n### Parameters\n\n- `card_token: string`\n\n- `financial_transaction_token: string`\n\n### Returns\n\n- `{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n - `token: string`\n - `category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'`\n - `created: string`\n - `currency: string`\n - `descriptor: string`\n - `events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialTransaction = await client.cards.financialTransactions.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { card_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(financialTransaction);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/cards/{card_token}/financial_transactions',
+ httpMethod: 'get',
+ summary: 'List card financial transactions',
+ description: 'List the financial transactions for a given card.',
+ stainlessPath: '(resource) cards.financial_transactions > (method) list',
+ qualified: 'client.cards.financialTransactions.list',
+ params: [
+ 'card_token: string;',
+ 'begin?: string;',
+ "category?: 'CARD' | 'TRANSFER';",
+ 'end?: string;',
+ 'ending_before?: string;',
+ "result?: 'APPROVED' | 'DECLINED';",
+ 'starting_after?: string;',
+ "status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED';",
+ ],
+ response:
+ "{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }",
+ markdown:
+ "## list\n\n`client.cards.financialTransactions.list(card_token: string, begin?: string, category?: 'CARD' | 'TRANSFER', end?: string, ending_before?: string, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'): { token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: financial_event[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n**get** `/v1/cards/{card_token}/financial_transactions`\n\nList the financial transactions for a given card.\n\n### Parameters\n\n- `card_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `category?: 'CARD' | 'TRANSFER'`\n Financial Transaction category to be returned.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `result?: 'APPROVED' | 'DECLINED'`\n Financial Transaction result to be returned.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'`\n Financial Transaction status to be returned.\n\n### Returns\n\n- `{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n - `token: string`\n - `category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'`\n - `created: string`\n - `currency: string`\n - `descriptor: string`\n - `events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const financialTransaction of client.cards.financialTransactions.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(financialTransaction);\n}\n```",
+ },
+ {
+ name: 'create',
+ endpoint: '/v1/card_bulk_orders',
+ httpMethod: 'post',
+ summary: 'Create bulk order',
+ description:
+ 'Create a new bulk order for physical card shipments. Cards can be added to the order via the POST /v1/cards endpoint by specifying the bulk_order_token. Lock the order via PATCH /v1/card_bulk_orders/{bulk_order_token} to prepare for shipment. Please work with your Customer Success Manager and card personalization bureau to ensure bulk shipping is supported for your program.',
+ stainlessPath: '(resource) card_bulk_orders > (method) create',
+ qualified: 'client.cardBulkOrders.create',
+ params: [
+ 'customer_product_id: string;',
+ 'shipping_address: object;',
+ "shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS';",
+ ],
+ response:
+ "{ token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }",
+ markdown:
+ "## create\n\n`client.cardBulkOrders.create(customer_product_id: string, shipping_address: object, shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'): { token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n\n**post** `/v1/card_bulk_orders`\n\nCreate a new bulk order for physical card shipments. Cards can be added to the order via the POST /v1/cards endpoint by specifying the bulk_order_token. Lock the order via PATCH /v1/card_bulk_orders/{bulk_order_token} to prepare for shipment. Please work with your Customer Success Manager and card personalization bureau to ensure bulk shipping is supported for your program.\n\n### Parameters\n\n- `customer_product_id: string`\n Customer-specified product configuration for physical card manufacturing. This must be configured with Lithic before use\n\n- `shipping_address: object`\n Shipping address for all cards in this bulk order\n\n- `shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'`\n Shipping method for all cards in this bulk order. BULK_PRIORITY, BULK_2_DAY, and BULK_EXPRESS are only available with Perfect Plastic Printing\n\n### Returns\n\n- `{ token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n Represents a bulk order for physical card shipments\n\n - `token: string`\n - `card_tokens: string[]`\n - `created: string`\n - `customer_product_id: string`\n - `shipping_address: object`\n - `shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'`\n - `status: 'OPEN' | 'LOCKED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst cardBulkOrder = await client.cardBulkOrders.create({\n customer_product_id: 'custom-card-design-123',\n shipping_address: {\n address1: '123 Main Street',\n city: 'NEW YORK',\n country: 'USA',\n first_name: 'Johnny',\n last_name: 'Appleseed',\n postal_code: '10001',\n state: 'NY',\n},\n shipping_method: 'BULK_EXPEDITED',\n});\n\nconsole.log(cardBulkOrder);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/card_bulk_orders/{bulk_order_token}',
+ httpMethod: 'get',
+ summary: 'Get bulk order',
+ description: 'Retrieve a specific bulk order by token',
+ stainlessPath: '(resource) card_bulk_orders > (method) retrieve',
+ qualified: 'client.cardBulkOrders.retrieve',
+ params: ['bulk_order_token: string;'],
+ response:
+ "{ token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }",
+ markdown:
+ "## retrieve\n\n`client.cardBulkOrders.retrieve(bulk_order_token: string): { token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n\n**get** `/v1/card_bulk_orders/{bulk_order_token}`\n\nRetrieve a specific bulk order by token\n\n### Parameters\n\n- `bulk_order_token: string`\n\n### Returns\n\n- `{ token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n Represents a bulk order for physical card shipments\n\n - `token: string`\n - `card_tokens: string[]`\n - `created: string`\n - `customer_product_id: string`\n - `shipping_address: object`\n - `shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'`\n - `status: 'OPEN' | 'LOCKED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst cardBulkOrder = await client.cardBulkOrders.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(cardBulkOrder);\n```",
+ },
+ {
+ name: 'update',
+ endpoint: '/v1/card_bulk_orders/{bulk_order_token}',
+ httpMethod: 'patch',
+ summary: 'Update bulk order',
+ description:
+ 'Update a bulk order. Primarily used to lock the order, preventing additional cards from being added',
+ stainlessPath: '(resource) card_bulk_orders > (method) update',
+ qualified: 'client.cardBulkOrders.update',
+ params: ['bulk_order_token: string;', "status: 'LOCKED';"],
+ response:
+ "{ token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }",
+ markdown:
+ "## update\n\n`client.cardBulkOrders.update(bulk_order_token: string, status: 'LOCKED'): { token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n\n**patch** `/v1/card_bulk_orders/{bulk_order_token}`\n\nUpdate a bulk order. Primarily used to lock the order, preventing additional cards from being added\n\n### Parameters\n\n- `bulk_order_token: string`\n\n- `status: 'LOCKED'`\n Status to update the bulk order to. Use LOCKED to finalize the order\n\n### Returns\n\n- `{ token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n Represents a bulk order for physical card shipments\n\n - `token: string`\n - `card_tokens: string[]`\n - `created: string`\n - `customer_product_id: string`\n - `shipping_address: object`\n - `shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'`\n - `status: 'OPEN' | 'LOCKED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst cardBulkOrder = await client.cardBulkOrders.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { status: 'LOCKED' });\n\nconsole.log(cardBulkOrder);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/card_bulk_orders',
+ httpMethod: 'get',
+ summary: 'List bulk orders',
+ description: 'List bulk orders for physical card shipments',
+ stainlessPath: '(resource) card_bulk_orders > (method) list',
+ qualified: 'client.cardBulkOrders.list',
+ params: [
+ 'begin?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ ],
+ response:
+ "{ token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }",
+ markdown:
+ "## list\n\n`client.cardBulkOrders.list(begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n\n**get** `/v1/card_bulk_orders`\n\nList bulk orders for physical card shipments\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n Represents a bulk order for physical card shipments\n\n - `token: string`\n - `card_tokens: string[]`\n - `created: string`\n - `customer_product_id: string`\n - `shipping_address: object`\n - `shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'`\n - `status: 'OPEN' | 'LOCKED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const cardBulkOrder of client.cardBulkOrders.list()) {\n console.log(cardBulkOrder);\n}\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/balances',
+ httpMethod: 'get',
+ summary: 'List balances',
+ description: 'Get the balances for a program, business, or a given end-user account',
+ stainlessPath: '(resource) balances > (method) list',
+ qualified: 'client.balances.list',
+ params: [
+ 'account_token?: string;',
+ 'balance_date?: string;',
+ 'business_account_token?: string;',
+ "financial_account_type?: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY';",
+ ],
+ response:
+ "{ available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }",
+ markdown:
+ "## list\n\n`client.balances.list(account_token?: string, balance_date?: string, business_account_token?: string, financial_account_type?: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'): { available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }`\n\n**get** `/v1/balances`\n\nGet the balances for a program, business, or a given end-user account\n\n### Parameters\n\n- `account_token?: string`\n List balances for all financial accounts of a given account_token.\n\n- `balance_date?: string`\n UTC date and time of the balances to retrieve. Defaults to latest available balances\n\n- `business_account_token?: string`\n List balances for all financial accounts of a given business_account_token.\n\n- `financial_account_type?: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'`\n List balances for a given Financial Account type.\n\n### Returns\n\n- `{ available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }`\n Balance\n\n - `available_amount: number`\n - `created: string`\n - `currency: string`\n - `financial_account_token: string`\n - `financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'`\n - `last_transaction_event_token: string`\n - `last_transaction_token: string`\n - `pending_amount: number`\n - `total_amount: number`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const balance of client.balances.list()) {\n console.log(balance);\n}\n```",
+ },
+ {
+ name: 'create',
+ endpoint: '/v1/disputes',
+ httpMethod: 'post',
+ summary: 'Request chargeback',
+ description: 'Request a chargeback.',
+ stainlessPath: '(resource) disputes > (method) create',
+ qualified: 'client.disputes.create',
+ params: [
+ 'amount: number;',
+ 'reason: string;',
+ 'transaction_token: string;',
+ 'customer_filed_date?: string;',
+ 'customer_note?: string;',
+ ],
+ response:
+ '{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }',
+ markdown:
+ "## create\n\n`client.disputes.create(amount: number, reason: string, transaction_token: string, customer_filed_date?: string, customer_note?: string): { token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n\n**post** `/v1/disputes`\n\nRequest a chargeback.\n\n### Parameters\n\n- `amount: number`\n Amount for chargeback\n\n- `reason: string`\n Reason for chargeback\n\n- `transaction_token: string`\n Transaction for chargeback\n\n- `customer_filed_date?: string`\n Date the customer filed the chargeback request\n\n- `customer_note?: string`\n Customer description\n\n### Returns\n\n- `{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n Dispute.\n\n - `token: string`\n - `amount: number`\n - `arbitration_date: string`\n - `created: string`\n - `customer_filed_date: string`\n - `customer_note: string`\n - `network_claim_ids: string[]`\n - `network_filed_date: string`\n - `network_reason_code: string`\n - `prearbitration_date: string`\n - `primary_claim_id: string`\n - `reason: string`\n - `representment_date: string`\n - `resolution_date: string`\n - `resolution_note: string`\n - `resolution_reason: string`\n - `status: string`\n - `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst dispute = await client.disputes.create({\n amount: 10000,\n reason: 'FRAUD_CARD_PRESENT',\n transaction_token: '12345624-aa69-4cbc-a946-30d90181b621',\n});\n\nconsole.log(dispute);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/disputes/{dispute_token}',
+ httpMethod: 'get',
+ summary: 'Get chargeback request',
+ description: 'Get chargeback request.',
+ stainlessPath: '(resource) disputes > (method) retrieve',
+ qualified: 'client.disputes.retrieve',
+ params: ['dispute_token: string;'],
+ response:
+ '{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }',
+ markdown:
+ "## retrieve\n\n`client.disputes.retrieve(dispute_token: string): { token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n\n**get** `/v1/disputes/{dispute_token}`\n\nGet chargeback request.\n\n### Parameters\n\n- `dispute_token: string`\n\n### Returns\n\n- `{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n Dispute.\n\n - `token: string`\n - `amount: number`\n - `arbitration_date: string`\n - `created: string`\n - `customer_filed_date: string`\n - `customer_note: string`\n - `network_claim_ids: string[]`\n - `network_filed_date: string`\n - `network_reason_code: string`\n - `prearbitration_date: string`\n - `primary_claim_id: string`\n - `reason: string`\n - `representment_date: string`\n - `resolution_date: string`\n - `resolution_note: string`\n - `resolution_reason: string`\n - `status: string`\n - `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst dispute = await client.disputes.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(dispute);\n```",
+ },
+ {
+ name: 'update',
+ endpoint: '/v1/disputes/{dispute_token}',
+ httpMethod: 'patch',
+ summary: 'Update chargeback request',
+ description: 'Update chargeback request. Can only be modified if status is `NEW`.',
+ stainlessPath: '(resource) disputes > (method) update',
+ qualified: 'client.disputes.update',
+ params: [
+ 'dispute_token: string;',
+ 'amount?: number;',
+ 'customer_filed_date?: string;',
+ 'customer_note?: string;',
+ 'reason?: string;',
+ ],
+ response:
+ '{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }',
+ markdown:
+ "## update\n\n`client.disputes.update(dispute_token: string, amount?: number, customer_filed_date?: string, customer_note?: string, reason?: string): { token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n\n**patch** `/v1/disputes/{dispute_token}`\n\nUpdate chargeback request. Can only be modified if status is `NEW`.\n\n### Parameters\n\n- `dispute_token: string`\n\n- `amount?: number`\n Amount for chargeback\n\n- `customer_filed_date?: string`\n Date the customer filed the chargeback request\n\n- `customer_note?: string`\n Customer description\n\n- `reason?: string`\n Reason for chargeback\n\n### Returns\n\n- `{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n Dispute.\n\n - `token: string`\n - `amount: number`\n - `arbitration_date: string`\n - `created: string`\n - `customer_filed_date: string`\n - `customer_note: string`\n - `network_claim_ids: string[]`\n - `network_filed_date: string`\n - `network_reason_code: string`\n - `prearbitration_date: string`\n - `primary_claim_id: string`\n - `reason: string`\n - `representment_date: string`\n - `resolution_date: string`\n - `resolution_note: string`\n - `resolution_reason: string`\n - `status: string`\n - `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst dispute = await client.disputes.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(dispute);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/disputes',
+ httpMethod: 'get',
+ summary: 'List chargeback requests',
+ description: 'List chargeback requests.',
+ stainlessPath: '(resource) disputes > (method) list',
+ qualified: 'client.disputes.list',
+ params: [
+ 'begin?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ 'status?: string;',
+ 'transaction_tokens?: string[];',
+ ],
+ response:
+ '{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }',
+ markdown:
+ "## list\n\n`client.disputes.list(begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string, status?: string, transaction_tokens?: string[]): { token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n\n**get** `/v1/disputes`\n\nList chargeback requests.\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: string`\n Filter by status.\n\n- `transaction_tokens?: string[]`\n Transaction tokens to filter by.\n\n### Returns\n\n- `{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n Dispute.\n\n - `token: string`\n - `amount: number`\n - `arbitration_date: string`\n - `created: string`\n - `customer_filed_date: string`\n - `customer_note: string`\n - `network_claim_ids: string[]`\n - `network_filed_date: string`\n - `network_reason_code: string`\n - `prearbitration_date: string`\n - `primary_claim_id: string`\n - `reason: string`\n - `representment_date: string`\n - `resolution_date: string`\n - `resolution_note: string`\n - `resolution_reason: string`\n - `status: string`\n - `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const dispute of client.disputes.list()) {\n console.log(dispute);\n}\n```",
+ },
+ {
+ name: 'delete',
+ endpoint: '/v1/disputes/{dispute_token}',
+ httpMethod: 'delete',
+ summary: 'Withdraw chargeback request',
+ description: 'Withdraw chargeback request.',
+ stainlessPath: '(resource) disputes > (method) delete',
+ qualified: 'client.disputes.delete',
+ params: ['dispute_token: string;'],
+ response:
+ '{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }',
+ markdown:
+ "## delete\n\n`client.disputes.delete(dispute_token: string): { token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n\n**delete** `/v1/disputes/{dispute_token}`\n\nWithdraw chargeback request.\n\n### Parameters\n\n- `dispute_token: string`\n\n### Returns\n\n- `{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n Dispute.\n\n - `token: string`\n - `amount: number`\n - `arbitration_date: string`\n - `created: string`\n - `customer_filed_date: string`\n - `customer_note: string`\n - `network_claim_ids: string[]`\n - `network_filed_date: string`\n - `network_reason_code: string`\n - `prearbitration_date: string`\n - `primary_claim_id: string`\n - `reason: string`\n - `representment_date: string`\n - `resolution_date: string`\n - `resolution_note: string`\n - `resolution_reason: string`\n - `status: string`\n - `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst dispute = await client.disputes.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(dispute);\n```",
+ },
+ {
+ name: 'delete_evidence',
+ endpoint: '/v1/disputes/{dispute_token}/evidences/{evidence_token}',
+ httpMethod: 'delete',
+ summary: 'Delete evidence',
+ description:
+ 'Soft delete evidence for a chargeback request. Evidence will not be reviewed or submitted by Lithic after it is withdrawn.',
+ stainlessPath: '(resource) disputes > (method) delete_evidence',
+ qualified: 'client.disputes.deleteEvidence',
+ params: ['dispute_token: string;', 'evidence_token: string;'],
+ response:
+ "{ token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }",
+ markdown:
+ "## delete_evidence\n\n`client.disputes.deleteEvidence(dispute_token: string, evidence_token: string): { token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n\n**delete** `/v1/disputes/{dispute_token}/evidences/{evidence_token}`\n\nSoft delete evidence for a chargeback request. Evidence will not be reviewed or submitted by Lithic after it is withdrawn.\n\n### Parameters\n\n- `dispute_token: string`\n\n- `evidence_token: string`\n\n### Returns\n\n- `{ token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n Dispute evidence.\n\n - `token: string`\n - `created: string`\n - `dispute_token: string`\n - `upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'`\n - `download_url?: string`\n - `filename?: string`\n - `upload_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst disputeEvidence = await client.disputes.deleteEvidence('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { dispute_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(disputeEvidence);\n```",
+ },
+ {
+ name: 'initiate_evidence_upload',
+ endpoint: '/v1/disputes/{dispute_token}/evidences',
+ httpMethod: 'post',
+ summary: 'Upload evidence',
+ description:
+ 'Use this endpoint to upload evidence for a chargeback request. It will return a URL to upload your documents to. The URL will expire in 30 minutes.\n\nUploaded documents must either be a `jpg`, `png` or `pdf` file, and each must be less than 5 GiB.\n',
+ stainlessPath: '(resource) disputes > (method) initiate_evidence_upload',
+ qualified: 'client.disputes.initiateEvidenceUpload',
+ params: ['dispute_token: string;', 'filename?: string;'],
+ response:
+ "{ token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }",
+ markdown:
+ "## initiate_evidence_upload\n\n`client.disputes.initiateEvidenceUpload(dispute_token: string, filename?: string): { token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n\n**post** `/v1/disputes/{dispute_token}/evidences`\n\nUse this endpoint to upload evidence for a chargeback request. It will return a URL to upload your documents to. The URL will expire in 30 minutes.\n\nUploaded documents must either be a `jpg`, `png` or `pdf` file, and each must be less than 5 GiB.\n\n\n### Parameters\n\n- `dispute_token: string`\n\n- `filename?: string`\n Filename of the evidence.\n\n### Returns\n\n- `{ token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n Dispute evidence.\n\n - `token: string`\n - `created: string`\n - `dispute_token: string`\n - `upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'`\n - `download_url?: string`\n - `filename?: string`\n - `upload_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst disputeEvidence = await client.disputes.initiateEvidenceUpload('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(disputeEvidence);\n```",
+ },
+ {
+ name: 'list_evidences',
+ endpoint: '/v1/disputes/{dispute_token}/evidences',
+ httpMethod: 'get',
+ summary: 'List evidence',
+ description: 'List evidence for a chargeback request.',
+ stainlessPath: '(resource) disputes > (method) list_evidences',
+ qualified: 'client.disputes.listEvidences',
+ params: [
+ 'dispute_token: string;',
+ 'begin?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ ],
+ response:
+ "{ token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }",
+ markdown:
+ "## list_evidences\n\n`client.disputes.listEvidences(dispute_token: string, begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n\n**get** `/v1/disputes/{dispute_token}/evidences`\n\nList evidence for a chargeback request.\n\n### Parameters\n\n- `dispute_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n Dispute evidence.\n\n - `token: string`\n - `created: string`\n - `dispute_token: string`\n - `upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'`\n - `download_url?: string`\n - `filename?: string`\n - `upload_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const disputeEvidence of client.disputes.listEvidences('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(disputeEvidence);\n}\n```",
+ },
+ {
+ name: 'retrieve_evidence',
+ endpoint: '/v1/disputes/{dispute_token}/evidences/{evidence_token}',
+ httpMethod: 'get',
+ summary: 'Get evidence',
+ description: 'Get evidence for a chargeback request.',
+ stainlessPath: '(resource) disputes > (method) retrieve_evidence',
+ qualified: 'client.disputes.retrieveEvidence',
+ params: ['dispute_token: string;', 'evidence_token: string;'],
+ response:
+ "{ token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }",
+ markdown:
+ "## retrieve_evidence\n\n`client.disputes.retrieveEvidence(dispute_token: string, evidence_token: string): { token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n\n**get** `/v1/disputes/{dispute_token}/evidences/{evidence_token}`\n\nGet evidence for a chargeback request.\n\n### Parameters\n\n- `dispute_token: string`\n\n- `evidence_token: string`\n\n### Returns\n\n- `{ token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n Dispute evidence.\n\n - `token: string`\n - `created: string`\n - `dispute_token: string`\n - `upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'`\n - `download_url?: string`\n - `filename?: string`\n - `upload_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst disputeEvidence = await client.disputes.retrieveEvidence('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { dispute_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(disputeEvidence);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v2/disputes/{dispute_token}',
+ httpMethod: 'get',
+ summary: 'Retrieve a dispute',
+ description: 'Retrieves a specific dispute by its token.',
+ stainlessPath: '(resource) disputes_v2 > (method) retrieve',
+ qualified: 'client.disputesV2.retrieve',
+ params: ['dispute_token: string;'],
+ response:
+ "{ token: string; account_token: string; card_token: string; case_id: string; created: string; currency: string; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; events: { token: string; created: string; data: object | object | object; type: 'WORKFLOW' | 'FINANCIAL' | 'CARDHOLDER_LIABILITY'; }[]; liability_allocation: { denied_amount: number; original_amount: number; recovered_amount: number; remaining_amount: number; written_off_amount: number; }; merchant: object; network: 'VISA' | 'MASTERCARD'; status: 'OPEN' | 'CLOSED'; transaction_series: { related_transaction_event_token: string; related_transaction_token: string; type: 'DISPUTE'; }; updated: string; }",
+ markdown:
+ "## retrieve\n\n`client.disputesV2.retrieve(dispute_token: string): { token: string; account_token: string; card_token: string; case_id: string; created: string; currency: string; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; events: object[]; liability_allocation: object; merchant: merchant; network: 'VISA' | 'MASTERCARD'; status: 'OPEN' | 'CLOSED'; transaction_series: object; updated: string; }`\n\n**get** `/v2/disputes/{dispute_token}`\n\nRetrieves a specific dispute by its token.\n\n### Parameters\n\n- `dispute_token: string`\n\n### Returns\n\n- `{ token: string; account_token: string; card_token: string; case_id: string; created: string; currency: string; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; events: { token: string; created: string; data: { action: 'OPENED' | 'CLOSED' | 'REOPENED'; amount: number; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; reason: string; stage: 'CLAIM'; type: 'WORKFLOW'; } | { amount: number; polarity: 'CREDIT' | 'DEBIT'; stage: 'CHARGEBACK' | 'REPRESENTMENT' | 'PREARBITRATION' | 'ARBITRATION' | 'COLLABORATION'; type: 'FINANCIAL'; } | { action: 'PROVISIONAL_CREDIT_GRANTED' | 'PROVISIONAL_CREDIT_REVERSED' | 'WRITTEN_OFF'; amount: number; reason: string; type: 'CARDHOLDER_LIABILITY'; }; type: 'WORKFLOW' | 'FINANCIAL' | 'CARDHOLDER_LIABILITY'; }[]; liability_allocation: { denied_amount: number; original_amount: number; recovered_amount: number; remaining_amount: number; written_off_amount: number; }; merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }; network: 'VISA' | 'MASTERCARD'; status: 'OPEN' | 'CLOSED'; transaction_series: { related_transaction_event_token: string; related_transaction_token: string; type: 'DISPUTE'; }; updated: string; }`\n The Dispute object tracks the progression of a dispute throughout its lifecycle.\n\n - `token: string`\n - `account_token: string`\n - `card_token: string`\n - `case_id: string`\n - `created: string`\n - `currency: string`\n - `disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'`\n - `events: { token: string; created: string; data: { action: 'OPENED' | 'CLOSED' | 'REOPENED'; amount: number; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; reason: string; stage: 'CLAIM'; type: 'WORKFLOW'; } | { amount: number; polarity: 'CREDIT' | 'DEBIT'; stage: 'CHARGEBACK' | 'REPRESENTMENT' | 'PREARBITRATION' | 'ARBITRATION' | 'COLLABORATION'; type: 'FINANCIAL'; } | { action: 'PROVISIONAL_CREDIT_GRANTED' | 'PROVISIONAL_CREDIT_REVERSED' | 'WRITTEN_OFF'; amount: number; reason: string; type: 'CARDHOLDER_LIABILITY'; }; type: 'WORKFLOW' | 'FINANCIAL' | 'CARDHOLDER_LIABILITY'; }[]`\n - `liability_allocation: { denied_amount: number; original_amount: number; recovered_amount: number; remaining_amount: number; written_off_amount: number; }`\n - `merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }`\n - `network: 'VISA' | 'MASTERCARD'`\n - `status: 'OPEN' | 'CLOSED'`\n - `transaction_series: { related_transaction_event_token: string; related_transaction_token: string; type: 'DISPUTE'; }`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst disputeV2 = await client.disputesV2.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(disputeV2);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v2/disputes',
+ httpMethod: 'get',
+ summary: 'List disputes',
+ description: 'Returns a paginated list of disputes.',
+ stainlessPath: '(resource) disputes_v2 > (method) list',
+ qualified: 'client.disputesV2.list',
+ params: [
+ 'account_token?: string;',
+ 'begin?: string;',
+ 'card_token?: string;',
+ 'disputed_transaction_token?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ ],
+ response:
+ "{ token: string; account_token: string; card_token: string; case_id: string; created: string; currency: string; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; events: { token: string; created: string; data: object | object | object; type: 'WORKFLOW' | 'FINANCIAL' | 'CARDHOLDER_LIABILITY'; }[]; liability_allocation: { denied_amount: number; original_amount: number; recovered_amount: number; remaining_amount: number; written_off_amount: number; }; merchant: object; network: 'VISA' | 'MASTERCARD'; status: 'OPEN' | 'CLOSED'; transaction_series: { related_transaction_event_token: string; related_transaction_token: string; type: 'DISPUTE'; }; updated: string; }",
+ markdown:
+ "## list\n\n`client.disputesV2.list(account_token?: string, begin?: string, card_token?: string, disputed_transaction_token?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; account_token: string; card_token: string; case_id: string; created: string; currency: string; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; events: object[]; liability_allocation: object; merchant: merchant; network: 'VISA' | 'MASTERCARD'; status: 'OPEN' | 'CLOSED'; transaction_series: object; updated: string; }`\n\n**get** `/v2/disputes`\n\nReturns a paginated list of disputes.\n\n### Parameters\n\n- `account_token?: string`\n Filter by account token.\n\n- `begin?: string`\n RFC 3339 timestamp for filtering by created date, inclusive.\n\n- `card_token?: string`\n Filter by card token.\n\n- `disputed_transaction_token?: string`\n Filter by the token of the transaction being disputed. Corresponds with transaction_series.related_transaction_token in the Dispute.\n\n- `end?: string`\n RFC 3339 timestamp for filtering by created date, inclusive.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Number of items to return.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_token: string; card_token: string; case_id: string; created: string; currency: string; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; events: { token: string; created: string; data: { action: 'OPENED' | 'CLOSED' | 'REOPENED'; amount: number; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; reason: string; stage: 'CLAIM'; type: 'WORKFLOW'; } | { amount: number; polarity: 'CREDIT' | 'DEBIT'; stage: 'CHARGEBACK' | 'REPRESENTMENT' | 'PREARBITRATION' | 'ARBITRATION' | 'COLLABORATION'; type: 'FINANCIAL'; } | { action: 'PROVISIONAL_CREDIT_GRANTED' | 'PROVISIONAL_CREDIT_REVERSED' | 'WRITTEN_OFF'; amount: number; reason: string; type: 'CARDHOLDER_LIABILITY'; }; type: 'WORKFLOW' | 'FINANCIAL' | 'CARDHOLDER_LIABILITY'; }[]; liability_allocation: { denied_amount: number; original_amount: number; recovered_amount: number; remaining_amount: number; written_off_amount: number; }; merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }; network: 'VISA' | 'MASTERCARD'; status: 'OPEN' | 'CLOSED'; transaction_series: { related_transaction_event_token: string; related_transaction_token: string; type: 'DISPUTE'; }; updated: string; }`\n The Dispute object tracks the progression of a dispute throughout its lifecycle.\n\n - `token: string`\n - `account_token: string`\n - `card_token: string`\n - `case_id: string`\n - `created: string`\n - `currency: string`\n - `disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'`\n - `events: { token: string; created: string; data: { action: 'OPENED' | 'CLOSED' | 'REOPENED'; amount: number; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; reason: string; stage: 'CLAIM'; type: 'WORKFLOW'; } | { amount: number; polarity: 'CREDIT' | 'DEBIT'; stage: 'CHARGEBACK' | 'REPRESENTMENT' | 'PREARBITRATION' | 'ARBITRATION' | 'COLLABORATION'; type: 'FINANCIAL'; } | { action: 'PROVISIONAL_CREDIT_GRANTED' | 'PROVISIONAL_CREDIT_REVERSED' | 'WRITTEN_OFF'; amount: number; reason: string; type: 'CARDHOLDER_LIABILITY'; }; type: 'WORKFLOW' | 'FINANCIAL' | 'CARDHOLDER_LIABILITY'; }[]`\n - `liability_allocation: { denied_amount: number; original_amount: number; recovered_amount: number; remaining_amount: number; written_off_amount: number; }`\n - `merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }`\n - `network: 'VISA' | 'MASTERCARD'`\n - `status: 'OPEN' | 'CLOSED'`\n - `transaction_series: { related_transaction_event_token: string; related_transaction_token: string; type: 'DISPUTE'; }`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const disputeV2 of client.disputesV2.list()) {\n console.log(disputeV2);\n}\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/events/{event_token}',
+ httpMethod: 'get',
+ summary: 'Get event',
+ description: 'Get an event.',
+ stainlessPath: '(resource) events > (method) retrieve',
+ qualified: 'client.events.retrieve',
+ params: ['event_token: string;'],
+ response: '{ token: string; created: string; event_type: string; payload: object; }',
+ markdown:
+ "## retrieve\n\n`client.events.retrieve(event_token: string): { token: string; created: string; event_type: string; payload: object; }`\n\n**get** `/v1/events/{event_token}`\n\nGet an event.\n\n### Parameters\n\n- `event_token: string`\n\n### Returns\n\n- `{ token: string; created: string; event_type: string; payload: object; }`\n A single event that affects the transaction state and lifecycle.\n\n - `token: string`\n - `created: string`\n - `event_type: string`\n - `payload: object`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst event = await client.events.retrieve('event_token');\n\nconsole.log(event);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/events',
+ httpMethod: 'get',
+ summary: 'List events',
+ description: 'List all events.',
+ stainlessPath: '(resource) events > (method) list',
+ qualified: 'client.events.list',
+ params: [
+ 'begin?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'event_types?: string[];',
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ 'with_content?: boolean;',
+ ],
+ response: '{ token: string; created: string; event_type: string; payload: object; }',
+ markdown:
+ "## list\n\n`client.events.list(begin?: string, end?: string, ending_before?: string, event_types?: string[], page_size?: number, starting_after?: string, with_content?: boolean): { token: string; created: string; event_type: string; payload: object; }`\n\n**get** `/v1/events`\n\nList all events.\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `event_types?: string[]`\n Event types to filter events by.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `with_content?: boolean`\n Whether to include the event payload content in the response.\n\n### Returns\n\n- `{ token: string; created: string; event_type: string; payload: object; }`\n A single event that affects the transaction state and lifecycle.\n\n - `token: string`\n - `created: string`\n - `event_type: string`\n - `payload: object`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const event of client.events.list()) {\n console.log(event);\n}\n```",
+ },
+ {
+ name: 'list_attempts',
+ endpoint: '/v1/events/{event_token}/attempts',
+ httpMethod: 'get',
+ summary: 'List message attempts for an event',
+ description: 'List all the message attempts for a given event.',
+ stainlessPath: '(resource) events > (method) list_attempts',
+ qualified: 'client.events.listAttempts',
+ params: [
+ 'event_token: string;',
+ 'begin?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ "status?: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS';",
+ ],
+ response:
+ "{ token: string; created: string; event_subscription_token: string; event_token: string; response: string; response_status_code: number; status: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'; url: string; }",
+ markdown:
+ "## list_attempts\n\n`client.events.listAttempts(event_token: string, begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string, status?: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'): { token: string; created: string; event_subscription_token: string; event_token: string; response: string; response_status_code: number; status: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'; url: string; }`\n\n**get** `/v1/events/{event_token}/attempts`\n\nList all the message attempts for a given event.\n\n### Parameters\n\n- `event_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'`\n\n### Returns\n\n- `{ token: string; created: string; event_subscription_token: string; event_token: string; response: string; response_status_code: number; status: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'; url: string; }`\n A subscription to specific event types.\n\n - `token: string`\n - `created: string`\n - `event_subscription_token: string`\n - `event_token: string`\n - `response: string`\n - `response_status_code: number`\n - `status: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'`\n - `url: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const messageAttempt of client.events.listAttempts('event_token')) {\n console.log(messageAttempt);\n}\n```",
+ },
+ {
+ name: 'create',
+ endpoint: '/v1/event_subscriptions',
+ httpMethod: 'post',
+ summary: 'Create event subscription',
+ description: 'Create a new event subscription.',
+ stainlessPath: '(resource) events.subscriptions > (method) create',
+ qualified: 'client.events.subscriptions.create',
+ params: ['url: string;', 'description?: string;', 'disabled?: boolean;', 'event_types?: string[];'],
+ response:
+ '{ token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }',
+ markdown:
+ "## create\n\n`client.events.subscriptions.create(url: string, description?: string, disabled?: boolean, event_types?: string[]): { token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n\n**post** `/v1/event_subscriptions`\n\nCreate a new event subscription.\n\n### Parameters\n\n- `url: string`\n URL to which event webhooks will be sent. URL must be a valid HTTPS address.\n\n- `description?: string`\n Event subscription description.\n\n- `disabled?: boolean`\n Whether the event subscription is active (false) or inactive (true).\n\n- `event_types?: string[]`\n Indicates types of events that will be sent to this subscription. If left blank, all types will be sent.\n\n### Returns\n\n- `{ token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n A subscription to specific event types.\n\n - `token: string`\n - `description: string`\n - `disabled: boolean`\n - `url: string`\n - `event_types?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst eventSubscription = await client.events.subscriptions.create({ url: 'https://example.com' });\n\nconsole.log(eventSubscription);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/event_subscriptions/{event_subscription_token}',
+ httpMethod: 'get',
+ summary: 'Get event subscription',
+ description: 'Get an event subscription.',
+ stainlessPath: '(resource) events.subscriptions > (method) retrieve',
+ qualified: 'client.events.subscriptions.retrieve',
+ params: ['event_subscription_token: string;'],
+ response:
+ '{ token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }',
+ markdown:
+ "## retrieve\n\n`client.events.subscriptions.retrieve(event_subscription_token: string): { token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n\n**get** `/v1/event_subscriptions/{event_subscription_token}`\n\nGet an event subscription.\n\n### Parameters\n\n- `event_subscription_token: string`\n\n### Returns\n\n- `{ token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n A subscription to specific event types.\n\n - `token: string`\n - `description: string`\n - `disabled: boolean`\n - `url: string`\n - `event_types?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst eventSubscription = await client.events.subscriptions.retrieve('event_subscription_token');\n\nconsole.log(eventSubscription);\n```",
+ },
+ {
+ name: 'update',
+ endpoint: '/v1/event_subscriptions/{event_subscription_token}',
+ httpMethod: 'patch',
+ summary: 'Update event subscription',
+ description: 'Update an event subscription.',
+ stainlessPath: '(resource) events.subscriptions > (method) update',
+ qualified: 'client.events.subscriptions.update',
+ params: [
+ 'event_subscription_token: string;',
+ 'url: string;',
+ 'description?: string;',
+ 'disabled?: boolean;',
+ 'event_types?: string[];',
+ ],
+ response:
+ '{ token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }',
+ markdown:
+ "## update\n\n`client.events.subscriptions.update(event_subscription_token: string, url: string, description?: string, disabled?: boolean, event_types?: string[]): { token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n\n**patch** `/v1/event_subscriptions/{event_subscription_token}`\n\nUpdate an event subscription.\n\n### Parameters\n\n- `event_subscription_token: string`\n\n- `url: string`\n URL to which event webhooks will be sent. URL must be a valid HTTPS address.\n\n- `description?: string`\n Event subscription description.\n\n- `disabled?: boolean`\n Whether the event subscription is active (false) or inactive (true).\n\n- `event_types?: string[]`\n Indicates types of events that will be sent to this subscription. If left blank, all types will be sent.\n\n### Returns\n\n- `{ token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n A subscription to specific event types.\n\n - `token: string`\n - `description: string`\n - `disabled: boolean`\n - `url: string`\n - `event_types?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst eventSubscription = await client.events.subscriptions.update('event_subscription_token', { url: 'https://example.com' });\n\nconsole.log(eventSubscription);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/event_subscriptions',
+ httpMethod: 'get',
+ summary: 'List event subscriptions',
+ description: 'List all the event subscriptions.',
+ stainlessPath: '(resource) events.subscriptions > (method) list',
+ qualified: 'client.events.subscriptions.list',
+ params: ['ending_before?: string;', 'page_size?: number;', 'starting_after?: string;'],
+ response:
+ '{ token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }',
+ markdown:
+ "## list\n\n`client.events.subscriptions.list(ending_before?: string, page_size?: number, starting_after?: string): { token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n\n**get** `/v1/event_subscriptions`\n\nList all the event subscriptions.\n\n### Parameters\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n A subscription to specific event types.\n\n - `token: string`\n - `description: string`\n - `disabled: boolean`\n - `url: string`\n - `event_types?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const eventSubscription of client.events.subscriptions.list()) {\n console.log(eventSubscription);\n}\n```",
+ },
+ {
+ name: 'delete',
+ endpoint: '/v1/event_subscriptions/{event_subscription_token}',
+ httpMethod: 'delete',
+ summary: 'Delete event subscription',
+ description: 'Delete an event subscription.',
+ stainlessPath: '(resource) events.subscriptions > (method) delete',
+ qualified: 'client.events.subscriptions.delete',
+ params: ['event_subscription_token: string;'],
+ markdown:
+ "## delete\n\n`client.events.subscriptions.delete(event_subscription_token: string): void`\n\n**delete** `/v1/event_subscriptions/{event_subscription_token}`\n\nDelete an event subscription.\n\n### Parameters\n\n- `event_subscription_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.events.subscriptions.delete('event_subscription_token')\n```",
+ },
+ {
+ name: 'list_attempts',
+ endpoint: '/v1/event_subscriptions/{event_subscription_token}/attempts',
+ httpMethod: 'get',
+ summary: 'List message attempts for an event subscription',
+ description: 'List all the message attempts for a given event subscription.',
+ stainlessPath: '(resource) events.subscriptions > (method) list_attempts',
+ qualified: 'client.events.subscriptions.listAttempts',
+ params: [
+ 'event_subscription_token: string;',
+ 'begin?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ "status?: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS';",
+ ],
+ response:
+ "{ token: string; created: string; event_subscription_token: string; event_token: string; response: string; response_status_code: number; status: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'; url: string; }",
+ markdown:
+ "## list_attempts\n\n`client.events.subscriptions.listAttempts(event_subscription_token: string, begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string, status?: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'): { token: string; created: string; event_subscription_token: string; event_token: string; response: string; response_status_code: number; status: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'; url: string; }`\n\n**get** `/v1/event_subscriptions/{event_subscription_token}/attempts`\n\nList all the message attempts for a given event subscription.\n\n### Parameters\n\n- `event_subscription_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'`\n\n### Returns\n\n- `{ token: string; created: string; event_subscription_token: string; event_token: string; response: string; response_status_code: number; status: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'; url: string; }`\n A subscription to specific event types.\n\n - `token: string`\n - `created: string`\n - `event_subscription_token: string`\n - `event_token: string`\n - `response: string`\n - `response_status_code: number`\n - `status: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'`\n - `url: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const messageAttempt of client.events.subscriptions.listAttempts('event_subscription_token')) {\n console.log(messageAttempt);\n}\n```",
+ },
+ {
+ name: 'recover',
+ endpoint: '/v1/event_subscriptions/{event_subscription_token}/recover',
+ httpMethod: 'post',
+ summary: 'Resend failed messages',
+ description: 'Resend all failed messages since a given time.',
+ stainlessPath: '(resource) events.subscriptions > (method) recover',
+ qualified: 'client.events.subscriptions.recover',
+ params: ['event_subscription_token: string;', 'begin?: string;', 'end?: string;'],
+ markdown:
+ "## recover\n\n`client.events.subscriptions.recover(event_subscription_token: string, begin?: string, end?: string): void`\n\n**post** `/v1/event_subscriptions/{event_subscription_token}/recover`\n\nResend all failed messages since a given time.\n\n### Parameters\n\n- `event_subscription_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.events.subscriptions.recover('event_subscription_token')\n```",
+ },
+ {
+ name: 'replay_missing',
+ endpoint: '/v1/event_subscriptions/{event_subscription_token}/replay_missing',
+ httpMethod: 'post',
+ summary: 'Replay missing messages',
+ description:
+ 'Replays messages to the endpoint. Only messages that were created after `begin` will be sent. Messages that were previously sent to the endpoint are not resent.\nMessage will be retried if endpoint responds with a non-2xx status code. See [Retry Schedule](https://docs.lithic.com/docs/events-api#retry-schedule) for details.\n',
+ stainlessPath: '(resource) events.subscriptions > (method) replay_missing',
+ qualified: 'client.events.subscriptions.replayMissing',
+ params: ['event_subscription_token: string;', 'begin?: string;', 'end?: string;'],
+ markdown:
+ "## replay_missing\n\n`client.events.subscriptions.replayMissing(event_subscription_token: string, begin?: string, end?: string): void`\n\n**post** `/v1/event_subscriptions/{event_subscription_token}/replay_missing`\n\nReplays messages to the endpoint. Only messages that were created after `begin` will be sent. Messages that were previously sent to the endpoint are not resent.\nMessage will be retried if endpoint responds with a non-2xx status code. See [Retry Schedule](https://docs.lithic.com/docs/events-api#retry-schedule) for details.\n\n\n### Parameters\n\n- `event_subscription_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.events.subscriptions.replayMissing('event_subscription_token')\n```",
+ },
+ {
+ name: 'retrieve_secret',
+ endpoint: '/v1/event_subscriptions/{event_subscription_token}/secret',
+ httpMethod: 'get',
+ summary: 'Get event subscription secret',
+ description: 'Get the secret for an event subscription.',
+ stainlessPath: '(resource) events.subscriptions > (method) retrieve_secret',
+ qualified: 'client.events.subscriptions.retrieveSecret',
+ params: ['event_subscription_token: string;'],
+ response: '{ secret?: string; }',
+ markdown:
+ "## retrieve_secret\n\n`client.events.subscriptions.retrieveSecret(event_subscription_token: string): { secret?: string; }`\n\n**get** `/v1/event_subscriptions/{event_subscription_token}/secret`\n\nGet the secret for an event subscription.\n\n### Parameters\n\n- `event_subscription_token: string`\n\n### Returns\n\n- `{ secret?: string; }`\n\n - `secret?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.events.subscriptions.retrieveSecret('event_subscription_token');\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'rotate_secret',
+ endpoint: '/v1/event_subscriptions/{event_subscription_token}/secret/rotate',
+ httpMethod: 'post',
+ summary: 'Rotate event subscription secret',
+ description:
+ 'Rotate the secret for an event subscription. The previous secret will be valid for the next 24 hours.\n',
+ stainlessPath: '(resource) events.subscriptions > (method) rotate_secret',
+ qualified: 'client.events.subscriptions.rotateSecret',
+ params: ['event_subscription_token: string;'],
+ markdown:
+ "## rotate_secret\n\n`client.events.subscriptions.rotateSecret(event_subscription_token: string): void`\n\n**post** `/v1/event_subscriptions/{event_subscription_token}/secret/rotate`\n\nRotate the secret for an event subscription. The previous secret will be valid for the next 24 hours.\n\n\n### Parameters\n\n- `event_subscription_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.events.subscriptions.rotateSecret('event_subscription_token')\n```",
+ },
+ {
+ name: 'send_simulated_example',
+ endpoint: '/v1/simulate/event_subscriptions/{event_subscription_token}/send_example',
+ httpMethod: 'post',
+ summary: 'Send event type example message',
+ description: 'Send an example message for event.',
+ stainlessPath: '(resource) events.subscriptions > (method) send_simulated_example',
+ qualified: 'client.events.subscriptions.sendSimulatedExample',
+ params: ['event_subscription_token: string;', 'event_type?: string;'],
+ markdown:
+ "## send_simulated_example\n\n`client.events.subscriptions.sendSimulatedExample(event_subscription_token: string, event_type?: string): void`\n\n**post** `/v1/simulate/event_subscriptions/{event_subscription_token}/send_example`\n\nSend an example message for event.\n\n### Parameters\n\n- `event_subscription_token: string`\n\n- `event_type?: string`\n Event type to send example message for.\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.events.subscriptions.sendSimulatedExample('event_subscription_token')\n```",
+ },
+ {
+ name: 'resend',
+ endpoint: '/v1/events/{event_token}/event_subscriptions/{event_subscription_token}/resend',
+ httpMethod: 'post',
+ summary: 'Resend event',
+ description: 'Resend an event to an event subscription.',
+ stainlessPath: '(resource) events.event_subscriptions > (method) resend',
+ qualified: 'client.events.eventSubscriptions.resend',
+ params: ['event_token: string;', 'event_subscription_token: string;'],
+ markdown:
+ "## resend\n\n`client.events.eventSubscriptions.resend(event_token: string, event_subscription_token: string): void`\n\n**post** `/v1/events/{event_token}/event_subscriptions/{event_subscription_token}/resend`\n\nResend an event to an event subscription.\n\n### Parameters\n\n- `event_token: string`\n\n- `event_subscription_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.events.eventSubscriptions.resend('event_subscription_token', { event_token: 'event_token' })\n```",
+ },
+ {
+ name: 'create',
+ endpoint: '/v1/transfer',
+ httpMethod: 'post',
+ summary: 'Transfer funds within Lithic',
+ description: 'Transfer funds between two financial accounts or between a financial account and card',
+ stainlessPath: '(resource) transfers > (method) create',
+ qualified: 'client.transfers.create',
+ params: ['amount: number;', 'from: string;', 'to: string;', 'token?: string;', 'memo?: string;'],
+ response:
+ "{ token?: string; category?: 'TRANSFER'; created?: string; currency?: string; descriptor?: string; events?: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; from_balance?: { available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }[]; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; to_balance?: { available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }[]; updated?: string; }",
+ markdown:
+ "## create\n\n`client.transfers.create(amount: number, from: string, to: string, token?: string, memo?: string): { token?: string; category?: 'TRANSFER'; created?: string; currency?: string; descriptor?: string; events?: financial_event[]; from_balance?: balance[]; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; to_balance?: balance[]; updated?: string; }`\n\n**post** `/v1/transfer`\n\nTransfer funds between two financial accounts or between a financial account and card\n\n### Parameters\n\n- `amount: number`\n Amount to be transferred in the currency’s smallest unit (e.g., cents for USD). This should always be a positive value.\n\n- `from: string`\n Globally unique identifier for the financial account or card that will send the funds. Accepted type dependent on the program's use case.\n\n- `to: string`\n Globally unique identifier for the financial account or card that will receive the funds. Accepted type dependent on the program's use case.\n\n- `token?: string`\n Customer-provided token that will serve as an idempotency token. This token will become the transaction token.\n\n- `memo?: string`\n Optional descriptor for the transfer.\n\n### Returns\n\n- `{ token?: string; category?: 'TRANSFER'; created?: string; currency?: string; descriptor?: string; events?: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; from_balance?: { available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }[]; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; to_balance?: { available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }[]; updated?: string; }`\n\n - `token?: string`\n - `category?: 'TRANSFER'`\n - `created?: string`\n - `currency?: string`\n - `descriptor?: string`\n - `events?: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]`\n - `from_balance?: { available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }[]`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'`\n - `to_balance?: { available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }[]`\n - `updated?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst transfer = await client.transfers.create({\n amount: 0,\n from: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n to: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(transfer);\n```",
+ },
+ {
+ name: 'create',
+ endpoint: '/v1/financial_accounts',
+ httpMethod: 'post',
+ summary: 'Create financial account',
+ description: 'Create a new financial account',
+ stainlessPath: '(resource) financial_accounts > (method) create',
+ qualified: 'client.financialAccounts.create',
+ params: [
+ 'nickname: string;',
+ "type: 'OPERATING';",
+ 'account_token?: string;',
+ 'is_for_benefit_of?: boolean;',
+ 'Idempotency-Key?: string;',
+ ],
+ response:
+ "{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }",
+ markdown:
+ "## create\n\n`client.financialAccounts.create(nickname: string, type: 'OPERATING', account_token?: string, is_for_benefit_of?: boolean, Idempotency-Key?: string): { token: string; account_token: string; created: string; credit_configuration: object; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n**post** `/v1/financial_accounts`\n\nCreate a new financial account\n\n### Parameters\n\n- `nickname: string`\n\n- `type: 'OPERATING'`\n\n- `account_token?: string`\n\n- `is_for_benefit_of?: boolean`\n\n- `Idempotency-Key?: string`\n\n### Returns\n\n- `{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `created: string`\n - `credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n - `is_for_benefit_of: boolean`\n - `nickname: string`\n - `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n - `substatus: string`\n - `type: string`\n - `updated: string`\n - `user_defined_status: string`\n - `account_number?: string`\n - `routing_number?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialAccount = await client.financialAccounts.create({ nickname: 'nickname', type: 'OPERATING' });\n\nconsole.log(financialAccount);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/financial_accounts/{financial_account_token}',
+ httpMethod: 'get',
+ summary: 'Get financial account',
+ description: 'Get a financial account',
+ stainlessPath: '(resource) financial_accounts > (method) retrieve',
+ qualified: 'client.financialAccounts.retrieve',
+ params: ['financial_account_token: string;'],
+ response:
+ "{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }",
+ markdown:
+ "## retrieve\n\n`client.financialAccounts.retrieve(financial_account_token: string): { token: string; account_token: string; created: string; credit_configuration: object; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}`\n\nGet a financial account\n\n### Parameters\n\n- `financial_account_token: string`\n\n### Returns\n\n- `{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `created: string`\n - `credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n - `is_for_benefit_of: boolean`\n - `nickname: string`\n - `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n - `substatus: string`\n - `type: string`\n - `updated: string`\n - `user_defined_status: string`\n - `account_number?: string`\n - `routing_number?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialAccount = await client.financialAccounts.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(financialAccount);\n```",
+ },
+ {
+ name: 'update',
+ endpoint: '/v1/financial_accounts/{financial_account_token}',
+ httpMethod: 'patch',
+ summary: 'Update financial account',
+ description: 'Update a financial account',
+ stainlessPath: '(resource) financial_accounts > (method) update',
+ qualified: 'client.financialAccounts.update',
+ params: ['financial_account_token: string;', 'nickname?: string;'],
+ response:
+ "{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }",
+ markdown:
+ "## update\n\n`client.financialAccounts.update(financial_account_token: string, nickname?: string): { token: string; account_token: string; created: string; credit_configuration: object; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n**patch** `/v1/financial_accounts/{financial_account_token}`\n\nUpdate a financial account\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `nickname?: string`\n\n### Returns\n\n- `{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `created: string`\n - `credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n - `is_for_benefit_of: boolean`\n - `nickname: string`\n - `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n - `substatus: string`\n - `type: string`\n - `updated: string`\n - `user_defined_status: string`\n - `account_number?: string`\n - `routing_number?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialAccount = await client.financialAccounts.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(financialAccount);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/financial_accounts',
+ httpMethod: 'get',
+ summary: 'List financial accounts',
+ description: 'Retrieve information on your financial accounts including routing and account number.',
+ stainlessPath: '(resource) financial_accounts > (method) list',
+ qualified: 'client.financialAccounts.list',
+ params: [
+ 'account_token?: string;',
+ 'business_account_token?: string;',
+ "type?: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY' | 'EARLY_DIRECT_DEPOSIT_FLOAT';",
+ ],
+ response:
+ "{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }",
+ markdown:
+ "## list\n\n`client.financialAccounts.list(account_token?: string, business_account_token?: string, type?: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY' | 'EARLY_DIRECT_DEPOSIT_FLOAT'): { token: string; account_token: string; created: string; credit_configuration: object; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n**get** `/v1/financial_accounts`\n\nRetrieve information on your financial accounts including routing and account number.\n\n### Parameters\n\n- `account_token?: string`\n List financial accounts for a given account_token or business_account_token\n\n- `business_account_token?: string`\n List financial accounts for a given business_account_token\n\n- `type?: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY' | 'EARLY_DIRECT_DEPOSIT_FLOAT'`\n List financial accounts of a given type\n\n### Returns\n\n- `{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `created: string`\n - `credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n - `is_for_benefit_of: boolean`\n - `nickname: string`\n - `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n - `substatus: string`\n - `type: string`\n - `updated: string`\n - `user_defined_status: string`\n - `account_number?: string`\n - `routing_number?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const financialAccount of client.financialAccounts.list()) {\n console.log(financialAccount);\n}\n```",
+ },
+ {
+ name: 'register_account_number',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/register_account_number',
+ httpMethod: 'post',
+ summary: 'Register Account Number',
+ description: 'Register account number',
+ stainlessPath: '(resource) financial_accounts > (method) register_account_number',
+ qualified: 'client.financialAccounts.registerAccountNumber',
+ params: ['financial_account_token: string;', 'account_number: string;'],
+ markdown:
+ "## register_account_number\n\n`client.financialAccounts.registerAccountNumber(financial_account_token: string, account_number: string): void`\n\n**post** `/v1/financial_accounts/{financial_account_token}/register_account_number`\n\nRegister account number\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `account_number: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.financialAccounts.registerAccountNumber('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { account_number: 'account_number' })\n```",
+ },
+ {
+ name: 'update_status',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/update_status',
+ httpMethod: 'post',
+ summary: 'Update financial account status',
+ description: 'Update financial account status',
+ stainlessPath: '(resource) financial_accounts > (method) update_status',
+ qualified: 'client.financialAccounts.updateStatus',
+ params: [
+ 'financial_account_token: string;',
+ "status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING';",
+ 'substatus: string;',
+ 'user_defined_status?: string;',
+ ],
+ response:
+ "{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }",
+ markdown:
+ "## update_status\n\n`client.financialAccounts.updateStatus(financial_account_token: string, status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING', substatus: string, user_defined_status?: string): { token: string; account_token: string; created: string; credit_configuration: object; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n**post** `/v1/financial_accounts/{financial_account_token}/update_status`\n\nUpdate financial account status\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n Status of the financial account\n\n- `substatus: string`\n Substatus for the financial account\n\n- `user_defined_status?: string`\n User-defined status for the financial account\n\n### Returns\n\n- `{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `created: string`\n - `credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n - `is_for_benefit_of: boolean`\n - `nickname: string`\n - `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n - `substatus: string`\n - `type: string`\n - `updated: string`\n - `user_defined_status: string`\n - `account_number?: string`\n - `routing_number?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialAccount = await client.financialAccounts.updateStatus('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { status: 'OPEN', substatus: 'CHARGED_OFF_FRAUD' });\n\nconsole.log(financialAccount);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/balances',
+ httpMethod: 'get',
+ summary: 'Get balances',
+ description: 'Get the balances for a given financial account.',
+ stainlessPath: '(resource) financial_accounts.balances > (method) list',
+ qualified: 'client.financialAccounts.balances.list',
+ params: [
+ 'financial_account_token: string;',
+ 'balance_date?: string;',
+ 'last_transaction_event_token?: string;',
+ ],
+ response:
+ "{ token: string; available_amount: number; created: string; currency: string; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; updated: string; }",
+ markdown:
+ "## list\n\n`client.financialAccounts.balances.list(financial_account_token: string, balance_date?: string, last_transaction_event_token?: string): { token: string; available_amount: number; created: string; currency: string; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; updated: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/balances`\n\nGet the balances for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `balance_date?: string`\n UTC date of the balance to retrieve. Defaults to latest available balance\n\n- `last_transaction_event_token?: string`\n Balance after a given financial event occured.\nFor example, passing the event_token of a $5 CARD_CLEARING financial event will return a balance decreased by $5\n\n\n### Returns\n\n- `{ token: string; available_amount: number; created: string; currency: string; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; updated: string; }`\n Balance of a Financial Account\n\n - `token: string`\n - `available_amount: number`\n - `created: string`\n - `currency: string`\n - `last_transaction_event_token: string`\n - `last_transaction_token: string`\n - `pending_amount: number`\n - `total_amount: number`\n - `type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const financialAccountBalance of client.financialAccounts.balances.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(financialAccountBalance);\n}\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint:
+ '/v1/financial_accounts/{financial_account_token}/financial_transactions/{financial_transaction_token}',
+ httpMethod: 'get',
+ summary: 'Get financial transaction',
+ description: 'Get the financial transaction for the provided token.',
+ stainlessPath: '(resource) financial_accounts.financial_transactions > (method) retrieve',
+ qualified: 'client.financialAccounts.financialTransactions.retrieve',
+ params: ['financial_account_token: string;', 'financial_transaction_token: string;'],
+ response:
+ "{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }",
+ markdown:
+ "## retrieve\n\n`client.financialAccounts.financialTransactions.retrieve(financial_account_token: string, financial_transaction_token: string): { token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: financial_event[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/financial_transactions/{financial_transaction_token}`\n\nGet the financial transaction for the provided token.\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `financial_transaction_token: string`\n\n### Returns\n\n- `{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n - `token: string`\n - `category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'`\n - `created: string`\n - `currency: string`\n - `descriptor: string`\n - `events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialTransaction = await client.financialAccounts.financialTransactions.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(financialTransaction);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/financial_transactions',
+ httpMethod: 'get',
+ summary: 'List financial transactions',
+ description: 'List the financial transactions for a given financial account.',
+ stainlessPath: '(resource) financial_accounts.financial_transactions > (method) list',
+ qualified: 'client.financialAccounts.financialTransactions.list',
+ params: [
+ 'financial_account_token: string;',
+ 'begin?: string;',
+ "category?: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER';",
+ 'end?: string;',
+ 'ending_before?: string;',
+ "result?: 'APPROVED' | 'DECLINED';",
+ 'starting_after?: string;',
+ "status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED';",
+ ],
+ response:
+ "{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }",
+ markdown:
+ "## list\n\n`client.financialAccounts.financialTransactions.list(financial_account_token: string, begin?: string, category?: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER', end?: string, ending_before?: string, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'): { token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: financial_event[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/financial_transactions`\n\nList the financial transactions for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `category?: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'`\n Financial Transaction category to be returned.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `result?: 'APPROVED' | 'DECLINED'`\n Financial Transaction result to be returned.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'`\n Financial Transaction status to be returned.\n\n### Returns\n\n- `{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n - `token: string`\n - `category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'`\n - `created: string`\n - `currency: string`\n - `descriptor: string`\n - `events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const financialTransaction of client.financialAccounts.financialTransactions.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(financialTransaction);\n}\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/credit_configuration',
+ httpMethod: 'get',
+ summary: 'Get account credit configuration',
+ description: "Get an Account's credit configuration",
+ stainlessPath: '(resource) financial_accounts.credit_configuration > (method) retrieve',
+ qualified: 'client.financialAccounts.creditConfiguration.retrieve',
+ params: ['financial_account_token: string;'],
+ response:
+ '{ account_token: string; auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }',
+ markdown:
+ "## retrieve\n\n`client.financialAccounts.creditConfiguration.retrieve(financial_account_token: string): { account_token: string; auto_collection_configuration: object; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/credit_configuration`\n\nGet an Account's credit configuration\n\n### Parameters\n\n- `financial_account_token: string`\n\n### Returns\n\n- `{ account_token: string; auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n\n - `account_token: string`\n - `auto_collection_configuration: { auto_collection_enabled: boolean; }`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `external_bank_account_token: string`\n - `tier: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialAccountCreditConfig = await client.financialAccounts.creditConfiguration.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(financialAccountCreditConfig);\n```",
+ },
+ {
+ name: 'update',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/credit_configuration',
+ httpMethod: 'patch',
+ summary: 'Update account credit configuration',
+ description: "Update an account's credit configuration",
+ stainlessPath: '(resource) financial_accounts.credit_configuration > (method) update',
+ qualified: 'client.financialAccounts.creditConfiguration.update',
+ params: [
+ 'financial_account_token: string;',
+ 'auto_collection_configuration?: { auto_collection_enabled?: boolean; };',
+ 'credit_limit?: number;',
+ 'credit_product_token?: string;',
+ 'external_bank_account_token?: string;',
+ 'tier?: string;',
+ ],
+ response:
+ '{ account_token: string; auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }',
+ markdown:
+ "## update\n\n`client.financialAccounts.creditConfiguration.update(financial_account_token: string, auto_collection_configuration?: { auto_collection_enabled?: boolean; }, credit_limit?: number, credit_product_token?: string, external_bank_account_token?: string, tier?: string): { account_token: string; auto_collection_configuration: object; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n\n**patch** `/v1/financial_accounts/{financial_account_token}/credit_configuration`\n\nUpdate an account's credit configuration\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `auto_collection_configuration?: { auto_collection_enabled?: boolean; }`\n - `auto_collection_enabled?: boolean`\n If auto collection is enabled for this account\n\n- `credit_limit?: number`\n\n- `credit_product_token?: string`\n Globally unique identifier for the credit product\n\n- `external_bank_account_token?: string`\n\n- `tier?: string`\n Tier to assign to a financial account\n\n### Returns\n\n- `{ account_token: string; auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n\n - `account_token: string`\n - `auto_collection_configuration: { auto_collection_enabled: boolean; }`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `external_bank_account_token: string`\n - `tier: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialAccountCreditConfig = await client.financialAccounts.creditConfiguration.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(financialAccountCreditConfig);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/statements/{statement_token}',
+ httpMethod: 'get',
+ summary: 'Get statement by token',
+ description: 'Get a specific statement for a given financial account.',
+ stainlessPath: '(resource) financial_accounts.statements > (method) retrieve',
+ qualified: 'client.financialAccounts.statements.retrieve',
+ params: ['financial_account_token: string;', 'statement_token: string;'],
+ response:
+ "{ token: string; account_standing: object; amount_due: object; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: statement_totals; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: statement_totals; interest_details?: object; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: object; }",
+ markdown:
+ "## retrieve\n\n`client.financialAccounts.statements.retrieve(financial_account_token: string, statement_token: string): { token: string; account_standing: object; amount_due: object; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: statement_totals; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: statement_totals; interest_details?: object; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: object; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/statements/{statement_token}`\n\nGet a specific statement for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n- `statement_token: string`\n Globally unique identifier for statements.\n\n### Returns\n\n- `{ token: string; account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }; amount_due: { amount: number; past_due: number; }; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; interest_details?: { actual_interest_charged: number; daily_balance_amounts: object; effective_apr: object; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: object; prime_rate: string; minimum_interest_charged?: number; }; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: { minimum_payment_months: string; minimum_payment_total: string; payoff_period_length_months: number; payoff_period_monthly_payment_amount: number; payoff_period_payment_total: number; }; }`\n\n - `token: string`\n - `account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }`\n - `amount_due: { amount: number; past_due: number; }`\n - `available_credit: number`\n - `created: string`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `days_in_billing_cycle: number`\n - `ending_balance: number`\n - `financial_account_token: string`\n - `payment_due_date: string`\n - `period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `starting_balance: number`\n - `statement_end_date: string`\n - `statement_start_date: string`\n - `statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'`\n - `updated: string`\n - `ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `interest_details?: { actual_interest_charged: number; daily_balance_amounts: { balance_transfers: string; cash_advances: string; purchases: string; }; effective_apr: { balance_transfers: string; cash_advances: string; purchases: string; }; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: { balance_transfers: string; cash_advances: string; purchases: string; }; prime_rate: string; minimum_interest_charged?: number; }`\n - `next_payment_due_date?: string`\n - `next_statement_end_date?: string`\n - `payoff_details?: { minimum_payment_months: string; minimum_payment_total: string; payoff_period_length_months: number; payoff_period_monthly_payment_amount: number; payoff_period_payment_total: number; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst statement = await client.financialAccounts.statements.retrieve('statement_token', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(statement);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/statements',
+ httpMethod: 'get',
+ summary: 'List statements',
+ description: 'List the statements for a given financial account.',
+ stainlessPath: '(resource) financial_accounts.statements > (method) list',
+ qualified: 'client.financialAccounts.statements.list',
+ params: [
+ 'financial_account_token: string;',
+ 'begin?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'include_initial_statements?: boolean;',
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ ],
+ response:
+ "{ token: string; account_standing: object; amount_due: object; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: statement_totals; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: statement_totals; interest_details?: object; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: object; }",
+ markdown:
+ "## list\n\n`client.financialAccounts.statements.list(financial_account_token: string, begin?: string, end?: string, ending_before?: string, include_initial_statements?: boolean, page_size?: number, starting_after?: string): { token: string; account_standing: object; amount_due: object; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: statement_totals; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: statement_totals; interest_details?: object; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: object; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/statements`\n\nList the statements for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified date will be included.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified date will be included.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `include_initial_statements?: boolean`\n Whether to include the initial statement. It is not included by default.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }; amount_due: { amount: number; past_due: number; }; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; interest_details?: { actual_interest_charged: number; daily_balance_amounts: object; effective_apr: object; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: object; prime_rate: string; minimum_interest_charged?: number; }; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: { minimum_payment_months: string; minimum_payment_total: string; payoff_period_length_months: number; payoff_period_monthly_payment_amount: number; payoff_period_payment_total: number; }; }`\n\n - `token: string`\n - `account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }`\n - `amount_due: { amount: number; past_due: number; }`\n - `available_credit: number`\n - `created: string`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `days_in_billing_cycle: number`\n - `ending_balance: number`\n - `financial_account_token: string`\n - `payment_due_date: string`\n - `period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `starting_balance: number`\n - `statement_end_date: string`\n - `statement_start_date: string`\n - `statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'`\n - `updated: string`\n - `ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `interest_details?: { actual_interest_charged: number; daily_balance_amounts: { balance_transfers: string; cash_advances: string; purchases: string; }; effective_apr: { balance_transfers: string; cash_advances: string; purchases: string; }; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: { balance_transfers: string; cash_advances: string; purchases: string; }; prime_rate: string; minimum_interest_charged?: number; }`\n - `next_payment_due_date?: string`\n - `next_statement_end_date?: string`\n - `payoff_details?: { minimum_payment_months: string; minimum_payment_total: string; payoff_period_length_months: number; payoff_period_monthly_payment_amount: number; payoff_period_payment_total: number; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const statement of client.financialAccounts.statements.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(statement);\n}\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/statements/{statement_token}/line_items',
+ httpMethod: 'get',
+ summary: 'List line items for a statement',
+ description: 'List the line items for a given statement within a given financial account.',
+ stainlessPath: '(resource) financial_accounts.statements.line_items > (method) list',
+ qualified: 'client.financialAccounts.statements.lineItems.list',
+ params: [
+ 'financial_account_token: string;',
+ 'statement_token: string;',
+ 'ending_before?: string;',
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ ],
+ response:
+ '{ token: string; amount: number; category: string; created: string; currency: string; effective_date: string; event_type: string; financial_account_token: string; financial_transaction_event_token: string; financial_transaction_token: string; card_token?: string; descriptor?: string; event_subtype?: string; loan_tape_date?: string; }',
+ markdown:
+ "## list\n\n`client.financialAccounts.statements.lineItems.list(financial_account_token: string, statement_token: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; amount: number; category: string; created: string; currency: string; effective_date: string; event_type: string; financial_account_token: string; financial_transaction_event_token: string; financial_transaction_token: string; card_token?: string; descriptor?: string; event_subtype?: string; loan_tape_date?: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/statements/{statement_token}/line_items`\n\nList the line items for a given statement within a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n- `statement_token: string`\n Globally unique identifier for statements.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; amount: number; category: string; created: string; currency: string; effective_date: string; event_type: string; financial_account_token: string; financial_transaction_event_token: string; financial_transaction_token: string; card_token?: string; descriptor?: string; event_subtype?: string; loan_tape_date?: string; }`\n\n - `token: string`\n - `amount: number`\n - `category: string`\n - `created: string`\n - `currency: string`\n - `effective_date: string`\n - `event_type: string`\n - `financial_account_token: string`\n - `financial_transaction_event_token: string`\n - `financial_transaction_token: string`\n - `card_token?: string`\n - `descriptor?: string`\n - `event_subtype?: string`\n - `loan_tape_date?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const lineItem of client.financialAccounts.statements.lineItems.list('statement_token', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' })) {\n console.log(lineItem);\n}\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/loan_tapes/{loan_tape_token}',
+ httpMethod: 'get',
+ summary: 'Get loan tape by token',
+ description: 'Get a specific loan tape for a given financial account.',
+ stainlessPath: '(resource) financial_accounts.loan_tapes > (method) retrieve',
+ qualified: 'client.financialAccounts.loanTapes.retrieve',
+ params: ['financial_account_token: string;', 'loan_tape_token: string;'],
+ response:
+ '{ token: string; account_standing: object; available_credit: number; balances: object; created: string; credit_limit: number; credit_product_token: string; date: string; day_totals: statement_totals; ending_balance: number; excess_credits: number; financial_account_token: string; interest_details: object; minimum_payment_balance: object; payment_allocation: object; period_totals: statement_totals; previous_statement_balance: object; starting_balance: number; updated: string; version: number; ytd_totals: statement_totals; tier?: string; }',
+ markdown:
+ "## retrieve\n\n`client.financialAccounts.loanTapes.retrieve(financial_account_token: string, loan_tape_token: string): { token: string; account_standing: object; available_credit: number; balances: object; created: string; credit_limit: number; credit_product_token: string; date: string; day_totals: statement_totals; ending_balance: number; excess_credits: number; financial_account_token: string; interest_details: object; minimum_payment_balance: object; payment_allocation: object; period_totals: statement_totals; previous_statement_balance: object; starting_balance: number; updated: string; version: number; ytd_totals: statement_totals; tier?: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/loan_tapes/{loan_tape_token}`\n\nGet a specific loan tape for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n- `loan_tape_token: string`\n Globally unique identifier for loan tape.\n\n### Returns\n\n- `{ token: string; account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }; available_credit: number; balances: { due: object; next_statement_due: object; past_due: object; past_statements_due: object; }; created: string; credit_limit: number; credit_product_token: string; date: string; day_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; ending_balance: number; excess_credits: number; financial_account_token: string; interest_details: { actual_interest_charged: number; daily_balance_amounts: object; effective_apr: object; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: object; prime_rate: string; minimum_interest_charged?: number; }; minimum_payment_balance: { amount: number; remaining: number; }; payment_allocation: { fee_details: object; fees: number; interest: number; interest_details: object; principal: number; principal_details: object; }; period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; previous_statement_balance: { amount: number; remaining: number; }; starting_balance: number; updated: string; version: number; ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; tier?: string; }`\n\n - `token: string`\n - `account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }`\n - `available_credit: number`\n - `balances: { due: { fees: number; interest: number; principal: number; }; next_statement_due: { fees: number; interest: number; principal: number; }; past_due: { fees: number; interest: number; principal: number; }; past_statements_due: { fees: number; interest: number; principal: number; }; }`\n - `created: string`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `date: string`\n - `day_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `ending_balance: number`\n - `excess_credits: number`\n - `financial_account_token: string`\n - `interest_details: { actual_interest_charged: number; daily_balance_amounts: { balance_transfers: string; cash_advances: string; purchases: string; }; effective_apr: { balance_transfers: string; cash_advances: string; purchases: string; }; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: { balance_transfers: string; cash_advances: string; purchases: string; }; prime_rate: string; minimum_interest_charged?: number; }`\n - `minimum_payment_balance: { amount: number; remaining: number; }`\n - `payment_allocation: { fee_details: { balance_transfers: string; cash_advances: string; purchases: string; }; fees: number; interest: number; interest_details: { balance_transfers: string; cash_advances: string; purchases: string; }; principal: number; principal_details: { balance_transfers: string; cash_advances: string; purchases: string; }; }`\n - `period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `previous_statement_balance: { amount: number; remaining: number; }`\n - `starting_balance: number`\n - `updated: string`\n - `version: number`\n - `ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `tier?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst loanTape = await client.financialAccounts.loanTapes.retrieve('loan_tape_token', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(loanTape);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/loan_tapes',
+ httpMethod: 'get',
+ summary: 'List loan tapes',
+ description: 'List the loan tapes for a given financial account.',
+ stainlessPath: '(resource) financial_accounts.loan_tapes > (method) list',
+ qualified: 'client.financialAccounts.loanTapes.list',
+ params: [
+ 'financial_account_token: string;',
+ 'begin?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ ],
+ response:
+ '{ token: string; account_standing: object; available_credit: number; balances: object; created: string; credit_limit: number; credit_product_token: string; date: string; day_totals: statement_totals; ending_balance: number; excess_credits: number; financial_account_token: string; interest_details: object; minimum_payment_balance: object; payment_allocation: object; period_totals: statement_totals; previous_statement_balance: object; starting_balance: number; updated: string; version: number; ytd_totals: statement_totals; tier?: string; }',
+ markdown:
+ "## list\n\n`client.financialAccounts.loanTapes.list(financial_account_token: string, begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; account_standing: object; available_credit: number; balances: object; created: string; credit_limit: number; credit_product_token: string; date: string; day_totals: statement_totals; ending_balance: number; excess_credits: number; financial_account_token: string; interest_details: object; minimum_payment_balance: object; payment_allocation: object; period_totals: statement_totals; previous_statement_balance: object; starting_balance: number; updated: string; version: number; ytd_totals: statement_totals; tier?: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/loan_tapes`\n\nList the loan tapes for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified date will be included.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified date will be included.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }; available_credit: number; balances: { due: object; next_statement_due: object; past_due: object; past_statements_due: object; }; created: string; credit_limit: number; credit_product_token: string; date: string; day_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; ending_balance: number; excess_credits: number; financial_account_token: string; interest_details: { actual_interest_charged: number; daily_balance_amounts: object; effective_apr: object; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: object; prime_rate: string; minimum_interest_charged?: number; }; minimum_payment_balance: { amount: number; remaining: number; }; payment_allocation: { fee_details: object; fees: number; interest: number; interest_details: object; principal: number; principal_details: object; }; period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; previous_statement_balance: { amount: number; remaining: number; }; starting_balance: number; updated: string; version: number; ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; tier?: string; }`\n\n - `token: string`\n - `account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }`\n - `available_credit: number`\n - `balances: { due: { fees: number; interest: number; principal: number; }; next_statement_due: { fees: number; interest: number; principal: number; }; past_due: { fees: number; interest: number; principal: number; }; past_statements_due: { fees: number; interest: number; principal: number; }; }`\n - `created: string`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `date: string`\n - `day_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `ending_balance: number`\n - `excess_credits: number`\n - `financial_account_token: string`\n - `interest_details: { actual_interest_charged: number; daily_balance_amounts: { balance_transfers: string; cash_advances: string; purchases: string; }; effective_apr: { balance_transfers: string; cash_advances: string; purchases: string; }; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: { balance_transfers: string; cash_advances: string; purchases: string; }; prime_rate: string; minimum_interest_charged?: number; }`\n - `minimum_payment_balance: { amount: number; remaining: number; }`\n - `payment_allocation: { fee_details: { balance_transfers: string; cash_advances: string; purchases: string; }; fees: number; interest: number; interest_details: { balance_transfers: string; cash_advances: string; purchases: string; }; principal: number; principal_details: { balance_transfers: string; cash_advances: string; purchases: string; }; }`\n - `period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `previous_statement_balance: { amount: number; remaining: number; }`\n - `starting_balance: number`\n - `updated: string`\n - `version: number`\n - `ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `tier?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const loanTape of client.financialAccounts.loanTapes.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(loanTape);\n}\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/loan_tape_configuration',
+ httpMethod: 'get',
+ summary: 'Get loan tape configuration',
+ description: 'Get the loan tape configuration for a given financial account.',
+ stainlessPath: '(resource) financial_accounts.loan_tape_configuration > (method) retrieve',
+ qualified: 'client.financialAccounts.loanTapeConfiguration.retrieve',
+ params: ['financial_account_token: string;'],
+ response:
+ '{ created_at: string; financial_account_token: string; instance_token: string; updated_at: string; credit_product_token?: string; loan_tape_rebuild_configuration?: { rebuild_needed: boolean; last_rebuild?: string; rebuild_from?: string; }; tier_schedule_changed_at?: string; }',
+ markdown:
+ "## retrieve\n\n`client.financialAccounts.loanTapeConfiguration.retrieve(financial_account_token: string): { created_at: string; financial_account_token: string; instance_token: string; updated_at: string; credit_product_token?: string; loan_tape_rebuild_configuration?: loan_tape_rebuild_configuration; tier_schedule_changed_at?: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/loan_tape_configuration`\n\nGet the loan tape configuration for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n### Returns\n\n- `{ created_at: string; financial_account_token: string; instance_token: string; updated_at: string; credit_product_token?: string; loan_tape_rebuild_configuration?: { rebuild_needed: boolean; last_rebuild?: string; rebuild_from?: string; }; tier_schedule_changed_at?: string; }`\n Configuration for loan tapes\n\n - `created_at: string`\n - `financial_account_token: string`\n - `instance_token: string`\n - `updated_at: string`\n - `credit_product_token?: string`\n - `loan_tape_rebuild_configuration?: { rebuild_needed: boolean; last_rebuild?: string; rebuild_from?: string; }`\n - `tier_schedule_changed_at?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst loanTapeConfiguration = await client.financialAccounts.loanTapeConfiguration.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(loanTapeConfiguration);\n```",
+ },
+ {
+ name: 'create',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/interest_tier_schedule',
+ httpMethod: 'post',
+ summary: 'Create interest tier schedule',
+ description: 'Create a new interest tier schedule entry for a supported financial account',
+ stainlessPath: '(resource) financial_accounts.interest_tier_schedule > (method) create',
+ qualified: 'client.financialAccounts.interestTierSchedule.create',
+ params: [
+ 'financial_account_token: string;',
+ 'credit_product_token: string;',
+ 'effective_date: string;',
+ 'penalty_rates?: object;',
+ 'tier_name?: string;',
+ 'tier_rates?: object;',
+ ],
+ response:
+ '{ credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }',
+ markdown:
+ "## create\n\n`client.financialAccounts.interestTierSchedule.create(financial_account_token: string, credit_product_token: string, effective_date: string, penalty_rates?: object, tier_name?: string, tier_rates?: object): { credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n\n**post** `/v1/financial_accounts/{financial_account_token}/interest_tier_schedule`\n\nCreate a new interest tier schedule entry for a supported financial account\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `credit_product_token: string`\n Globally unique identifier for a credit product\n\n- `effective_date: string`\n Date the tier should be effective in YYYY-MM-DD format\n\n- `penalty_rates?: object`\n Custom rates per category for penalties\n\n- `tier_name?: string`\n Name of a tier contained in the credit product. Mutually exclusive with tier_rates\n\n- `tier_rates?: object`\n Custom rates per category. Mutually exclusive with tier_name\n\n### Returns\n\n- `{ credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n Entry in the Tier Schedule of an account\n\n - `credit_product_token: string`\n - `effective_date: string`\n - `penalty_rates?: object`\n - `tier_name?: string`\n - `tier_rates?: object`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst interestTierSchedule = await client.financialAccounts.interestTierSchedule.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { credit_product_token: 'credit_product_token', effective_date: '2019-12-27' });\n\nconsole.log(interestTierSchedule);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/interest_tier_schedule/{effective_date}',
+ httpMethod: 'get',
+ summary: 'Get interest tier schedule',
+ description: 'Get a specific interest tier schedule by effective date',
+ stainlessPath: '(resource) financial_accounts.interest_tier_schedule > (method) retrieve',
+ qualified: 'client.financialAccounts.interestTierSchedule.retrieve',
+ params: ['financial_account_token: string;', 'effective_date: string;'],
+ response:
+ '{ credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }',
+ markdown:
+ "## retrieve\n\n`client.financialAccounts.interestTierSchedule.retrieve(financial_account_token: string, effective_date: string): { credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/interest_tier_schedule/{effective_date}`\n\nGet a specific interest tier schedule by effective date\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `effective_date: string`\n\n### Returns\n\n- `{ credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n Entry in the Tier Schedule of an account\n\n - `credit_product_token: string`\n - `effective_date: string`\n - `penalty_rates?: object`\n - `tier_name?: string`\n - `tier_rates?: object`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst interestTierSchedule = await client.financialAccounts.interestTierSchedule.retrieve('2019-12-27', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(interestTierSchedule);\n```",
+ },
+ {
+ name: 'update',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/interest_tier_schedule/{effective_date}',
+ httpMethod: 'put',
+ summary: 'Update interest tier schedule',
+ description: 'Update an existing interest tier schedule',
+ stainlessPath: '(resource) financial_accounts.interest_tier_schedule > (method) update',
+ qualified: 'client.financialAccounts.interestTierSchedule.update',
+ params: [
+ 'financial_account_token: string;',
+ 'effective_date: string;',
+ 'penalty_rates?: object;',
+ 'tier_name?: string;',
+ 'tier_rates?: object;',
+ ],
+ response:
+ '{ credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }',
+ markdown:
+ "## update\n\n`client.financialAccounts.interestTierSchedule.update(financial_account_token: string, effective_date: string, penalty_rates?: object, tier_name?: string, tier_rates?: object): { credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n\n**put** `/v1/financial_accounts/{financial_account_token}/interest_tier_schedule/{effective_date}`\n\nUpdate an existing interest tier schedule\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `effective_date: string`\n\n- `penalty_rates?: object`\n Custom rates per category for penalties\n\n- `tier_name?: string`\n Name of a tier contained in the credit product. Mutually exclusive with tier_rates\n\n- `tier_rates?: object`\n Custom rates per category. Mutually exclusive with tier_name\n\n### Returns\n\n- `{ credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n Entry in the Tier Schedule of an account\n\n - `credit_product_token: string`\n - `effective_date: string`\n - `penalty_rates?: object`\n - `tier_name?: string`\n - `tier_rates?: object`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst interestTierSchedule = await client.financialAccounts.interestTierSchedule.update('2019-12-27', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(interestTierSchedule);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/interest_tier_schedule',
+ httpMethod: 'get',
+ summary: 'List interest tier schedules',
+ description:
+ 'List interest tier schedules for a financial account with optional date filtering.\n\nIf no date parameters are provided, returns all tier schedules.\nIf date parameters are provided, uses filtering to return matching schedules (max 100).\n- for_date: Returns exact match (takes precedence over other dates)\n- before_date: Returns schedules with effective_date <= before_date\n- after_date: Returns schedules with effective_date >= after_date\n- Both before_date and after_date: Returns schedules in range',
+ stainlessPath: '(resource) financial_accounts.interest_tier_schedule > (method) list',
+ qualified: 'client.financialAccounts.interestTierSchedule.list',
+ params: [
+ 'financial_account_token: string;',
+ 'after_date?: string;',
+ 'before_date?: string;',
+ 'for_date?: string;',
+ ],
+ response:
+ '{ credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }',
+ markdown:
+ "## list\n\n`client.financialAccounts.interestTierSchedule.list(financial_account_token: string, after_date?: string, before_date?: string, for_date?: string): { credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/interest_tier_schedule`\n\nList interest tier schedules for a financial account with optional date filtering.\n\nIf no date parameters are provided, returns all tier schedules.\nIf date parameters are provided, uses filtering to return matching schedules (max 100).\n- for_date: Returns exact match (takes precedence over other dates)\n- before_date: Returns schedules with effective_date <= before_date\n- after_date: Returns schedules with effective_date >= after_date\n- Both before_date and after_date: Returns schedules in range\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `after_date?: string`\n Return schedules with effective_date >= after_date (ISO format YYYY-MM-DD)\n\n- `before_date?: string`\n Return schedules with effective_date <= before_date (ISO format YYYY-MM-DD)\n\n- `for_date?: string`\n Return schedule with effective_date == for_date (ISO format YYYY-MM-DD)\n\n### Returns\n\n- `{ credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n Entry in the Tier Schedule of an account\n\n - `credit_product_token: string`\n - `effective_date: string`\n - `penalty_rates?: object`\n - `tier_name?: string`\n - `tier_rates?: object`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const interestTierSchedule of client.financialAccounts.interestTierSchedule.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(interestTierSchedule);\n}\n```",
+ },
+ {
+ name: 'delete',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/interest_tier_schedule/{effective_date}',
+ httpMethod: 'delete',
+ summary: 'Delete interest tier schedule',
+ description:
+ "Delete an interest tier schedule entry.\n\nReturns:\n- 400 Bad Request: Invalid effective_date format OR attempting to delete the earliest\n tier schedule entry for a non-PENDING account\n- 404 Not Found: Tier schedule entry not found for the given effective_date OR ledger account not found\n\nNote: PENDING accounts can delete the earliest tier schedule entry (account hasn't opened yet).\nActive/non-PENDING accounts cannot delete the earliest entry to prevent orphaning the account.\n\nIf the deleted tier schedule has a past effective_date and the account is ACTIVE,\nthe loan tape rebuild configuration will be updated to trigger rebuilds from that date.",
+ stainlessPath: '(resource) financial_accounts.interest_tier_schedule > (method) delete',
+ qualified: 'client.financialAccounts.interestTierSchedule.delete',
+ params: ['financial_account_token: string;', 'effective_date: string;'],
+ markdown:
+ "## delete\n\n`client.financialAccounts.interestTierSchedule.delete(financial_account_token: string, effective_date: string): void`\n\n**delete** `/v1/financial_accounts/{financial_account_token}/interest_tier_schedule/{effective_date}`\n\nDelete an interest tier schedule entry.\n\nReturns:\n- 400 Bad Request: Invalid effective_date format OR attempting to delete the earliest\n tier schedule entry for a non-PENDING account\n- 404 Not Found: Tier schedule entry not found for the given effective_date OR ledger account not found\n\nNote: PENDING accounts can delete the earliest tier schedule entry (account hasn't opened yet).\nActive/non-PENDING accounts cannot delete the earliest entry to prevent orphaning the account.\n\nIf the deleted tier schedule has a past effective_date and the account is ACTIVE,\nthe loan tape rebuild configuration will be updated to trigger rebuilds from that date.\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `effective_date: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.financialAccounts.interestTierSchedule.delete('2019-12-27', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' })\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/transactions/{transaction_token}',
+ httpMethod: 'get',
+ summary: 'Get card transaction',
+ description:
+ 'Get a specific card transaction. All amounts are in the smallest unit of their respective currency (e.g., cents for USD).\n',
+ stainlessPath: '(resource) transactions > (method) retrieve',
+ qualified: 'client.transactions.retrieve',
+ params: ['transaction_token: string;'],
+ response:
+ "{ token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: object; authorization_amount: number; authorization_code: string; avs: object; card_token: string; cardholder_authentication: cardholder_authentication; created: string; financial_account_token: string; merchant: merchant; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: object; result: string; service_location: object; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: token_info; updated: string; events?: object[]; }",
+ markdown:
+ "## retrieve\n\n`client.transactions.retrieve(transaction_token: string): { token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: object; authorization_amount: number; authorization_code: string; avs: object; card_token: string; cardholder_authentication: cardholder_authentication; created: string; financial_account_token: string; merchant: merchant; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: object; result: string; service_location: object; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: token_info; updated: string; events?: object[]; }`\n\n**get** `/v1/transactions/{transaction_token}`\n\nGet a specific card transaction. All amounts are in the smallest unit of their respective currency (e.g., cents for USD).\n\n\n### Parameters\n\n- `transaction_token: string`\n\n### Returns\n\n- `{ token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: { cardholder: { amount: number; conversion_rate: string; currency: currency; }; hold: { amount: number; currency: currency; }; merchant: { amount: number; currency: currency; }; settlement: { amount: number; currency: currency; }; }; authorization_amount: number; authorization_code: string; avs: { address: string; zipcode: string; }; card_token: string; cardholder_authentication: { authentication_method: 'FRICTIONLESS' | 'CHALLENGE' | 'NONE'; authentication_result: 'ATTEMPTS' | 'DECLINE' | 'NONE' | 'SUCCESS'; decision_made_by: 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'LITHIC_DEFAULT' | 'LITHIC_RULES' | 'NETWORK' | 'UNKNOWN'; liability_shift: '3DS_AUTHENTICATED' | 'TOKEN_AUTHENTICATED' | 'NONE'; three_ds_authentication_token: string; }; created: string; financial_account_token: string; merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: { entry_mode: { card: 'NOT_PRESENT' | 'PREAUTHORIZED' | 'PRESENT' | 'UNKNOWN'; cardholder: string; pan: string; pin_entered: boolean; }; terminal: { attended: boolean; card_retention_capable: boolean; on_premise: boolean; operator: 'ADMINISTRATIVE' | 'CARDHOLDER' | 'CARD_ACCEPTOR' | 'UNKNOWN'; partial_approval_capable: boolean; pin_capability: 'CAPABLE' | 'INOPERATIVE' | 'NOT_CAPABLE' | 'UNSPECIFIED'; type: string; acceptor_terminal_id?: string; }; }; result: string; service_location: { city: string; country: string; postal_code: string; state: string; street_address: string; }; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: { wallet_type: 'APPLE_PAY' | 'GOOGLE_PAY' | 'MASTERPASS' | 'MERCHANT' | 'OTHER' | 'SAMSUNG_PAY'; }; updated: string; events?: { token: string; amount: number; amounts: { cardholder: object; merchant: object; settlement: object; }; created: string; detailed_results: string[]; effective_polarity: 'CREDIT' | 'DEBIT'; network_info: { acquirer: object; amex: object; mastercard: object; visa: object; }; result: string; rule_results: { auth_rule_token: string; explanation: string; name: string; result: string; }[]; type: string; account_type?: 'CHECKING' | 'SAVINGS'; network_specific_data?: { mastercard: object; visa: object; }; }[]; }`\n\n - `token: string`\n - `account_token: string`\n - `acquirer_fee: number`\n - `acquirer_reference_number: string`\n - `amount: number`\n - `amounts: { cardholder: { amount: number; conversion_rate: string; currency: string; }; hold: { amount: number; currency: string; }; merchant: { amount: number; currency: string; }; settlement: { amount: number; currency: string; }; }`\n - `authorization_amount: number`\n - `authorization_code: string`\n - `avs: { address: string; zipcode: string; }`\n - `card_token: string`\n - `cardholder_authentication: { authentication_method: 'FRICTIONLESS' | 'CHALLENGE' | 'NONE'; authentication_result: 'ATTEMPTS' | 'DECLINE' | 'NONE' | 'SUCCESS'; decision_made_by: 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'LITHIC_DEFAULT' | 'LITHIC_RULES' | 'NETWORK' | 'UNKNOWN'; liability_shift: '3DS_AUTHENTICATED' | 'TOKEN_AUTHENTICATED' | 'NONE'; three_ds_authentication_token: string; }`\n - `created: string`\n - `financial_account_token: string`\n - `merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }`\n - `merchant_amount: number`\n - `merchant_authorization_amount: number`\n - `merchant_currency: string`\n - `network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'`\n - `network_risk_score: number`\n - `pos: { entry_mode: { card: 'NOT_PRESENT' | 'PREAUTHORIZED' | 'PRESENT' | 'UNKNOWN'; cardholder: string; pan: string; pin_entered: boolean; }; terminal: { attended: boolean; card_retention_capable: boolean; on_premise: boolean; operator: 'ADMINISTRATIVE' | 'CARDHOLDER' | 'CARD_ACCEPTOR' | 'UNKNOWN'; partial_approval_capable: boolean; pin_capability: 'CAPABLE' | 'INOPERATIVE' | 'NOT_CAPABLE' | 'UNSPECIFIED'; type: string; acceptor_terminal_id?: string; }; }`\n - `result: string`\n - `service_location: { city: string; country: string; postal_code: string; state: string; street_address: string; }`\n - `settled_amount: number`\n - `status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'`\n - `tags: object`\n - `token_info: { wallet_type: 'APPLE_PAY' | 'GOOGLE_PAY' | 'MASTERPASS' | 'MERCHANT' | 'OTHER' | 'SAMSUNG_PAY'; }`\n - `updated: string`\n - `events?: { token: string; amount: number; amounts: { cardholder: { amount: number; conversion_rate: string; currency: string; }; merchant: { amount: number; currency: string; }; settlement: { amount: number; conversion_rate: string; currency: string; }; }; created: string; detailed_results: string[]; effective_polarity: 'CREDIT' | 'DEBIT'; network_info: { acquirer: { acquirer_reference_number: string; retrieval_reference_number: string; }; amex: { original_transaction_id: string; transaction_id: string; }; mastercard: { banknet_reference_number: string; original_banknet_reference_number: string; original_switch_serial_number: string; switch_serial_number: string; }; visa: { original_transaction_id: string; transaction_id: string; }; }; result: string; rule_results: { auth_rule_token: string; explanation: string; name: string; result: string; }[]; type: string; account_type?: 'CHECKING' | 'SAVINGS'; network_specific_data?: { mastercard: { ecommerce_security_level_indicator: string; on_behalf_service_result: { result_1: string; result_2: string; service: string; }[]; transaction_type_identifier: string; }; visa: { business_application_identifier: string; }; }; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst transaction = await client.transactions.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(transaction);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/transactions',
+ httpMethod: 'get',
+ summary: 'List card transactions',
+ description:
+ 'List card transactions. All amounts are in the smallest unit of their respective currency (e.g., cents for USD) and inclusive of any acquirer fees.\n',
+ stainlessPath: '(resource) transactions > (method) list',
+ qualified: 'client.transactions.list',
+ params: [
+ 'account_token?: string;',
+ 'begin?: string;',
+ 'card_token?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'page_size?: number;',
+ "result?: 'APPROVED' | 'DECLINED';",
+ 'starting_after?: string;',
+ "status?: 'PENDING' | 'VOIDED' | 'SETTLED' | 'DECLINED' | 'EXPIRED';",
+ ],
+ response:
+ "{ token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: object; authorization_amount: number; authorization_code: string; avs: object; card_token: string; cardholder_authentication: cardholder_authentication; created: string; financial_account_token: string; merchant: merchant; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: object; result: string; service_location: object; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: token_info; updated: string; events?: object[]; }",
+ markdown:
+ "## list\n\n`client.transactions.list(account_token?: string, begin?: string, card_token?: string, end?: string, ending_before?: string, page_size?: number, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'PENDING' | 'VOIDED' | 'SETTLED' | 'DECLINED' | 'EXPIRED'): { token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: object; authorization_amount: number; authorization_code: string; avs: object; card_token: string; cardholder_authentication: cardholder_authentication; created: string; financial_account_token: string; merchant: merchant; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: object; result: string; service_location: object; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: token_info; updated: string; events?: object[]; }`\n\n**get** `/v1/transactions`\n\nList card transactions. All amounts are in the smallest unit of their respective currency (e.g., cents for USD) and inclusive of any acquirer fees.\n\n\n### Parameters\n\n- `account_token?: string`\n Filters for transactions associated with a specific account.\n\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `card_token?: string`\n Filters for transactions associated with a specific card.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `result?: 'APPROVED' | 'DECLINED'`\n Filters for transactions using transaction result field. Can filter by `APPROVED`, and `DECLINED`.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'PENDING' | 'VOIDED' | 'SETTLED' | 'DECLINED' | 'EXPIRED'`\n Filters for transactions using transaction status field.\n\n### Returns\n\n- `{ token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: { cardholder: { amount: number; conversion_rate: string; currency: currency; }; hold: { amount: number; currency: currency; }; merchant: { amount: number; currency: currency; }; settlement: { amount: number; currency: currency; }; }; authorization_amount: number; authorization_code: string; avs: { address: string; zipcode: string; }; card_token: string; cardholder_authentication: { authentication_method: 'FRICTIONLESS' | 'CHALLENGE' | 'NONE'; authentication_result: 'ATTEMPTS' | 'DECLINE' | 'NONE' | 'SUCCESS'; decision_made_by: 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'LITHIC_DEFAULT' | 'LITHIC_RULES' | 'NETWORK' | 'UNKNOWN'; liability_shift: '3DS_AUTHENTICATED' | 'TOKEN_AUTHENTICATED' | 'NONE'; three_ds_authentication_token: string; }; created: string; financial_account_token: string; merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: { entry_mode: { card: 'NOT_PRESENT' | 'PREAUTHORIZED' | 'PRESENT' | 'UNKNOWN'; cardholder: string; pan: string; pin_entered: boolean; }; terminal: { attended: boolean; card_retention_capable: boolean; on_premise: boolean; operator: 'ADMINISTRATIVE' | 'CARDHOLDER' | 'CARD_ACCEPTOR' | 'UNKNOWN'; partial_approval_capable: boolean; pin_capability: 'CAPABLE' | 'INOPERATIVE' | 'NOT_CAPABLE' | 'UNSPECIFIED'; type: string; acceptor_terminal_id?: string; }; }; result: string; service_location: { city: string; country: string; postal_code: string; state: string; street_address: string; }; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: { wallet_type: 'APPLE_PAY' | 'GOOGLE_PAY' | 'MASTERPASS' | 'MERCHANT' | 'OTHER' | 'SAMSUNG_PAY'; }; updated: string; events?: { token: string; amount: number; amounts: { cardholder: object; merchant: object; settlement: object; }; created: string; detailed_results: string[]; effective_polarity: 'CREDIT' | 'DEBIT'; network_info: { acquirer: object; amex: object; mastercard: object; visa: object; }; result: string; rule_results: { auth_rule_token: string; explanation: string; name: string; result: string; }[]; type: string; account_type?: 'CHECKING' | 'SAVINGS'; network_specific_data?: { mastercard: object; visa: object; }; }[]; }`\n\n - `token: string`\n - `account_token: string`\n - `acquirer_fee: number`\n - `acquirer_reference_number: string`\n - `amount: number`\n - `amounts: { cardholder: { amount: number; conversion_rate: string; currency: string; }; hold: { amount: number; currency: string; }; merchant: { amount: number; currency: string; }; settlement: { amount: number; currency: string; }; }`\n - `authorization_amount: number`\n - `authorization_code: string`\n - `avs: { address: string; zipcode: string; }`\n - `card_token: string`\n - `cardholder_authentication: { authentication_method: 'FRICTIONLESS' | 'CHALLENGE' | 'NONE'; authentication_result: 'ATTEMPTS' | 'DECLINE' | 'NONE' | 'SUCCESS'; decision_made_by: 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'LITHIC_DEFAULT' | 'LITHIC_RULES' | 'NETWORK' | 'UNKNOWN'; liability_shift: '3DS_AUTHENTICATED' | 'TOKEN_AUTHENTICATED' | 'NONE'; three_ds_authentication_token: string; }`\n - `created: string`\n - `financial_account_token: string`\n - `merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }`\n - `merchant_amount: number`\n - `merchant_authorization_amount: number`\n - `merchant_currency: string`\n - `network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'`\n - `network_risk_score: number`\n - `pos: { entry_mode: { card: 'NOT_PRESENT' | 'PREAUTHORIZED' | 'PRESENT' | 'UNKNOWN'; cardholder: string; pan: string; pin_entered: boolean; }; terminal: { attended: boolean; card_retention_capable: boolean; on_premise: boolean; operator: 'ADMINISTRATIVE' | 'CARDHOLDER' | 'CARD_ACCEPTOR' | 'UNKNOWN'; partial_approval_capable: boolean; pin_capability: 'CAPABLE' | 'INOPERATIVE' | 'NOT_CAPABLE' | 'UNSPECIFIED'; type: string; acceptor_terminal_id?: string; }; }`\n - `result: string`\n - `service_location: { city: string; country: string; postal_code: string; state: string; street_address: string; }`\n - `settled_amount: number`\n - `status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'`\n - `tags: object`\n - `token_info: { wallet_type: 'APPLE_PAY' | 'GOOGLE_PAY' | 'MASTERPASS' | 'MERCHANT' | 'OTHER' | 'SAMSUNG_PAY'; }`\n - `updated: string`\n - `events?: { token: string; amount: number; amounts: { cardholder: { amount: number; conversion_rate: string; currency: string; }; merchant: { amount: number; currency: string; }; settlement: { amount: number; conversion_rate: string; currency: string; }; }; created: string; detailed_results: string[]; effective_polarity: 'CREDIT' | 'DEBIT'; network_info: { acquirer: { acquirer_reference_number: string; retrieval_reference_number: string; }; amex: { original_transaction_id: string; transaction_id: string; }; mastercard: { banknet_reference_number: string; original_banknet_reference_number: string; original_switch_serial_number: string; switch_serial_number: string; }; visa: { original_transaction_id: string; transaction_id: string; }; }; result: string; rule_results: { auth_rule_token: string; explanation: string; name: string; result: string; }[]; type: string; account_type?: 'CHECKING' | 'SAVINGS'; network_specific_data?: { mastercard: { ecommerce_security_level_indicator: string; on_behalf_service_result: { result_1: string; result_2: string; service: string; }[]; transaction_type_identifier: string; }; visa: { business_application_identifier: string; }; }; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const transaction of client.transactions.list()) {\n console.log(transaction);\n}\n```",
+ },
+ {
+ name: 'expire_authorization',
+ endpoint: '/v1/transactions/{transaction_token}/expire_authorization',
+ httpMethod: 'post',
+ summary: 'Expire an authorization',
+ description: 'Expire authorization',
+ stainlessPath: '(resource) transactions > (method) expire_authorization',
+ qualified: 'client.transactions.expireAuthorization',
+ params: ['transaction_token: string;'],
+ markdown:
+ "## expire_authorization\n\n`client.transactions.expireAuthorization(transaction_token: string): void`\n\n**post** `/v1/transactions/{transaction_token}/expire_authorization`\n\nExpire authorization\n\n### Parameters\n\n- `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.transactions.expireAuthorization('00000000-0000-0000-0000-000000000000')\n```",
+ },
+ {
+ name: 'simulate_authorization',
+ endpoint: '/v1/simulate/authorize',
+ httpMethod: 'post',
+ summary: 'Simulate authorization',
+ description:
+ 'Simulates an authorization request from the card network as if it came from a merchant acquirer.\nIf you are configured for ASA, simulating authorizations requires your ASA client to be set up properly, i.e. be able to respond to the ASA request with a valid JSON. For users that are not configured for ASA, a daily transaction limit of $5000 USD is applied by default. You can update this limit via the [update account](https://docs.lithic.com/reference/patchaccountbytoken) endpoint.\n',
+ stainlessPath: '(resource) transactions > (method) simulate_authorization',
+ qualified: 'client.transactions.simulateAuthorization',
+ params: [
+ 'amount: number;',
+ 'descriptor: string;',
+ 'pan: string;',
+ 'mcc?: string;',
+ 'merchant_acceptor_city?: string;',
+ 'merchant_acceptor_country?: string;',
+ 'merchant_acceptor_id?: string;',
+ 'merchant_acceptor_state?: string;',
+ 'merchant_amount?: number;',
+ 'merchant_currency?: string;',
+ 'partial_approval_capable?: boolean;',
+ 'pin?: string;',
+ 'status?: string;',
+ ],
+ response: '{ token?: string; debugging_request_id?: string; }',
+ markdown:
+ "## simulate_authorization\n\n`client.transactions.simulateAuthorization(amount: number, descriptor: string, pan: string, mcc?: string, merchant_acceptor_city?: string, merchant_acceptor_country?: string, merchant_acceptor_id?: string, merchant_acceptor_state?: string, merchant_amount?: number, merchant_currency?: string, partial_approval_capable?: boolean, pin?: string, status?: string): { token?: string; debugging_request_id?: string; }`\n\n**post** `/v1/simulate/authorize`\n\nSimulates an authorization request from the card network as if it came from a merchant acquirer.\nIf you are configured for ASA, simulating authorizations requires your ASA client to be set up properly, i.e. be able to respond to the ASA request with a valid JSON. For users that are not configured for ASA, a daily transaction limit of $5000 USD is applied by default. You can update this limit via the [update account](https://docs.lithic.com/reference/patchaccountbytoken) endpoint.\n\n\n### Parameters\n\n- `amount: number`\n Amount (in cents) to authorize. For credit authorizations and financial credit authorizations, any value entered will be converted into a negative amount in the simulated transaction. For example, entering 100 in this field will result in a -100 amount in the transaction. For balance inquiries, this field must be set to 0.\n\n- `descriptor: string`\n Merchant descriptor.\n\n- `pan: string`\n Sixteen digit card number.\n\n- `mcc?: string`\n Merchant category code for the transaction to be simulated. A four-digit number listed in ISO 18245.\nSupported merchant category codes can be found [here](https://docs.lithic.com/docs/transactions#merchant-category-codes-mccs).\n\n\n- `merchant_acceptor_city?: string`\n Merchant acceptor city\n\n- `merchant_acceptor_country?: string`\n Merchant acceptor country code (ISO 3166-1 alpha-3)\n\n- `merchant_acceptor_id?: string`\n Unique identifier to identify the payment card acceptor.\n\n- `merchant_acceptor_state?: string`\n Merchant acceptor state/province (ISO 3166-2 subdivision code)\n\n- `merchant_amount?: number`\n Amount of the transaction to be simulated in currency specified in merchant_currency, including any acquirer fees.\n\n- `merchant_currency?: string`\n 3-character alphabetic ISO 4217 currency code. Note: Simulator only accepts USD, GBP, EUR and defaults to GBP if another ISO 4217 code is provided\n\n- `partial_approval_capable?: boolean`\n Set to true if the terminal is capable of partial approval otherwise false.\nPartial approval is when part of a transaction is approved and another\npayment must be used for the remainder.\n\n\n- `pin?: string`\n Simulate entering a PIN. If omitted, PIN check will not be performed.\n\n- `status?: string`\n Type of event to simulate.\n* `AUTHORIZATION` is a dual message purchase authorization, meaning a subsequent clearing step is required to settle the transaction.\n* `BALANCE_INQUIRY` is a $0 authorization requesting the balance held on the card, and is most often observed when a cardholder requests to view a card's balance at an ATM.\n* `CREDIT_AUTHORIZATION` is a dual message request from a merchant to authorize a refund, meaning a subsequent clearing step is required to settle the transaction.\n* `FINANCIAL_AUTHORIZATION` is a single message request from a merchant to debit funds immediately (such as an ATM withdrawal), and no subsequent clearing is required to settle the transaction.\n* `FINANCIAL_CREDIT_AUTHORIZATION` is a single message request from a merchant to credit funds immediately, and no subsequent clearing is required to settle the transaction.\n\n### Returns\n\n- `{ token?: string; debugging_request_id?: string; }`\n\n - `token?: string`\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateAuthorization({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n});\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'simulate_authorization_advice',
+ endpoint: '/v1/simulate/authorization_advice',
+ httpMethod: 'post',
+ summary: 'Simulate authorization advice',
+ description:
+ 'Simulates an authorization advice from the card network as if it came from a merchant acquirer. An authorization advice changes the pending amount of the transaction.\n',
+ stainlessPath: '(resource) transactions > (method) simulate_authorization_advice',
+ qualified: 'client.transactions.simulateAuthorizationAdvice',
+ params: ['token: string;', 'amount: number;'],
+ response: '{ token?: string; debugging_request_id?: string; }',
+ markdown:
+ "## simulate_authorization_advice\n\n`client.transactions.simulateAuthorizationAdvice(token: string, amount: number): { token?: string; debugging_request_id?: string; }`\n\n**post** `/v1/simulate/authorization_advice`\n\nSimulates an authorization advice from the card network as if it came from a merchant acquirer. An authorization advice changes the pending amount of the transaction.\n\n\n### Parameters\n\n- `token: string`\n The transaction token returned from the /v1/simulate/authorize. response.\n\n- `amount: number`\n Amount (in cents) to authorize. This amount will override the transaction's amount that was originally set by /v1/simulate/authorize.\n\n### Returns\n\n- `{ token?: string; debugging_request_id?: string; }`\n\n - `token?: string`\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateAuthorizationAdvice({ token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac', amount: 3831 });\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'simulate_clearing',
+ endpoint: '/v1/simulate/clearing',
+ httpMethod: 'post',
+ summary: 'Simulate clearing',
+ description:
+ 'Clears an existing authorization, either debit or credit. After this event, the transaction transitions from `PENDING` to `SETTLED` status.\n\nIf `amount` is not set, the full amount of the transaction will be cleared. Transactions that have already cleared, either partially or fully, cannot be cleared again using this endpoint.\n',
+ stainlessPath: '(resource) transactions > (method) simulate_clearing',
+ qualified: 'client.transactions.simulateClearing',
+ params: ['token: string;', 'amount?: number;'],
+ response: '{ debugging_request_id?: string; }',
+ markdown:
+ "## simulate_clearing\n\n`client.transactions.simulateClearing(token: string, amount?: number): { debugging_request_id?: string; }`\n\n**post** `/v1/simulate/clearing`\n\nClears an existing authorization, either debit or credit. After this event, the transaction transitions from `PENDING` to `SETTLED` status.\n\nIf `amount` is not set, the full amount of the transaction will be cleared. Transactions that have already cleared, either partially or fully, cannot be cleared again using this endpoint.\n\n\n### Parameters\n\n- `token: string`\n The transaction token returned from the /v1/simulate/authorize response.\n\n- `amount?: number`\n Amount (in cents) to clear. Typically this will match the amount in the original authorization, but can be higher or lower. The sign of this amount will automatically match the sign of the original authorization's amount. For example, entering 100 in this field will result in a -100 amount in the transaction, if the original authorization is a credit authorization.\n\nIf `amount` is not set, the full amount of the transaction will be cleared. Transactions that have already cleared, either partially or fully, cannot be cleared again using this endpoint.\n\n\n### Returns\n\n- `{ debugging_request_id?: string; }`\n\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateClearing({ token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac' });\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'simulate_credit_authorization',
+ endpoint: '/v1/simulate/credit_authorization_advice',
+ httpMethod: 'post',
+ summary: 'Simulate credit authorization advice',
+ description:
+ 'Simulates a credit authorization advice from the card network.\nThis message indicates that the network approved a credit authorization on your behalf.\n',
+ stainlessPath: '(resource) transactions > (method) simulate_credit_authorization',
+ qualified: 'client.transactions.simulateCreditAuthorization',
+ params: [
+ 'amount: number;',
+ 'descriptor: string;',
+ 'pan: string;',
+ 'mcc?: string;',
+ 'merchant_acceptor_city?: string;',
+ 'merchant_acceptor_country?: string;',
+ 'merchant_acceptor_id?: string;',
+ 'merchant_acceptor_state?: string;',
+ ],
+ response: '{ token?: string; debugging_request_id?: string; }',
+ markdown:
+ "## simulate_credit_authorization\n\n`client.transactions.simulateCreditAuthorization(amount: number, descriptor: string, pan: string, mcc?: string, merchant_acceptor_city?: string, merchant_acceptor_country?: string, merchant_acceptor_id?: string, merchant_acceptor_state?: string): { token?: string; debugging_request_id?: string; }`\n\n**post** `/v1/simulate/credit_authorization_advice`\n\nSimulates a credit authorization advice from the card network.\nThis message indicates that the network approved a credit authorization on your behalf.\n\n\n### Parameters\n\n- `amount: number`\n Amount (in cents). Any value entered will be converted into a negative amount in the simulated transaction. For example, entering 100 in this field will appear as a -100 amount in the transaction.\n\n- `descriptor: string`\n Merchant descriptor.\n\n- `pan: string`\n Sixteen digit card number.\n\n- `mcc?: string`\n Merchant category code for the transaction to be simulated. A four-digit number listed in ISO 18245.\nSupported merchant category codes can be found [here](https://docs.lithic.com/docs/transactions#merchant-category-codes-mccs).\n\n\n- `merchant_acceptor_city?: string`\n Merchant acceptor city\n\n- `merchant_acceptor_country?: string`\n Merchant acceptor country code (ISO 3166-1 alpha-3)\n\n- `merchant_acceptor_id?: string`\n Unique identifier to identify the payment card acceptor.\n\n- `merchant_acceptor_state?: string`\n Merchant acceptor state/province (ISO 3166-2 subdivision code)\n\n### Returns\n\n- `{ token?: string; debugging_request_id?: string; }`\n\n - `token?: string`\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateCreditAuthorization({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n});\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'simulate_credit_authorization_advice',
+ endpoint: '/v1/simulate/credit_authorization_advice',
+ httpMethod: 'post',
+ summary: 'Simulate credit authorization advice',
+ description:
+ 'Simulates a credit authorization advice from the card network.\nThis message indicates that the network approved a credit authorization on your behalf.\n',
+ stainlessPath: '(resource) transactions > (method) simulate_credit_authorization_advice',
+ qualified: 'client.transactions.simulateCreditAuthorizationAdvice',
+ params: [
+ 'amount: number;',
+ 'descriptor: string;',
+ 'pan: string;',
+ 'mcc?: string;',
+ 'merchant_acceptor_city?: string;',
+ 'merchant_acceptor_country?: string;',
+ 'merchant_acceptor_id?: string;',
+ 'merchant_acceptor_state?: string;',
+ ],
+ response: '{ token?: string; debugging_request_id?: string; }',
+ markdown:
+ "## simulate_credit_authorization_advice\n\n`client.transactions.simulateCreditAuthorizationAdvice(amount: number, descriptor: string, pan: string, mcc?: string, merchant_acceptor_city?: string, merchant_acceptor_country?: string, merchant_acceptor_id?: string, merchant_acceptor_state?: string): { token?: string; debugging_request_id?: string; }`\n\n**post** `/v1/simulate/credit_authorization_advice`\n\nSimulates a credit authorization advice from the card network.\nThis message indicates that the network approved a credit authorization on your behalf.\n\n\n### Parameters\n\n- `amount: number`\n Amount (in cents). Any value entered will be converted into a negative amount in the simulated transaction. For example, entering 100 in this field will appear as a -100 amount in the transaction.\n\n- `descriptor: string`\n Merchant descriptor.\n\n- `pan: string`\n Sixteen digit card number.\n\n- `mcc?: string`\n Merchant category code for the transaction to be simulated. A four-digit number listed in ISO 18245.\nSupported merchant category codes can be found [here](https://docs.lithic.com/docs/transactions#merchant-category-codes-mccs).\n\n\n- `merchant_acceptor_city?: string`\n Merchant acceptor city\n\n- `merchant_acceptor_country?: string`\n Merchant acceptor country code (ISO 3166-1 alpha-3)\n\n- `merchant_acceptor_id?: string`\n Unique identifier to identify the payment card acceptor.\n\n- `merchant_acceptor_state?: string`\n Merchant acceptor state/province (ISO 3166-2 subdivision code)\n\n### Returns\n\n- `{ token?: string; debugging_request_id?: string; }`\n\n - `token?: string`\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateCreditAuthorizationAdvice({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n});\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'simulate_return',
+ endpoint: '/v1/simulate/return',
+ httpMethod: 'post',
+ summary: 'Simulate return',
+ description:
+ 'Returns, or refunds, an amount back to a card. Returns simulated via this endpoint clear immediately, without prior authorization, and result in a `SETTLED` transaction status.\n',
+ stainlessPath: '(resource) transactions > (method) simulate_return',
+ qualified: 'client.transactions.simulateReturn',
+ params: ['amount: number;', 'descriptor: string;', 'pan: string;'],
+ response: '{ token?: string; debugging_request_id?: string; }',
+ markdown:
+ "## simulate_return\n\n`client.transactions.simulateReturn(amount: number, descriptor: string, pan: string): { token?: string; debugging_request_id?: string; }`\n\n**post** `/v1/simulate/return`\n\nReturns, or refunds, an amount back to a card. Returns simulated via this endpoint clear immediately, without prior authorization, and result in a `SETTLED` transaction status.\n\n\n### Parameters\n\n- `amount: number`\n Amount (in cents) to authorize.\n\n- `descriptor: string`\n Merchant descriptor.\n\n- `pan: string`\n Sixteen digit card number.\n\n### Returns\n\n- `{ token?: string; debugging_request_id?: string; }`\n\n - `token?: string`\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateReturn({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n});\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'simulate_return_reversal',
+ endpoint: '/v1/simulate/return_reversal',
+ httpMethod: 'post',
+ summary: 'Simulate return reversal',
+ description:
+ 'Reverses a return, i.e. a credit transaction with a `SETTLED` status. Returns can be financial credit authorizations, or credit authorizations that have cleared.\n',
+ stainlessPath: '(resource) transactions > (method) simulate_return_reversal',
+ qualified: 'client.transactions.simulateReturnReversal',
+ params: ['token: string;'],
+ response: '{ debugging_request_id?: string; }',
+ markdown:
+ "## simulate_return_reversal\n\n`client.transactions.simulateReturnReversal(token: string): { debugging_request_id?: string; }`\n\n**post** `/v1/simulate/return_reversal`\n\nReverses a return, i.e. a credit transaction with a `SETTLED` status. Returns can be financial credit authorizations, or credit authorizations that have cleared.\n\n\n### Parameters\n\n- `token: string`\n The transaction token returned from the /v1/simulate/authorize response.\n\n### Returns\n\n- `{ debugging_request_id?: string; }`\n\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateReturnReversal({ token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac' });\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'simulate_void',
+ endpoint: '/v1/simulate/void',
+ httpMethod: 'post',
+ summary: 'Simulate void',
+ description:
+ 'Voids a pending authorization. If `amount` is not set, the full amount will be voided. Can be used on partially voided transactions but not partially cleared transactions. _Simulating an authorization expiry on credit authorizations or credit authorization advice is not currently supported but will be added soon._\n',
+ stainlessPath: '(resource) transactions > (method) simulate_void',
+ qualified: 'client.transactions.simulateVoid',
+ params: [
+ 'token: string;',
+ 'amount?: number;',
+ "type?: 'AUTHORIZATION_EXPIRY' | 'AUTHORIZATION_REVERSAL';",
+ ],
+ response: '{ debugging_request_id?: string; }',
+ markdown:
+ "## simulate_void\n\n`client.transactions.simulateVoid(token: string, amount?: number, type?: 'AUTHORIZATION_EXPIRY' | 'AUTHORIZATION_REVERSAL'): { debugging_request_id?: string; }`\n\n**post** `/v1/simulate/void`\n\nVoids a pending authorization. If `amount` is not set, the full amount will be voided. Can be used on partially voided transactions but not partially cleared transactions. _Simulating an authorization expiry on credit authorizations or credit authorization advice is not currently supported but will be added soon._\n\n\n### Parameters\n\n- `token: string`\n The transaction token returned from the /v1/simulate/authorize response.\n\n- `amount?: number`\n Amount (in cents) to void. Typically this will match the amount in the original authorization, but can be less. Applies to authorization reversals only. An authorization expiry will always apply to the full pending amount.\n\n- `type?: 'AUTHORIZATION_EXPIRY' | 'AUTHORIZATION_REVERSAL'`\n Type of event to simulate. Defaults to `AUTHORIZATION_REVERSAL`.\n\n* `AUTHORIZATION_EXPIRY` indicates authorization has expired and been reversed by Lithic.\n* `AUTHORIZATION_REVERSAL` indicates authorization was reversed by the merchant.\n\n### Returns\n\n- `{ debugging_request_id?: string; }`\n\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateVoid({ token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac' });\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/transactions/{transaction_token}/enhanced_commercial_data',
+ httpMethod: 'get',
+ summary: 'List enhanced commercial data',
+ description:
+ 'Get all L2/L3 enhanced commercial data associated with a transaction. Not available in sandbox.',
+ stainlessPath: '(resource) transactions.enhanced_commercial_data > (method) retrieve',
+ qualified: 'client.transactions.enhancedCommercialData.retrieve',
+ params: ['transaction_token: string;'],
+ response:
+ '{ data: { token: string; common: object; event_token: string; fleet: object[]; transaction_token: string; }[]; }',
+ markdown:
+ "## retrieve\n\n`client.transactions.enhancedCommercialData.retrieve(transaction_token: string): { data: enhanced_data[]; }`\n\n**get** `/v1/transactions/{transaction_token}/enhanced_commercial_data`\n\nGet all L2/L3 enhanced commercial data associated with a transaction. Not available in sandbox.\n\n### Parameters\n\n- `transaction_token: string`\n\n### Returns\n\n- `{ data: { token: string; common: object; event_token: string; fleet: object[]; transaction_token: string; }[]; }`\n\n - `data: { token: string; common: { line_items: { amount?: string; description?: string; product_code?: string; quantity?: string; }[]; tax: { amount?: number; exempt?: 'TAX_INCLUDED' | 'TAX_NOT_INCLUDED' | 'NOT_SUPPORTED'; merchant_tax_id?: string; }; customer_reference_number?: string; merchant_reference_number?: string; order_date?: string; }; event_token: string; fleet: { amount_totals: { discount?: number; gross_sale?: number; net_sale?: number; }; fuel: { quantity?: string; type?: string; unit_of_measure?: 'GALLONS' | 'LITERS' | 'POUNDS' | 'KILOGRAMS' | 'IMPERIAL_GALLONS' | 'NOT_APPLICABLE' | 'UNKNOWN'; unit_price?: number; }; driver_number?: string; odometer?: number; service_type?: 'UNKNOWN' | 'UNDEFINED' | 'SELF_SERVICE' | 'FULL_SERVICE' | 'NON_FUEL_ONLY'; vehicle_number?: string; }[]; transaction_token: string; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst enhancedCommercialData = await client.transactions.enhancedCommercialData.retrieve('00000000-0000-0000-0000-000000000000');\n\nconsole.log(enhancedCommercialData);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/transactions/events/{event_token}/enhanced_commercial_data',
+ httpMethod: 'get',
+ summary: 'Get enhanced commercial data',
+ description:
+ 'Get L2/L3 enhanced commercial data associated with a transaction event. Not available in sandbox.',
+ stainlessPath: '(resource) transactions.events.enhanced_commercial_data > (method) retrieve',
+ qualified: 'client.transactions.events.enhancedCommercialData.retrieve',
+ params: ['event_token: string;'],
+ response:
+ "{ token: string; common: { line_items: { amount?: string; description?: string; product_code?: string; quantity?: string; }[]; tax: { amount?: number; exempt?: 'TAX_INCLUDED' | 'TAX_NOT_INCLUDED' | 'NOT_SUPPORTED'; merchant_tax_id?: string; }; customer_reference_number?: string; merchant_reference_number?: string; order_date?: string; }; event_token: string; fleet: { amount_totals: { discount?: number; gross_sale?: number; net_sale?: number; }; fuel: { quantity?: string; type?: string; unit_of_measure?: 'GALLONS' | 'LITERS' | 'POUNDS' | 'KILOGRAMS' | 'IMPERIAL_GALLONS' | 'NOT_APPLICABLE' | 'UNKNOWN'; unit_price?: number; }; driver_number?: string; odometer?: number; service_type?: 'UNKNOWN' | 'UNDEFINED' | 'SELF_SERVICE' | 'FULL_SERVICE' | 'NON_FUEL_ONLY'; vehicle_number?: string; }[]; transaction_token: string; }",
+ markdown:
+ "## retrieve\n\n`client.transactions.events.enhancedCommercialData.retrieve(event_token: string): { token: string; common: object; event_token: string; fleet: object[]; transaction_token: string; }`\n\n**get** `/v1/transactions/events/{event_token}/enhanced_commercial_data`\n\nGet L2/L3 enhanced commercial data associated with a transaction event. Not available in sandbox.\n\n### Parameters\n\n- `event_token: string`\n\n### Returns\n\n- `{ token: string; common: { line_items: { amount?: string; description?: string; product_code?: string; quantity?: string; }[]; tax: { amount?: number; exempt?: 'TAX_INCLUDED' | 'TAX_NOT_INCLUDED' | 'NOT_SUPPORTED'; merchant_tax_id?: string; }; customer_reference_number?: string; merchant_reference_number?: string; order_date?: string; }; event_token: string; fleet: { amount_totals: { discount?: number; gross_sale?: number; net_sale?: number; }; fuel: { quantity?: string; type?: string; unit_of_measure?: 'GALLONS' | 'LITERS' | 'POUNDS' | 'KILOGRAMS' | 'IMPERIAL_GALLONS' | 'NOT_APPLICABLE' | 'UNKNOWN'; unit_price?: number; }; driver_number?: string; odometer?: number; service_type?: 'UNKNOWN' | 'UNDEFINED' | 'SELF_SERVICE' | 'FULL_SERVICE' | 'NON_FUEL_ONLY'; vehicle_number?: string; }[]; transaction_token: string; }`\n\n - `token: string`\n - `common: { line_items: { amount?: string; description?: string; product_code?: string; quantity?: string; }[]; tax: { amount?: number; exempt?: 'TAX_INCLUDED' | 'TAX_NOT_INCLUDED' | 'NOT_SUPPORTED'; merchant_tax_id?: string; }; customer_reference_number?: string; merchant_reference_number?: string; order_date?: string; }`\n - `event_token: string`\n - `fleet: { amount_totals: { discount?: number; gross_sale?: number; net_sale?: number; }; fuel: { quantity?: string; type?: string; unit_of_measure?: 'GALLONS' | 'LITERS' | 'POUNDS' | 'KILOGRAMS' | 'IMPERIAL_GALLONS' | 'NOT_APPLICABLE' | 'UNKNOWN'; unit_price?: number; }; driver_number?: string; odometer?: number; service_type?: 'UNKNOWN' | 'UNDEFINED' | 'SELF_SERVICE' | 'FULL_SERVICE' | 'NON_FUEL_ONLY'; vehicle_number?: string; }[]`\n - `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst enhancedData = await client.transactions.events.enhancedCommercialData.retrieve('00000000-0000-0000-0000-000000000000');\n\nconsole.log(enhancedData);\n```",
+ },
+ {
+ name: 'create',
+ endpoint: '/v1/responder_endpoints',
+ httpMethod: 'post',
+ summary: 'Enroll a responder endpoint',
+ description: 'Enroll a responder endpoint',
+ stainlessPath: '(resource) responder_endpoints > (method) create',
+ qualified: 'client.responderEndpoints.create',
+ params: [
+ "type?: 'AUTH_STREAM_ACCESS' | 'THREE_DS_DECISIONING' | 'TOKENIZATION_DECISIONING';",
+ 'url?: string;',
+ ],
+ response: '{ enrolled?: boolean; }',
+ markdown:
+ "## create\n\n`client.responderEndpoints.create(type?: 'AUTH_STREAM_ACCESS' | 'THREE_DS_DECISIONING' | 'TOKENIZATION_DECISIONING', url?: string): { enrolled?: boolean; }`\n\n**post** `/v1/responder_endpoints`\n\nEnroll a responder endpoint\n\n### Parameters\n\n- `type?: 'AUTH_STREAM_ACCESS' | 'THREE_DS_DECISIONING' | 'TOKENIZATION_DECISIONING'`\n The type of the endpoint.\n\n- `url?: string`\n The URL for the responder endpoint (must be http(s)).\n\n### Returns\n\n- `{ enrolled?: boolean; }`\n\n - `enrolled?: boolean`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst responderEndpoint = await client.responderEndpoints.create();\n\nconsole.log(responderEndpoint);\n```",
+ },
+ {
+ name: 'delete',
+ endpoint: '/v1/responder_endpoints',
+ httpMethod: 'delete',
+ summary: 'Disenroll a responder endpoint',
+ description: 'Disenroll a responder endpoint',
+ stainlessPath: '(resource) responder_endpoints > (method) delete',
+ qualified: 'client.responderEndpoints.delete',
+ params: ["type: 'AUTH_STREAM_ACCESS' | 'THREE_DS_DECISIONING' | 'TOKENIZATION_DECISIONING';"],
+ markdown:
+ "## delete\n\n`client.responderEndpoints.delete(type: 'AUTH_STREAM_ACCESS' | 'THREE_DS_DECISIONING' | 'TOKENIZATION_DECISIONING'): void`\n\n**delete** `/v1/responder_endpoints`\n\nDisenroll a responder endpoint\n\n### Parameters\n\n- `type: 'AUTH_STREAM_ACCESS' | 'THREE_DS_DECISIONING' | 'TOKENIZATION_DECISIONING'`\n The type of the endpoint.\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.responderEndpoints.delete({ type: 'AUTH_STREAM_ACCESS' })\n```",
+ },
+ {
+ name: 'check_status',
+ endpoint: '/v1/responder_endpoints',
+ httpMethod: 'get',
+ summary: 'Check the status of a responder endpoint',
+ description: 'Check the status of a responder endpoint',
+ stainlessPath: '(resource) responder_endpoints > (method) check_status',
+ qualified: 'client.responderEndpoints.checkStatus',
+ params: ["type: 'AUTH_STREAM_ACCESS' | 'THREE_DS_DECISIONING' | 'TOKENIZATION_DECISIONING';"],
+ response: '{ enrolled?: boolean; url?: string; }',
+ markdown:
+ "## check_status\n\n`client.responderEndpoints.checkStatus(type: 'AUTH_STREAM_ACCESS' | 'THREE_DS_DECISIONING' | 'TOKENIZATION_DECISIONING'): { enrolled?: boolean; url?: string; }`\n\n**get** `/v1/responder_endpoints`\n\nCheck the status of a responder endpoint\n\n### Parameters\n\n- `type: 'AUTH_STREAM_ACCESS' | 'THREE_DS_DECISIONING' | 'TOKENIZATION_DECISIONING'`\n The type of the endpoint.\n\n### Returns\n\n- `{ enrolled?: boolean; url?: string; }`\n\n - `enrolled?: boolean`\n - `url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst responderEndpointStatus = await client.responderEndpoints.checkStatus({ type: 'AUTH_STREAM_ACCESS' });\n\nconsole.log(responderEndpointStatus);\n```",
+ },
+ {
+ name: 'create',
+ endpoint: '/v1/external_bank_accounts',
+ httpMethod: 'post',
+ summary: 'Create external bank account',
+ description: 'Creates an external bank account within a program or Lithic account.',
+ stainlessPath: '(resource) external_bank_accounts > (method) create',
+ qualified: 'client.externalBankAccounts.create',
+ params: [
+ "{ account_number: string; country: string; currency: string; financial_account_token: string; owner: string; owner_type: 'INDIVIDUAL' | 'BUSINESS'; routing_number: string; type: 'CHECKING' | 'SAVINGS'; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED' | 'UNVERIFIED'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; name?: string; user_defined_id?: string; verification_enforcement?: boolean; } | { account_number: string; country: string; currency: string; owner: string; owner_type: 'INDIVIDUAL' | 'BUSINESS'; routing_number: string; type: 'CHECKING' | 'SAVINGS'; verification_method: 'EXTERNALLY_VERIFIED'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; name?: string; user_defined_id?: string; } | { account_number: string; country: string; currency: string; owner: string; owner_type: 'INDIVIDUAL' | 'BUSINESS'; routing_number: string; type: 'CHECKING' | 'SAVINGS'; verification_method: 'UNVERIFIED'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; name?: string; user_defined_id?: string; };",
+ ],
+ response:
+ "{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/external_bank_accounts/{external_bank_account_token}',
+ httpMethod: 'get',
+ summary: 'Get external bank account by token',
+ description: 'Get the external bank account by token.',
+ stainlessPath: '(resource) external_bank_accounts > (method) retrieve',
+ qualified: 'client.externalBankAccounts.retrieve',
+ params: ['external_bank_account_token: string;'],
+ response:
+ "{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }",
+ markdown:
+ "## retrieve\n\n`client.externalBankAccounts.retrieve(external_bank_account_token: string): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**get** `/v1/external_bank_accounts/{external_bank_account_token}`\n\nGet the external bank account by token.\n\n### Parameters\n\n- `external_bank_account_token: string`\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'BUSINESS' | 'INDIVIDUAL'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalBankAccount = await client.externalBankAccounts.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(externalBankAccount);\n```",
+ },
+ {
+ name: 'update',
+ endpoint: '/v1/external_bank_accounts/{external_bank_account_token}',
+ httpMethod: 'patch',
+ summary: 'Update external bank account',
+ description: 'Update the external bank account by token.',
+ stainlessPath: '(resource) external_bank_accounts > (method) update',
+ qualified: 'client.externalBankAccounts.update',
+ params: [
+ 'external_bank_account_token: string;',
+ 'address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; };',
+ 'company_id?: string;',
+ 'dob?: string;',
+ 'doing_business_as?: string;',
+ 'name?: string;',
+ 'owner?: string;',
+ "owner_type?: 'INDIVIDUAL' | 'BUSINESS';",
+ "type?: 'CHECKING' | 'SAVINGS';",
+ 'user_defined_id?: string;',
+ ],
+ response:
+ "{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }",
+ markdown:
+ "## update\n\n`client.externalBankAccounts.update(external_bank_account_token: string, address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }, company_id?: string, dob?: string, doing_business_as?: string, name?: string, owner?: string, owner_type?: 'INDIVIDUAL' | 'BUSINESS', type?: 'CHECKING' | 'SAVINGS', user_defined_id?: string): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**patch** `/v1/external_bank_accounts/{external_bank_account_token}`\n\nUpdate the external bank account by token.\n\n### Parameters\n\n- `external_bank_account_token: string`\n\n- `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n Address\n - `address1: string`\n - `city: string`\n - `country: string`\n - `postal_code: string`\n - `state: string`\n - `address2?: string`\n\n- `company_id?: string`\n Optional field that helps identify bank accounts in receipts\n\n- `dob?: string`\n Date of Birth of the Individual that owns the external bank account\n\n- `doing_business_as?: string`\n Doing Business As\n\n- `name?: string`\n The nickname for this External Bank Account\n\n- `owner?: string`\n Legal Name of the business or individual who owns the external account. This will appear in statements\n\n- `owner_type?: 'INDIVIDUAL' | 'BUSINESS'`\n Owner Type\n\n- `type?: 'CHECKING' | 'SAVINGS'`\n\n- `user_defined_id?: string`\n User Defined ID\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'BUSINESS' | 'INDIVIDUAL'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalBankAccount = await client.externalBankAccounts.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(externalBankAccount);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/external_bank_accounts',
+ httpMethod: 'get',
+ summary: 'List external bank accounts',
+ description: 'List all the external bank accounts for the provided search criteria.',
+ stainlessPath: '(resource) external_bank_accounts > (method) list',
+ qualified: 'client.externalBankAccounts.list',
+ params: [
+ 'account_token?: string;',
+ "account_types?: 'CHECKING' | 'SAVINGS'[];",
+ 'countries?: string[];',
+ 'ending_before?: string;',
+ "owner_types?: 'INDIVIDUAL' | 'BUSINESS'[];",
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ "states?: 'ENABLED' | 'CLOSED' | 'PAUSED'[];",
+ "verification_states?: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'[];",
+ ],
+ response:
+ "{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }",
+ markdown:
+ "## list\n\n`client.externalBankAccounts.list(account_token?: string, account_types?: 'CHECKING' | 'SAVINGS'[], countries?: string[], ending_before?: string, owner_types?: 'INDIVIDUAL' | 'BUSINESS'[], page_size?: number, starting_after?: string, states?: 'ENABLED' | 'CLOSED' | 'PAUSED'[], verification_states?: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'[]): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**get** `/v1/external_bank_accounts`\n\nList all the external bank accounts for the provided search criteria.\n\n### Parameters\n\n- `account_token?: string`\n\n- `account_types?: 'CHECKING' | 'SAVINGS'[]`\n\n- `countries?: string[]`\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `owner_types?: 'INDIVIDUAL' | 'BUSINESS'[]`\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `states?: 'ENABLED' | 'CLOSED' | 'PAUSED'[]`\n\n- `verification_states?: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'[]`\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'BUSINESS' | 'INDIVIDUAL'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const externalBankAccountListResponse of client.externalBankAccounts.list()) {\n console.log(externalBankAccountListResponse);\n}\n```",
+ },
+ {
+ name: 'retry_micro_deposits',
+ endpoint: '/v1/external_bank_accounts/{external_bank_account_token}/retry_micro_deposits',
+ httpMethod: 'post',
+ summary: 'Retry external bank account via micro deposit',
+ description: 'Retry external bank account micro deposit verification.',
+ stainlessPath: '(resource) external_bank_accounts > (method) retry_micro_deposits',
+ qualified: 'client.externalBankAccounts.retryMicroDeposits',
+ params: ['external_bank_account_token: string;', 'financial_account_token?: string;'],
+ response:
+ "{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }",
+ markdown:
+ "## retry_micro_deposits\n\n`client.externalBankAccounts.retryMicroDeposits(external_bank_account_token: string, financial_account_token?: string): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**post** `/v1/external_bank_accounts/{external_bank_account_token}/retry_micro_deposits`\n\nRetry external bank account micro deposit verification.\n\n### Parameters\n\n- `external_bank_account_token: string`\n\n- `financial_account_token?: string`\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'BUSINESS' | 'INDIVIDUAL'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.externalBankAccounts.retryMicroDeposits('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'retry_prenote',
+ endpoint: '/v1/external_bank_accounts/{external_bank_account_token}/retry_prenote',
+ httpMethod: 'post',
+ summary: 'Retry external bank account via prenote',
+ description: 'Retry external bank account prenote verification.',
+ stainlessPath: '(resource) external_bank_accounts > (method) retry_prenote',
+ qualified: 'client.externalBankAccounts.retryPrenote',
+ params: ['external_bank_account_token: string;', 'financial_account_token?: string;'],
+ response:
+ "{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'INDIVIDUAL' | 'BUSINESS'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED' | 'UNVERIFIED'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }",
+ markdown:
+ "## retry_prenote\n\n`client.externalBankAccounts.retryPrenote(external_bank_account_token: string, financial_account_token?: string): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: owner_type; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: verification_method; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**post** `/v1/external_bank_accounts/{external_bank_account_token}/retry_prenote`\n\nRetry external bank account prenote verification.\n\n### Parameters\n\n- `external_bank_account_token: string`\n\n- `financial_account_token?: string`\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'INDIVIDUAL' | 'BUSINESS'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED' | 'UNVERIFIED'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'INDIVIDUAL' | 'BUSINESS'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED' | 'UNVERIFIED'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalBankAccount = await client.externalBankAccounts.retryPrenote('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(externalBankAccount);\n```",
+ },
+ {
+ name: 'unpause',
+ endpoint: '/v1/external_bank_accounts/{external_bank_account_token}/unpause',
+ httpMethod: 'post',
+ summary: 'Unpause external bank account',
+ description: 'Unpause an external bank account\n',
+ stainlessPath: '(resource) external_bank_accounts > (method) unpause',
+ qualified: 'client.externalBankAccounts.unpause',
+ params: ['external_bank_account_token: string;'],
+ response:
+ "{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'INDIVIDUAL' | 'BUSINESS'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED' | 'UNVERIFIED'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }",
+ markdown:
+ "## unpause\n\n`client.externalBankAccounts.unpause(external_bank_account_token: string): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: owner_type; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: verification_method; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**post** `/v1/external_bank_accounts/{external_bank_account_token}/unpause`\n\nUnpause an external bank account\n\n\n### Parameters\n\n- `external_bank_account_token: string`\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'INDIVIDUAL' | 'BUSINESS'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED' | 'UNVERIFIED'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'INDIVIDUAL' | 'BUSINESS'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED' | 'UNVERIFIED'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalBankAccount = await client.externalBankAccounts.unpause('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(externalBankAccount);\n```",
+ },
+ {
+ name: 'create',
+ endpoint: '/v1/external_bank_accounts/{external_bank_account_token}/micro_deposits',
+ httpMethod: 'post',
+ summary: 'Verify external bank account via micro deposit amounts',
+ description: 'Verify the external bank account by providing the micro deposit amounts.',
+ stainlessPath: '(resource) external_bank_accounts.micro_deposits > (method) create',
+ qualified: 'client.externalBankAccounts.microDeposits.create',
+ params: ['external_bank_account_token: string;', 'micro_deposits: number[];'],
+ response:
+ "{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }",
+ markdown:
+ "## create\n\n`client.externalBankAccounts.microDeposits.create(external_bank_account_token: string, micro_deposits: number[]): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**post** `/v1/external_bank_accounts/{external_bank_account_token}/micro_deposits`\n\nVerify the external bank account by providing the micro deposit amounts.\n\n### Parameters\n\n- `external_bank_account_token: string`\n\n- `micro_deposits: number[]`\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'BUSINESS' | 'INDIVIDUAL'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst microDeposit = await client.externalBankAccounts.microDeposits.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { micro_deposits: [0, 0] });\n\nconsole.log(microDeposit);\n```",
+ },
+ {
+ name: 'create',
+ endpoint: '/v1/payments',
+ httpMethod: 'post',
+ summary: 'Create payment',
+ description: 'Initiates a payment between a financial account and an external bank account.',
+ stainlessPath: '(resource) payments > (method) create',
+ qualified: 'client.payments.create',
+ params: [
+ 'amount: number;',
+ 'external_bank_account_token: string;',
+ 'financial_account_token: string;',
+ "method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY';",
+ "method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB'; ach_hold_period?: number; addenda?: string; override_company_name?: string; };",
+ "type: 'COLLECTION' | 'PAYMENT';",
+ 'token?: string;',
+ 'hold?: { token: string; };',
+ 'memo?: string;',
+ 'user_defined_id?: string;',
+ ],
+ response:
+ "{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: object[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: object | object; pending_amount: number; related_account_tokens: object; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }",
+ markdown:
+ "## create\n\n`client.payments.create(amount: number, external_bank_account_token: string, financial_account_token: string, method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY', method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB'; ach_hold_period?: number; addenda?: string; override_company_name?: string; }, type: 'COLLECTION' | 'PAYMENT', token?: string, hold?: { token: string; }, memo?: string, user_defined_id?: string): object`\n\n**post** `/v1/payments`\n\nInitiates a payment between a financial account and an external bank account.\n\n### Parameters\n\n- `amount: number`\n\n- `external_bank_account_token: string`\n\n- `financial_account_token: string`\n\n- `method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY'`\n\n- `method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB'; ach_hold_period?: number; addenda?: string; override_company_name?: string; }`\n - `sec_code: 'CCD' | 'PPD' | 'WEB'`\n - `ach_hold_period?: number`\n Number of days to hold the ACH payment\n - `addenda?: string`\n - `override_company_name?: string`\n Value to override the configured company name with. Can only be used if allowed to override\n\n- `type: 'COLLECTION' | 'PAYMENT'`\n\n- `token?: string`\n Customer-provided token that will serve as an idempotency token. This token will become the transaction token.\n\n- `hold?: { token: string; }`\n Optional hold to settle when this payment is initiated.\n - `token: string`\n Token of the hold to settle when this payment is initiated.\n\n- `memo?: string`\n\n- `user_defined_id?: string`\n\n### Returns\n\n- `{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: wire_party_details; debtor?: wire_party_details; message_id?: string; remittance_information?: string; }; pending_amount: number; related_account_tokens: { account_token: string; business_account_token: string; }; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n Payment transaction\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst payment = await client.payments.create({\n amount: 1,\n external_bank_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n method: 'ACH_NEXT_DAY',\n method_attributes: { sec_code: 'CCD' },\n type: 'COLLECTION',\n});\n\nconsole.log(payment);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/payments/{payment_token}',
+ httpMethod: 'get',
+ summary: 'Get payment by token',
+ description: 'Get the payment by token.',
+ stainlessPath: '(resource) payments > (method) retrieve',
+ qualified: 'client.payments.retrieve',
+ params: ['payment_token: string;'],
+ response:
+ "{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: object[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: object | object; pending_amount: number; related_account_tokens: object; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }",
+ markdown:
+ "## retrieve\n\n`client.payments.retrieve(payment_token: string): { token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: object[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: object | object; pending_amount: number; related_account_tokens: object; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n\n**get** `/v1/payments/{payment_token}`\n\nGet the payment by token.\n\n### Parameters\n\n- `payment_token: string`\n\n### Returns\n\n- `{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: object; debtor?: object; message_id?: string; remittance_information?: string; }; pending_amount: number; related_account_tokens: { account_token: string; business_account_token: string; }; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n Payment transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `descriptor: string`\n - `direction: 'CREDIT' | 'DEBIT'`\n - `events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]`\n - `family: 'PAYMENT'`\n - `financial_account_token: string`\n - `method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'`\n - `method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: { account_number?: string; agent_id?: string; agent_name?: string; name?: string; }; debtor?: { account_number?: string; agent_id?: string; agent_name?: string; name?: string; }; message_id?: string; remittance_information?: string; }`\n - `pending_amount: number`\n - `related_account_tokens: { account_token: string; business_account_token: string; }`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `currency?: string`\n - `expected_release_date?: string`\n - `external_bank_account_token?: string`\n - `type?: string`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst payment = await client.payments.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(payment);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/payments',
+ httpMethod: 'get',
+ summary: 'List payments',
+ description: 'List all the payments for the provided search criteria.',
+ stainlessPath: '(resource) payments > (method) list',
+ qualified: 'client.payments.list',
+ params: [
+ 'account_token?: string;',
+ 'begin?: string;',
+ 'business_account_token?: string;',
+ "category?: 'ACH';",
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'financial_account_token?: string;',
+ 'page_size?: number;',
+ "result?: 'APPROVED' | 'DECLINED';",
+ 'starting_after?: string;',
+ "status?: 'DECLINED' | 'PENDING' | 'RETURNED' | 'SETTLED';",
+ ],
+ response:
+ "{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: object[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: object | object; pending_amount: number; related_account_tokens: object; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }",
+ markdown:
+ "## list\n\n`client.payments.list(account_token?: string, begin?: string, business_account_token?: string, category?: 'ACH', end?: string, ending_before?: string, financial_account_token?: string, page_size?: number, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'DECLINED' | 'PENDING' | 'RETURNED' | 'SETTLED'): { token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: object[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: object | object; pending_amount: number; related_account_tokens: object; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n\n**get** `/v1/payments`\n\nList all the payments for the provided search criteria.\n\n### Parameters\n\n- `account_token?: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `business_account_token?: string`\n\n- `category?: 'ACH'`\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `financial_account_token?: string`\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `result?: 'APPROVED' | 'DECLINED'`\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'DECLINED' | 'PENDING' | 'RETURNED' | 'SETTLED'`\n\n### Returns\n\n- `{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: object; debtor?: object; message_id?: string; remittance_information?: string; }; pending_amount: number; related_account_tokens: { account_token: string; business_account_token: string; }; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n Payment transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `descriptor: string`\n - `direction: 'CREDIT' | 'DEBIT'`\n - `events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]`\n - `family: 'PAYMENT'`\n - `financial_account_token: string`\n - `method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'`\n - `method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: { account_number?: string; agent_id?: string; agent_name?: string; name?: string; }; debtor?: { account_number?: string; agent_id?: string; agent_name?: string; name?: string; }; message_id?: string; remittance_information?: string; }`\n - `pending_amount: number`\n - `related_account_tokens: { account_token: string; business_account_token: string; }`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `currency?: string`\n - `expected_release_date?: string`\n - `external_bank_account_token?: string`\n - `type?: string`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const payment of client.payments.list()) {\n console.log(payment);\n}\n```",
+ },
+ {
+ name: 'retry',
+ endpoint: '/v1/payments/{payment_token}/retry',
+ httpMethod: 'post',
+ summary: 'Retry payment',
+ description: 'Retry an origination which has been returned.',
+ stainlessPath: '(resource) payments > (method) retry',
+ qualified: 'client.payments.retry',
+ params: ['payment_token: string;'],
+ response:
+ "{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: object[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: object | object; pending_amount: number; related_account_tokens: object; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }",
+ markdown:
+ "## retry\n\n`client.payments.retry(payment_token: string): object`\n\n**post** `/v1/payments/{payment_token}/retry`\n\nRetry an origination which has been returned.\n\n### Parameters\n\n- `payment_token: string`\n\n### Returns\n\n- `{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: wire_party_details; debtor?: wire_party_details; message_id?: string; remittance_information?: string; }; pending_amount: number; related_account_tokens: { account_token: string; business_account_token: string; }; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n Payment transaction\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.payments.retry('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'return',
+ endpoint: '/v1/payments/{payment_token}/return',
+ httpMethod: 'post',
+ summary: 'Return payment',
+ description:
+ 'Return an ACH payment with a specified return reason code. Returns must be initiated\nwithin the time window specified by NACHA rules for each return code (typically 2 banking\ndays for most codes, 60 calendar days for unauthorized debits). For a complete list of\nreturn codes and their meanings, see the [ACH Return Reasons documentation](https://docs.lithic.com/docs/ach-overview#ach-return-reasons).\n\nNote:\n * This endpoint does not modify the state of the financial account associated with the payment. If you would like to change the account state, use the [Update financial account status](https://docs.lithic.com/reference/updatefinancialaccountstatus) endpoint.\n * By default this endpoint is not enabled for your account. Please contact your implementations manager to enable this feature.\n',
+ stainlessPath: '(resource) payments > (method) return',
+ qualified: 'client.payments.return',
+ params: [
+ 'payment_token: string;',
+ 'financial_account_token: string;',
+ 'return_reason_code: string;',
+ 'addenda?: string;',
+ 'date_of_death?: string;',
+ 'memo?: string;',
+ ],
+ response:
+ "{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: object[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: object | object; pending_amount: number; related_account_tokens: object; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }",
+ markdown:
+ "## return\n\n`client.payments.return(payment_token: string, financial_account_token: string, return_reason_code: string, addenda?: string, date_of_death?: string, memo?: string): { token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: object[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: object | object; pending_amount: number; related_account_tokens: object; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n\n**post** `/v1/payments/{payment_token}/return`\n\nReturn an ACH payment with a specified return reason code. Returns must be initiated\nwithin the time window specified by NACHA rules for each return code (typically 2 banking\ndays for most codes, 60 calendar days for unauthorized debits). For a complete list of\nreturn codes and their meanings, see the [ACH Return Reasons documentation](https://docs.lithic.com/docs/ach-overview#ach-return-reasons).\n\nNote:\n * This endpoint does not modify the state of the financial account associated with the payment. If you would like to change the account state, use the [Update financial account status](https://docs.lithic.com/reference/updatefinancialaccountstatus) endpoint.\n * By default this endpoint is not enabled for your account. Please contact your implementations manager to enable this feature.\n\n\n### Parameters\n\n- `payment_token: string`\n\n- `financial_account_token: string`\n Globally unique identifier for the financial account\n\n- `return_reason_code: string`\n ACH return reason code indicating the reason for returning the payment. Supported codes include R01-R53 and R80-R85. For a complete list of return codes and their meanings, see [ACH Return Reasons](https://docs.lithic.com/docs/ach-overview#ach-return-reasons)\n\n- `addenda?: string`\n Optional additional information about the return. Limited to 44 characters\n\n- `date_of_death?: string`\n Date of death in YYYY-MM-DD format. Required when using return codes **R14** (representative payee deceased) or **R15** (beneficiary or account holder deceased)\n\n- `memo?: string`\n Optional memo for the return. Limited to 10 characters\n\n### Returns\n\n- `{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: object; debtor?: object; message_id?: string; remittance_information?: string; }; pending_amount: number; related_account_tokens: { account_token: string; business_account_token: string; }; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n Payment transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `descriptor: string`\n - `direction: 'CREDIT' | 'DEBIT'`\n - `events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]`\n - `family: 'PAYMENT'`\n - `financial_account_token: string`\n - `method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'`\n - `method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: { account_number?: string; agent_id?: string; agent_name?: string; name?: string; }; debtor?: { account_number?: string; agent_id?: string; agent_name?: string; name?: string; }; message_id?: string; remittance_information?: string; }`\n - `pending_amount: number`\n - `related_account_tokens: { account_token: string; business_account_token: string; }`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `currency?: string`\n - `expected_release_date?: string`\n - `external_bank_account_token?: string`\n - `type?: string`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst payment = await client.payments.return('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', return_reason_code: 'R01' });\n\nconsole.log(payment);\n```",
+ },
+ {
+ name: 'simulate_action',
+ endpoint: '/v1/simulate/payments/{payment_token}/action',
+ httpMethod: 'post',
+ summary: 'Simulate payment lifecycle event',
+ description: 'Simulate payment lifecycle event',
+ stainlessPath: '(resource) payments > (method) simulate_action',
+ qualified: 'client.payments.simulateAction',
+ params: [
+ 'payment_token: string;',
+ 'event_type: string;',
+ 'date_of_death?: string;',
+ 'decline_reason?: string;',
+ 'return_addenda?: string;',
+ 'return_reason_code?: string;',
+ ],
+ response:
+ "{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }",
+ markdown:
+ "## simulate_action\n\n`client.payments.simulateAction(payment_token: string, event_type: string, date_of_death?: string, decline_reason?: string, return_addenda?: string, return_reason_code?: string): { debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n**post** `/v1/simulate/payments/{payment_token}/action`\n\nSimulate payment lifecycle event\n\n### Parameters\n\n- `payment_token: string`\n\n- `event_type: string`\n Event Type\n\n- `date_of_death?: string`\n Date of Death for ACH Return\n\n- `decline_reason?: string`\n Decline reason\n\n- `return_addenda?: string`\n Return Addenda\n\n- `return_reason_code?: string`\n Return Reason Code\n\n### Returns\n\n- `{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n - `debugging_request_id: string`\n - `result: 'APPROVED' | 'DECLINED'`\n - `transaction_event_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.payments.simulateAction('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { event_type: 'ACH_ORIGINATION_REVIEWED' });\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'simulate_receipt',
+ endpoint: '/v1/simulate/payments/receipt',
+ httpMethod: 'post',
+ summary: 'Simulate receipt',
+ description: 'Simulates a receipt of a Payment.',
+ stainlessPath: '(resource) payments > (method) simulate_receipt',
+ qualified: 'client.payments.simulateReceipt',
+ params: [
+ 'token: string;',
+ 'amount: number;',
+ 'financial_account_token: string;',
+ "receipt_type: 'RECEIPT_CREDIT' | 'RECEIPT_DEBIT';",
+ 'memo?: string;',
+ ],
+ response:
+ "{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }",
+ markdown:
+ "## simulate_receipt\n\n`client.payments.simulateReceipt(token: string, amount: number, financial_account_token: string, receipt_type: 'RECEIPT_CREDIT' | 'RECEIPT_DEBIT', memo?: string): { debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n**post** `/v1/simulate/payments/receipt`\n\nSimulates a receipt of a Payment.\n\n### Parameters\n\n- `token: string`\n Customer-generated payment token used to uniquely identify the simulated payment\n\n- `amount: number`\n Amount\n\n- `financial_account_token: string`\n Financial Account Token\n\n- `receipt_type: 'RECEIPT_CREDIT' | 'RECEIPT_DEBIT'`\n Receipt Type\n\n- `memo?: string`\n Memo\n\n### Returns\n\n- `{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n - `debugging_request_id: string`\n - `result: 'APPROVED' | 'DECLINED'`\n - `transaction_event_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.payments.simulateReceipt({\n token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n amount: 0,\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n receipt_type: 'RECEIPT_CREDIT',\n});\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'simulate_release',
+ endpoint: '/v1/simulate/payments/release',
+ httpMethod: 'post',
+ summary: 'Simulate release payment',
+ description: 'Simulates a release of a Payment.',
+ stainlessPath: '(resource) payments > (method) simulate_release',
+ qualified: 'client.payments.simulateRelease',
+ params: ['payment_token: string;'],
+ response:
+ "{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }",
+ markdown:
+ "## simulate_release\n\n`client.payments.simulateRelease(payment_token: string): { debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n**post** `/v1/simulate/payments/release`\n\nSimulates a release of a Payment.\n\n### Parameters\n\n- `payment_token: string`\n Payment Token\n\n### Returns\n\n- `{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n - `debugging_request_id: string`\n - `result: 'APPROVED' | 'DECLINED'`\n - `transaction_event_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.payments.simulateRelease({ payment_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'simulate_return',
+ endpoint: '/v1/simulate/payments/return',
+ httpMethod: 'post',
+ summary: 'Simulate return payment',
+ description: 'Simulates a return of a Payment.',
+ stainlessPath: '(resource) payments > (method) simulate_return',
+ qualified: 'client.payments.simulateReturn',
+ params: ['payment_token: string;', 'return_reason_code?: string;'],
+ response:
+ "{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }",
+ markdown:
+ "## simulate_return\n\n`client.payments.simulateReturn(payment_token: string, return_reason_code?: string): { debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n**post** `/v1/simulate/payments/return`\n\nSimulates a return of a Payment.\n\n### Parameters\n\n- `payment_token: string`\n Payment Token\n\n- `return_reason_code?: string`\n Return Reason Code\n\n### Returns\n\n- `{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n - `debugging_request_id: string`\n - `result: 'APPROVED' | 'DECLINED'`\n - `transaction_event_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.payments.simulateReturn({ payment_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/three_ds_authentication/{three_ds_authentication_token}',
+ httpMethod: 'get',
+ summary: 'Get 3DS authentication',
+ description: 'Get 3DS Authentication by token',
+ stainlessPath: '(resource) three_ds.authentication > (method) retrieve',
+ qualified: 'client.threeDS.authentication.retrieve',
+ params: ['three_ds_authentication_token: string;'],
+ response:
+ "{ token: string; account_type: 'CREDIT' | 'DEBIT' | 'NOT_APPLICABLE'; authentication_result: 'DECLINE' | 'SUCCESS' | 'PENDING_CHALLENGE' | 'PENDING_DECISION'; card_expiry_check: 'MATCH' | 'MISMATCH' | 'NOT_PRESENT'; card_token: string; cardholder: object; channel: 'APP_BASED' | 'BROWSER' | 'THREE_DS_REQUESTOR_INITIATED'; created: string; merchant: object; message_category: 'NON_PAYMENT_AUTHENTICATION' | 'PAYMENT_AUTHENTICATION'; three_ds_requestor_challenge_indicator: string; additional_data?: object; app?: object; authentication_request_type?: string; browser?: object; challenge_metadata?: object; challenge_orchestrated_by?: 'LITHIC' | 'CUSTOMER' | 'NO_CHALLENGE'; decision_made_by?: 'LITHIC_RULES' | 'LITHIC_DEFAULT' | 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'NETWORK' | 'UNKNOWN'; three_ri_request_type?: string; transaction?: object; }",
+ markdown:
+ "## retrieve\n\n`client.threeDS.authentication.retrieve(three_ds_authentication_token: string): { token: string; account_type: 'CREDIT' | 'DEBIT' | 'NOT_APPLICABLE'; authentication_result: 'DECLINE' | 'SUCCESS' | 'PENDING_CHALLENGE' | 'PENDING_DECISION'; card_expiry_check: 'MATCH' | 'MISMATCH' | 'NOT_PRESENT'; card_token: string; cardholder: object; channel: 'APP_BASED' | 'BROWSER' | 'THREE_DS_REQUESTOR_INITIATED'; created: string; merchant: object; message_category: 'NON_PAYMENT_AUTHENTICATION' | 'PAYMENT_AUTHENTICATION'; three_ds_requestor_challenge_indicator: string; additional_data?: object; app?: object; authentication_request_type?: string; browser?: object; challenge_metadata?: object; challenge_orchestrated_by?: 'LITHIC' | 'CUSTOMER' | 'NO_CHALLENGE'; decision_made_by?: 'LITHIC_RULES' | 'LITHIC_DEFAULT' | 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'NETWORK' | 'UNKNOWN'; three_ri_request_type?: string; transaction?: object; }`\n\n**get** `/v1/three_ds_authentication/{three_ds_authentication_token}`\n\nGet 3DS Authentication by token\n\n### Parameters\n\n- `three_ds_authentication_token: string`\n\n### Returns\n\n- `{ token: string; account_type: 'CREDIT' | 'DEBIT' | 'NOT_APPLICABLE'; authentication_result: 'DECLINE' | 'SUCCESS' | 'PENDING_CHALLENGE' | 'PENDING_DECISION'; card_expiry_check: 'MATCH' | 'MISMATCH' | 'NOT_PRESENT'; card_token: string; cardholder: { address_match?: boolean; address_on_file_match?: 'MATCH' | 'MATCH_ADDRESS_ONLY' | 'MATCH_ZIP_ONLY' | 'MISMATCH' | 'NOT_PRESENT'; billing_address?: { address1?: string; address2?: string; address3?: string; city?: string; country?: string; postal_code?: string; }; email?: string; name?: string; phone_number_home?: string; phone_number_mobile?: string; phone_number_work?: string; shipping_address?: { address1?: string; address2?: string; address3?: string; city?: string; country?: string; postal_code?: string; }; }; channel: 'APP_BASED' | 'BROWSER' | 'THREE_DS_REQUESTOR_INITIATED'; created: string; merchant: { risk_indicator: { delivery_email_address?: string; delivery_time_frame?: 'ELECTRONIC_DELIVERY' | 'OVERNIGHT_SHIPPING' | 'SAME_DAY_SHIPPING' | 'TWO_DAY_OR_MORE_SHIPPING'; gift_card_amount?: number; gift_card_count?: number; gift_card_currency?: string; order_availability?: 'FUTURE_AVAILABILITY' | 'MERCHANDISE_AVAILABLE'; pre_order_available_date?: string; reorder_items?: 'FIRST_TIME_ORDERED' | 'REORDERED'; shipping_method?: string; }; id?: string; country?: string; mcc?: string; name?: string; }; message_category: 'NON_PAYMENT_AUTHENTICATION' | 'PAYMENT_AUTHENTICATION'; three_ds_requestor_challenge_indicator: string; additional_data?: { network_decision?: 'LOW_RISK' | 'NOT_LOW_RISK'; network_risk_score?: number; }; app?: { device?: string; device_info?: string; ip?: string; latitude?: number; locale?: string; longitude?: number; os?: string; platform?: string; screen_height?: number; screen_width?: number; time_zone?: string; }; authentication_request_type?: string; browser?: { accept_header?: string; ip?: string; java_enabled?: boolean; javascript_enabled?: boolean; language?: string; time_zone?: string; user_agent?: string; }; challenge_metadata?: { method_type: 'SMS_OTP' | 'OUT_OF_BAND'; status: string; phone_number?: string; }; challenge_orchestrated_by?: 'LITHIC' | 'CUSTOMER' | 'NO_CHALLENGE'; decision_made_by?: 'LITHIC_RULES' | 'LITHIC_DEFAULT' | 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'NETWORK' | 'UNKNOWN'; three_ri_request_type?: string; transaction?: { amount: number; cardholder_amount: number; currency: string; currency_exponent: number; date_time: string; type: string; }; }`\n Represents a 3DS authentication\n\n - `token: string`\n - `account_type: 'CREDIT' | 'DEBIT' | 'NOT_APPLICABLE'`\n - `authentication_result: 'DECLINE' | 'SUCCESS' | 'PENDING_CHALLENGE' | 'PENDING_DECISION'`\n - `card_expiry_check: 'MATCH' | 'MISMATCH' | 'NOT_PRESENT'`\n - `card_token: string`\n - `cardholder: { address_match?: boolean; address_on_file_match?: 'MATCH' | 'MATCH_ADDRESS_ONLY' | 'MATCH_ZIP_ONLY' | 'MISMATCH' | 'NOT_PRESENT'; billing_address?: { address1?: string; address2?: string; address3?: string; city?: string; country?: string; postal_code?: string; }; email?: string; name?: string; phone_number_home?: string; phone_number_mobile?: string; phone_number_work?: string; shipping_address?: { address1?: string; address2?: string; address3?: string; city?: string; country?: string; postal_code?: string; }; }`\n - `channel: 'APP_BASED' | 'BROWSER' | 'THREE_DS_REQUESTOR_INITIATED'`\n - `created: string`\n - `merchant: { risk_indicator: { delivery_email_address?: string; delivery_time_frame?: 'ELECTRONIC_DELIVERY' | 'OVERNIGHT_SHIPPING' | 'SAME_DAY_SHIPPING' | 'TWO_DAY_OR_MORE_SHIPPING'; gift_card_amount?: number; gift_card_count?: number; gift_card_currency?: string; order_availability?: 'FUTURE_AVAILABILITY' | 'MERCHANDISE_AVAILABLE'; pre_order_available_date?: string; reorder_items?: 'FIRST_TIME_ORDERED' | 'REORDERED'; shipping_method?: string; }; id?: string; country?: string; mcc?: string; name?: string; }`\n - `message_category: 'NON_PAYMENT_AUTHENTICATION' | 'PAYMENT_AUTHENTICATION'`\n - `three_ds_requestor_challenge_indicator: string`\n - `additional_data?: { network_decision?: 'LOW_RISK' | 'NOT_LOW_RISK'; network_risk_score?: number; }`\n - `app?: { device?: string; device_info?: string; ip?: string; latitude?: number; locale?: string; longitude?: number; os?: string; platform?: string; screen_height?: number; screen_width?: number; time_zone?: string; }`\n - `authentication_request_type?: string`\n - `browser?: { accept_header?: string; ip?: string; java_enabled?: boolean; javascript_enabled?: boolean; language?: string; time_zone?: string; user_agent?: string; }`\n - `challenge_metadata?: { method_type: 'SMS_OTP' | 'OUT_OF_BAND'; status: string; phone_number?: string; }`\n - `challenge_orchestrated_by?: 'LITHIC' | 'CUSTOMER' | 'NO_CHALLENGE'`\n - `decision_made_by?: 'LITHIC_RULES' | 'LITHIC_DEFAULT' | 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'NETWORK' | 'UNKNOWN'`\n - `three_ri_request_type?: string`\n - `transaction?: { amount: number; cardholder_amount: number; currency: string; currency_exponent: number; date_time: string; type: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst threeDSAuthentication = await client.threeDS.authentication.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(threeDSAuthentication);\n```",
+ },
+ {
+ name: 'simulate',
+ endpoint: '/v1/three_ds_authentication/simulate',
+ httpMethod: 'post',
+ summary: 'Simulate 3DS authentication',
+ description:
+ "Simulates a 3DS authentication request from the payment network as if it came from an ACS. If you're configured for 3DS Customer Decisioning, simulating authentications requires your customer decisioning endpoint to be set up properly (respond with a valid JSON). If the authentication decision is to challenge, ensure that the account holder associated with the card transaction has a valid phone number configured to receive the OTP code via SMS. ",
+ stainlessPath: '(resource) three_ds.authentication > (method) simulate',
+ qualified: 'client.threeDS.authentication.simulate',
+ params: [
+ 'merchant: { id: string; country: string; mcc: string; name: string; };',
+ 'pan: string;',
+ 'transaction: { amount: number; currency: string; };',
+ "card_expiry_check?: 'MATCH' | 'MISMATCH' | 'NOT_PRESENT';",
+ ],
+ response: '{ token?: string; }',
+ markdown:
+ "## simulate\n\n`client.threeDS.authentication.simulate(merchant: { id: string; country: string; mcc: string; name: string; }, pan: string, transaction: { amount: number; currency: string; }, card_expiry_check?: 'MATCH' | 'MISMATCH' | 'NOT_PRESENT'): { token?: string; }`\n\n**post** `/v1/three_ds_authentication/simulate`\n\nSimulates a 3DS authentication request from the payment network as if it came from an ACS. If you're configured for 3DS Customer Decisioning, simulating authentications requires your customer decisioning endpoint to be set up properly (respond with a valid JSON). If the authentication decision is to challenge, ensure that the account holder associated with the card transaction has a valid phone number configured to receive the OTP code via SMS. \n\n### Parameters\n\n- `merchant: { id: string; country: string; mcc: string; name: string; }`\n Merchant information for the simulated transaction\n - `id: string`\n Unique identifier to identify the payment card acceptor. Corresponds to `merchant_acceptor_id` in authorization.\n - `country: string`\n Country of the address provided by the cardholder in ISO 3166-1 alpha-3 format (e.g. USA)\n - `mcc: string`\n Merchant category code for the transaction to be simulated. A four-digit number listed in ISO 18245. Supported merchant category codes can be found [here](https://docs.lithic.com/docs/transactions#merchant-category-codes-mccs).\n - `name: string`\n Merchant descriptor, corresponds to `descriptor` in authorization. If CHALLENGE keyword is included, Lithic will trigger a challenge.\n\n- `pan: string`\n Sixteen digit card number.\n\n- `transaction: { amount: number; currency: string; }`\n Transaction details for the simulation\n - `amount: number`\n Amount (in cents) to authenticate.\n - `currency: string`\n 3-character alphabetic ISO 4217 currency code.\n\n- `card_expiry_check?: 'MATCH' | 'MISMATCH' | 'NOT_PRESENT'`\n When set will use the following values as part of the Simulated Authentication. When not set defaults to MATCH\n\n### Returns\n\n- `{ token?: string; }`\n\n - `token?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.threeDS.authentication.simulate({\n merchant: {\n id: 'OODKZAPJVN4YS7O',\n country: 'USA',\n mcc: '5812',\n name: 'COFFEE SHOP',\n},\n pan: '4111111289144142',\n transaction: { amount: 0, currency: 'GBP' },\n});\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'simulate_otp_entry',
+ endpoint: '/v1/three_ds_decisioning/simulate/enter_otp',
+ httpMethod: 'post',
+ summary: 'Simulate entering OTP into 3DS Challenge UI',
+ description:
+ 'Endpoint for simulating entering OTP into 3DS Challenge UI. A call to [/v1/three_ds_authentication/simulate](https://docs.lithic.com/reference/postsimulateauthentication) that resulted in triggered SMS-OTP challenge must precede. Only a single attempt is supported; upon entering OTP, the challenge is either approved or declined.',
+ stainlessPath: '(resource) three_ds.authentication > (method) simulate_otp_entry',
+ qualified: 'client.threeDS.authentication.simulateOtpEntry',
+ params: ['token: string;', 'otp: string;'],
+ markdown:
+ "## simulate_otp_entry\n\n`client.threeDS.authentication.simulateOtpEntry(token: string, otp: string): void`\n\n**post** `/v1/three_ds_decisioning/simulate/enter_otp`\n\nEndpoint for simulating entering OTP into 3DS Challenge UI. A call to [/v1/three_ds_authentication/simulate](https://docs.lithic.com/reference/postsimulateauthentication) that resulted in triggered SMS-OTP challenge must precede. Only a single attempt is supported; upon entering OTP, the challenge is either approved or declined.\n\n### Parameters\n\n- `token: string`\n A unique token returned as part of a /v1/three_ds_authentication/simulate call that resulted in PENDING_CHALLENGE authentication result.\n\n- `otp: string`\n The OTP entered by the cardholder\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.threeDS.authentication.simulateOtpEntry({ token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac', otp: '123456' })\n```",
+ },
+ {
+ name: 'challenge_response',
+ endpoint: '/v1/three_ds_decisioning/challenge_response',
+ httpMethod: 'post',
+ summary: 'Respond to a Challenge Request',
+ description:
+ "Card program's response to a 3DS Challenge Request.\nChallenge Request is emitted as a webhook [three_ds_authentication.challenge](https://docs.lithic.com/reference/post_three-ds-authentication-challenge) and your Card Program needs to be configured with Out of Band (OOB) Challenges in order to receive it (see https://docs.lithic.com/docs/3ds-challenge-flow for more information).",
+ stainlessPath: '(resource) three_ds.decisioning > (method) challenge_response',
+ qualified: 'client.threeDS.decisioning.challengeResponse',
+ params: ['token: string;', "challenge_response: 'APPROVE' | 'DECLINE_BY_CUSTOMER';"],
+ markdown:
+ "## challenge_response\n\n`client.threeDS.decisioning.challengeResponse(token: string, challenge_response: 'APPROVE' | 'DECLINE_BY_CUSTOMER'): void`\n\n**post** `/v1/three_ds_decisioning/challenge_response`\n\nCard program's response to a 3DS Challenge Request.\nChallenge Request is emitted as a webhook [three_ds_authentication.challenge](https://docs.lithic.com/reference/post_three-ds-authentication-challenge) and your Card Program needs to be configured with Out of Band (OOB) Challenges in order to receive it (see https://docs.lithic.com/docs/3ds-challenge-flow for more information).\n\n### Parameters\n\n- `token: string`\n Globally unique identifier for 3DS Authentication that resulted in PENDING_CHALLENGE authentication result.\n\n- `challenge_response: 'APPROVE' | 'DECLINE_BY_CUSTOMER'`\n Whether the Cardholder has approved or declined the issued Challenge\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.threeDS.decisioning.challengeResponse({ token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', challenge_response: 'APPROVE' })\n```",
+ },
+ {
+ name: 'retrieve_secret',
+ endpoint: '/v1/three_ds_decisioning/secret',
+ httpMethod: 'get',
+ summary: 'Retrieve the 3DS Decisioning HMAC secret key',
+ description:
+ 'Retrieve the 3DS Decisioning HMAC secret key. If one does not exist for your program yet, calling this endpoint will create one for you. The headers (which you can use to verify 3DS Decisioning requests) will begin appearing shortly after calling this endpoint for the first time. See [this page](https://docs.lithic.com/docs/3ds-decisioning#3ds-decisioning-hmac-secrets) for more detail about verifying 3DS Decisioning requests.\n',
+ stainlessPath: '(resource) three_ds.decisioning > (method) retrieve_secret',
+ qualified: 'client.threeDS.decisioning.retrieveSecret',
+ response: '{ secret?: string; }',
+ markdown:
+ "## retrieve_secret\n\n`client.threeDS.decisioning.retrieveSecret(): { secret?: string; }`\n\n**get** `/v1/three_ds_decisioning/secret`\n\nRetrieve the 3DS Decisioning HMAC secret key. If one does not exist for your program yet, calling this endpoint will create one for you. The headers (which you can use to verify 3DS Decisioning requests) will begin appearing shortly after calling this endpoint for the first time. See [this page](https://docs.lithic.com/docs/3ds-decisioning#3ds-decisioning-hmac-secrets) for more detail about verifying 3DS Decisioning requests.\n\n\n### Returns\n\n- `{ secret?: string; }`\n\n - `secret?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.threeDS.decisioning.retrieveSecret();\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'rotate_secret',
+ endpoint: '/v1/three_ds_decisioning/secret/rotate',
+ httpMethod: 'post',
+ summary: 'Rotate the 3DS Decisioning HMAC secret key',
+ description:
+ 'Generate a new 3DS Decisioning HMAC secret key. The old secret key will be deactivated 24 hours after a successful request to this endpoint. Make a [`GET /three_ds_decisioning/secret`](https://docs.lithic.com/reference/getthreedsdecisioningsecret) request to retrieve the new secret key.\n',
+ stainlessPath: '(resource) three_ds.decisioning > (method) rotate_secret',
+ qualified: 'client.threeDS.decisioning.rotateSecret',
+ markdown:
+ "## rotate_secret\n\n`client.threeDS.decisioning.rotateSecret(): void`\n\n**post** `/v1/three_ds_decisioning/secret/rotate`\n\nGenerate a new 3DS Decisioning HMAC secret key. The old secret key will be deactivated 24 hours after a successful request to this endpoint. Make a [`GET /three_ds_decisioning/secret`](https://docs.lithic.com/reference/getthreedsdecisioningsecret) request to retrieve the new secret key.\n\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.threeDS.decisioning.rotateSecret()\n```",
+ },
+ {
+ name: 'list_details',
+ endpoint: '/v1/reports/settlement/details/{report_date}',
+ httpMethod: 'get',
+ summary: 'List settlement details',
+ description: 'List details.',
+ stainlessPath: '(resource) reports.settlement > (method) list_details',
+ qualified: 'client.reports.settlement.listDetails',
+ params: [
+ 'report_date: string;',
+ 'ending_before?: string;',
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ ],
+ response:
+ "{ token: string; account_token: string; card_program_token: string; card_token: string; created: string; currency: string; disputes_gross_amount: number; event_tokens: string[]; institution: string; interchange_fee_extended_precision: number; interchange_gross_amount: number; network: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_details: { ISA?: number; }; other_fees_gross_amount: number; report_date: string; settlement_date: string; transaction_token: string; transactions_gross_amount: number; type: string; updated: string; fee_description?: string; }",
+ markdown:
+ "## list_details\n\n`client.reports.settlement.listDetails(report_date: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; account_token: string; card_program_token: string; card_token: string; created: string; currency: string; disputes_gross_amount: number; event_tokens: string[]; institution: string; interchange_fee_extended_precision: number; interchange_gross_amount: number; network: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_details: object; other_fees_gross_amount: number; report_date: string; settlement_date: string; transaction_token: string; transactions_gross_amount: number; type: string; updated: string; fee_description?: string; }`\n\n**get** `/v1/reports/settlement/details/{report_date}`\n\nList details.\n\n### Parameters\n\n- `report_date: string`\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Number of records per page.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; card_token: string; created: string; currency: string; disputes_gross_amount: number; event_tokens: string[]; institution: string; interchange_fee_extended_precision: number; interchange_gross_amount: number; network: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_details: { ISA?: number; }; other_fees_gross_amount: number; report_date: string; settlement_date: string; transaction_token: string; transactions_gross_amount: number; type: string; updated: string; fee_description?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `card_program_token: string`\n - `card_token: string`\n - `created: string`\n - `currency: string`\n - `disputes_gross_amount: number`\n - `event_tokens: string[]`\n - `institution: string`\n - `interchange_fee_extended_precision: number`\n - `interchange_gross_amount: number`\n - `network: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'`\n - `other_fees_details: { ISA?: number; }`\n - `other_fees_gross_amount: number`\n - `report_date: string`\n - `settlement_date: string`\n - `transaction_token: string`\n - `transactions_gross_amount: number`\n - `type: string`\n - `updated: string`\n - `fee_description?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const settlementDetail of client.reports.settlement.listDetails('2023-09-01')) {\n console.log(settlementDetail);\n}\n```",
+ },
+ {
+ name: 'summary',
+ endpoint: '/v1/reports/settlement/summary/{report_date}',
+ httpMethod: 'get',
+ summary: 'Get settlement summary',
+ description: 'Get the settlement report for a specified report date. Not available in sandbox.',
+ stainlessPath: '(resource) reports.settlement > (method) summary',
+ qualified: 'client.reports.settlement.summary',
+ params: ['report_date: string;'],
+ response:
+ "{ created: string; currency: string; details: { currency?: string; disputes_gross_amount?: number; institution?: string; interchange_gross_amount?: number; network?: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_gross_amount?: number; settled_net_amount?: number; transactions_gross_amount?: number; }[]; disputes_gross_amount: number; interchange_gross_amount: number; is_complete: boolean; other_fees_gross_amount: number; report_date: string; settled_net_amount: number; transactions_gross_amount: number; updated: string; }",
+ markdown:
+ "## summary\n\n`client.reports.settlement.summary(report_date: string): { created: string; currency: string; details: settlement_summary_details[]; disputes_gross_amount: number; interchange_gross_amount: number; is_complete: boolean; other_fees_gross_amount: number; report_date: string; settled_net_amount: number; transactions_gross_amount: number; updated: string; }`\n\n**get** `/v1/reports/settlement/summary/{report_date}`\n\nGet the settlement report for a specified report date. Not available in sandbox.\n\n### Parameters\n\n- `report_date: string`\n\n### Returns\n\n- `{ created: string; currency: string; details: { currency?: string; disputes_gross_amount?: number; institution?: string; interchange_gross_amount?: number; network?: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_gross_amount?: number; settled_net_amount?: number; transactions_gross_amount?: number; }[]; disputes_gross_amount: number; interchange_gross_amount: number; is_complete: boolean; other_fees_gross_amount: number; report_date: string; settled_net_amount: number; transactions_gross_amount: number; updated: string; }`\n\n - `created: string`\n - `currency: string`\n - `details: { currency?: string; disputes_gross_amount?: number; institution?: string; interchange_gross_amount?: number; network?: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_gross_amount?: number; settled_net_amount?: number; transactions_gross_amount?: number; }[]`\n - `disputes_gross_amount: number`\n - `interchange_gross_amount: number`\n - `is_complete: boolean`\n - `other_fees_gross_amount: number`\n - `report_date: string`\n - `settled_net_amount: number`\n - `transactions_gross_amount: number`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst settlementReport = await client.reports.settlement.summary('2023-09-01');\n\nconsole.log(settlementReport);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/reports/settlement/network_totals/{token}',
+ httpMethod: 'get',
+ summary: 'Get network total',
+ description: 'Retrieve a specific network total record by token. Not available in sandbox.',
+ stainlessPath: '(resource) reports.settlement.network_totals > (method) retrieve',
+ qualified: 'client.reports.settlement.networkTotals.retrieve',
+ params: ['token: string;'],
+ response:
+ "{ token: string; amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }",
+ markdown:
+ "## retrieve\n\n`client.reports.settlement.networkTotals.retrieve(token: string): { token: string; amounts: object; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }`\n\n**get** `/v1/reports/settlement/network_totals/{token}`\n\nRetrieve a specific network total record by token. Not available in sandbox.\n\n### Parameters\n\n- `token: string`\n\n### Returns\n\n- `{ token: string; amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }`\n\n - `token: string`\n - `amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }`\n - `created: string`\n - `currency: string`\n - `institution_id: string`\n - `is_complete: boolean`\n - `network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'`\n - `report_date: string`\n - `settlement_institution_id: string`\n - `settlement_service: string`\n - `updated: string`\n - `cycle?: number`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst networkTotal = await client.reports.settlement.networkTotals.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(networkTotal);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/reports/settlement/network_totals',
+ httpMethod: 'get',
+ summary: 'List network totals',
+ description: 'List network total records with optional filters. Not available in sandbox.',
+ stainlessPath: '(resource) reports.settlement.network_totals > (method) list',
+ qualified: 'client.reports.settlement.networkTotals.list',
+ params: [
+ 'begin?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'institution_id?: string;',
+ "network?: 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK';",
+ 'page_size?: number;',
+ 'report_date?: string;',
+ 'report_date_begin?: string;',
+ 'report_date_end?: string;',
+ 'settlement_institution_id?: string;',
+ 'starting_after?: string;',
+ ],
+ response:
+ "{ token: string; amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }",
+ markdown:
+ "## list\n\n`client.reports.settlement.networkTotals.list(begin?: string, end?: string, ending_before?: string, institution_id?: string, network?: 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK', page_size?: number, report_date?: string, report_date_begin?: string, report_date_end?: string, settlement_institution_id?: string, starting_after?: string): { token: string; amounts: object; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }`\n\n**get** `/v1/reports/settlement/network_totals`\n\nList network total records with optional filters. Not available in sandbox.\n\n### Parameters\n\n- `begin?: string`\n Datetime in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Datetime in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `institution_id?: string`\n Institution ID to filter on.\n\n- `network?: 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'`\n Network to filter on.\n\n- `page_size?: number`\n Number of records per page.\n\n- `report_date?: string`\n Singular report date to filter on (YYYY-MM-DD). Cannot be populated in conjunction with report_date_begin or report_date_end.\n\n- `report_date_begin?: string`\n Earliest report date to filter on, inclusive (YYYY-MM-DD).\n\n- `report_date_end?: string`\n Latest report date to filter on, inclusive (YYYY-MM-DD).\n\n- `settlement_institution_id?: string`\n Settlement institution ID to filter on.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }`\n\n - `token: string`\n - `amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }`\n - `created: string`\n - `currency: string`\n - `institution_id: string`\n - `is_complete: boolean`\n - `network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'`\n - `report_date: string`\n - `settlement_institution_id: string`\n - `settlement_service: string`\n - `updated: string`\n - `cycle?: number`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const networkTotal of client.reports.settlement.networkTotals.list()) {\n console.log(networkTotal);\n}\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/card_programs/{card_program_token}',
+ httpMethod: 'get',
+ summary: 'Get card program',
+ description: 'Get card program.',
+ stainlessPath: '(resource) card_programs > (method) retrieve',
+ qualified: 'client.cardPrograms.retrieve',
+ params: ['card_program_token: string;'],
+ response:
+ '{ token: string; account_level_management_enabled: boolean; created: string; name: string; pan_range_end: string; pan_range_start: string; cardholder_currency?: string; settlement_currencies?: string[]; }',
+ markdown:
+ "## retrieve\n\n`client.cardPrograms.retrieve(card_program_token: string): { token: string; account_level_management_enabled: boolean; created: string; name: string; pan_range_end: string; pan_range_start: string; cardholder_currency?: string; settlement_currencies?: string[]; }`\n\n**get** `/v1/card_programs/{card_program_token}`\n\nGet card program.\n\n### Parameters\n\n- `card_program_token: string`\n\n### Returns\n\n- `{ token: string; account_level_management_enabled: boolean; created: string; name: string; pan_range_end: string; pan_range_start: string; cardholder_currency?: string; settlement_currencies?: string[]; }`\n\n - `token: string`\n - `account_level_management_enabled: boolean`\n - `created: string`\n - `name: string`\n - `pan_range_end: string`\n - `pan_range_start: string`\n - `cardholder_currency?: string`\n - `settlement_currencies?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst cardProgram = await client.cardPrograms.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(cardProgram);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/card_programs',
+ httpMethod: 'get',
+ summary: 'List card programs',
+ description: 'List card programs.',
+ stainlessPath: '(resource) card_programs > (method) list',
+ qualified: 'client.cardPrograms.list',
+ params: ['ending_before?: string;', 'page_size?: number;', 'starting_after?: string;'],
+ response:
+ '{ token: string; account_level_management_enabled: boolean; created: string; name: string; pan_range_end: string; pan_range_start: string; cardholder_currency?: string; settlement_currencies?: string[]; }',
+ markdown:
+ "## list\n\n`client.cardPrograms.list(ending_before?: string, page_size?: number, starting_after?: string): { token: string; account_level_management_enabled: boolean; created: string; name: string; pan_range_end: string; pan_range_start: string; cardholder_currency?: string; settlement_currencies?: string[]; }`\n\n**get** `/v1/card_programs`\n\nList card programs.\n\n### Parameters\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_level_management_enabled: boolean; created: string; name: string; pan_range_end: string; pan_range_start: string; cardholder_currency?: string; settlement_currencies?: string[]; }`\n\n - `token: string`\n - `account_level_management_enabled: boolean`\n - `created: string`\n - `name: string`\n - `pan_range_end: string`\n - `pan_range_start: string`\n - `cardholder_currency?: string`\n - `settlement_currencies?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const cardProgram of client.cardPrograms.list()) {\n console.log(cardProgram);\n}\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/digital_card_art/{digital_card_art_token}',
+ httpMethod: 'get',
+ summary: 'Get digital card art by token',
+ description: 'Get digital card art by token.',
+ stainlessPath: '(resource) digital_card_art > (method) retrieve',
+ qualified: 'client.digitalCardArt.retrieve',
+ params: ['digital_card_art_token: string;'],
+ response:
+ "{ token: string; card_program_token: string; created: string; description: string; is_enabled: boolean; network: 'MASTERCARD' | 'VISA'; is_card_program_default?: boolean; }",
+ markdown:
+ "## retrieve\n\n`client.digitalCardArt.retrieve(digital_card_art_token: string): { token: string; card_program_token: string; created: string; description: string; is_enabled: boolean; network: 'MASTERCARD' | 'VISA'; is_card_program_default?: boolean; }`\n\n**get** `/v1/digital_card_art/{digital_card_art_token}`\n\nGet digital card art by token.\n\n### Parameters\n\n- `digital_card_art_token: string`\n\n### Returns\n\n- `{ token: string; card_program_token: string; created: string; description: string; is_enabled: boolean; network: 'MASTERCARD' | 'VISA'; is_card_program_default?: boolean; }`\n\n - `token: string`\n - `card_program_token: string`\n - `created: string`\n - `description: string`\n - `is_enabled: boolean`\n - `network: 'MASTERCARD' | 'VISA'`\n - `is_card_program_default?: boolean`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst digitalCardArt = await client.digitalCardArt.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(digitalCardArt);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/digital_card_art',
+ httpMethod: 'get',
+ summary: 'List digital card art',
+ description: 'List digital card art.',
+ stainlessPath: '(resource) digital_card_art > (method) list',
+ qualified: 'client.digitalCardArt.list',
+ params: ['ending_before?: string;', 'page_size?: number;', 'starting_after?: string;'],
+ response:
+ "{ token: string; card_program_token: string; created: string; description: string; is_enabled: boolean; network: 'MASTERCARD' | 'VISA'; is_card_program_default?: boolean; }",
+ markdown:
+ "## list\n\n`client.digitalCardArt.list(ending_before?: string, page_size?: number, starting_after?: string): { token: string; card_program_token: string; created: string; description: string; is_enabled: boolean; network: 'MASTERCARD' | 'VISA'; is_card_program_default?: boolean; }`\n\n**get** `/v1/digital_card_art`\n\nList digital card art.\n\n### Parameters\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; card_program_token: string; created: string; description: string; is_enabled: boolean; network: 'MASTERCARD' | 'VISA'; is_card_program_default?: boolean; }`\n\n - `token: string`\n - `card_program_token: string`\n - `created: string`\n - `description: string`\n - `is_enabled: boolean`\n - `network: 'MASTERCARD' | 'VISA'`\n - `is_card_program_default?: boolean`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const digitalCardArt of client.digitalCardArt.list()) {\n console.log(digitalCardArt);\n}\n```",
+ },
+ {
+ name: 'create',
+ endpoint: '/v1/book_transfers',
+ httpMethod: 'post',
+ summary: 'Create book transfer',
+ description: 'Book transfer funds between two financial accounts or between a financial account and card',
+ stainlessPath: '(resource) book_transfers > (method) create',
+ qualified: 'client.bookTransfers.create',
+ params: [
+ 'amount: number;',
+ 'category: string;',
+ 'from_financial_account_token: string;',
+ 'subtype: string;',
+ 'to_financial_account_token: string;',
+ 'type: string;',
+ 'token?: string;',
+ 'external_id?: string;',
+ 'hold_token?: string;',
+ 'memo?: string;',
+ "on_closed_account?: 'FAIL' | 'USE_SUSPENSE';",
+ ],
+ response:
+ "{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }",
+ markdown:
+ "## create\n\n`client.bookTransfers.create(amount: number, category: string, from_financial_account_token: string, subtype: string, to_financial_account_token: string, type: string, token?: string, external_id?: string, hold_token?: string, memo?: string, on_closed_account?: 'FAIL' | 'USE_SUSPENSE'): { token: string; category: string; created: string; currency: string; events: object[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: external_resource; transaction_series?: object; }`\n\n**post** `/v1/book_transfers`\n\nBook transfer funds between two financial accounts or between a financial account and card\n\n### Parameters\n\n- `amount: number`\n Amount to be transferred in the currency's smallest unit (e.g., cents for USD). This should always be a positive value.\n\n- `category: string`\n\n- `from_financial_account_token: string`\n Globally unique identifier for the financial account or card that will send the funds. Accepted type dependent on the program's use case.\n\n- `subtype: string`\n The program specific subtype code for the specified category/type.\n\n- `to_financial_account_token: string`\n Globally unique identifier for the financial account or card that will receive the funds. Accepted type dependent on the program's use case.\n\n- `type: string`\n Type of the book transfer\n\n- `token?: string`\n Customer-provided token that will serve as an idempotency token. This token will become the transaction token.\n\n- `external_id?: string`\n External ID defined by the customer\n\n- `hold_token?: string`\n Token of an existing hold to settle when this transfer is initiated\n\n- `memo?: string`\n Optional descriptor for the transfer.\n\n- `on_closed_account?: 'FAIL' | 'USE_SUSPENSE'`\n What to do if the financial account is closed when posting an operation\n\n### Returns\n\n- `{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }`\n Book transfer transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `currency: string`\n - `events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]`\n - `family: 'TRANSFER'`\n - `from_financial_account_token: string`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `to_financial_account_token: string`\n - `updated: string`\n - `external_id?: string`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst bookTransferResponse = await client.bookTransfers.create({\n amount: 1,\n category: 'ADJUSTMENT',\n from_financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n subtype: 'subtype',\n to_financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n type: 'ATM_BALANCE_INQUIRY',\n});\n\nconsole.log(bookTransferResponse);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/book_transfers/{book_transfer_token}',
+ httpMethod: 'get',
+ summary: 'Get book transfer by token',
+ description: 'Get book transfer by token',
+ stainlessPath: '(resource) book_transfers > (method) retrieve',
+ qualified: 'client.bookTransfers.retrieve',
+ params: ['book_transfer_token: string;'],
+ response:
+ "{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }",
+ markdown:
+ "## retrieve\n\n`client.bookTransfers.retrieve(book_transfer_token: string): { token: string; category: string; created: string; currency: string; events: object[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: external_resource; transaction_series?: object; }`\n\n**get** `/v1/book_transfers/{book_transfer_token}`\n\nGet book transfer by token\n\n### Parameters\n\n- `book_transfer_token: string`\n\n### Returns\n\n- `{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }`\n Book transfer transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `currency: string`\n - `events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]`\n - `family: 'TRANSFER'`\n - `from_financial_account_token: string`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `to_financial_account_token: string`\n - `updated: string`\n - `external_id?: string`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst bookTransferResponse = await client.bookTransfers.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(bookTransferResponse);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/book_transfers',
+ httpMethod: 'get',
+ summary: 'List book transfers',
+ description: 'List book transfers',
+ stainlessPath: '(resource) book_transfers > (method) list',
+ qualified: 'client.bookTransfers.list',
+ params: [
+ 'account_token?: string;',
+ 'begin?: string;',
+ 'business_account_token?: string;',
+ 'category?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'financial_account_token?: string;',
+ 'page_size?: number;',
+ "result?: 'APPROVED' | 'DECLINED';",
+ 'starting_after?: string;',
+ "status?: 'DECLINED' | 'SETTLED';",
+ ],
+ response:
+ "{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }",
+ markdown:
+ "## list\n\n`client.bookTransfers.list(account_token?: string, begin?: string, business_account_token?: string, category?: string, end?: string, ending_before?: string, financial_account_token?: string, page_size?: number, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'DECLINED' | 'SETTLED'): { token: string; category: string; created: string; currency: string; events: object[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: external_resource; transaction_series?: object; }`\n\n**get** `/v1/book_transfers`\n\nList book transfers\n\n### Parameters\n\n- `account_token?: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `business_account_token?: string`\n\n- `category?: string`\n Book Transfer category to be returned.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `financial_account_token?: string`\n Globally unique identifier for the financial account or card that will send the funds. Accepted type dependent on the program's use case.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `result?: 'APPROVED' | 'DECLINED'`\n Book transfer result to be returned.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'DECLINED' | 'SETTLED'`\n Book transfer status to be returned.\n\n### Returns\n\n- `{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }`\n Book transfer transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `currency: string`\n - `events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]`\n - `family: 'TRANSFER'`\n - `from_financial_account_token: string`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `to_financial_account_token: string`\n - `updated: string`\n - `external_id?: string`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const bookTransferResponse of client.bookTransfers.list()) {\n console.log(bookTransferResponse);\n}\n```",
+ },
+ {
+ name: 'retry',
+ endpoint: '/v1/book_transfers/{book_transfer_token}/retry',
+ httpMethod: 'post',
+ summary: 'Retry book transfer',
+ description: 'Retry a book transfer that has been declined',
+ stainlessPath: '(resource) book_transfers > (method) retry',
+ qualified: 'client.bookTransfers.retry',
+ params: ['book_transfer_token: string;', 'retry_token: string;'],
+ response:
+ "{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }",
+ markdown:
+ "## retry\n\n`client.bookTransfers.retry(book_transfer_token: string, retry_token: string): { token: string; category: string; created: string; currency: string; events: object[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: external_resource; transaction_series?: object; }`\n\n**post** `/v1/book_transfers/{book_transfer_token}/retry`\n\nRetry a book transfer that has been declined\n\n### Parameters\n\n- `book_transfer_token: string`\n\n- `retry_token: string`\n Customer-provided token that will serve as an idempotency token. This token will become the transaction token.\n\n### Returns\n\n- `{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }`\n Book transfer transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `currency: string`\n - `events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]`\n - `family: 'TRANSFER'`\n - `from_financial_account_token: string`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `to_financial_account_token: string`\n - `updated: string`\n - `external_id?: string`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst bookTransferResponse = await client.bookTransfers.retry('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { retry_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(bookTransferResponse);\n```",
+ },
+ {
+ name: 'reverse',
+ endpoint: '/v1/book_transfers/{book_transfer_token}/reverse',
+ httpMethod: 'post',
+ summary: 'Reverse book transfer',
+ description: 'Reverse a book transfer',
+ stainlessPath: '(resource) book_transfers > (method) reverse',
+ qualified: 'client.bookTransfers.reverse',
+ params: ['book_transfer_token: string;', 'memo?: string;'],
+ response:
+ "{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }",
+ markdown:
+ "## reverse\n\n`client.bookTransfers.reverse(book_transfer_token: string, memo?: string): { token: string; category: string; created: string; currency: string; events: object[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: external_resource; transaction_series?: object; }`\n\n**post** `/v1/book_transfers/{book_transfer_token}/reverse`\n\nReverse a book transfer\n\n### Parameters\n\n- `book_transfer_token: string`\n\n- `memo?: string`\n Optional descriptor for the reversal.\n\n### Returns\n\n- `{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }`\n Book transfer transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `currency: string`\n - `events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]`\n - `family: 'TRANSFER'`\n - `from_financial_account_token: string`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `to_financial_account_token: string`\n - `updated: string`\n - `external_id?: string`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst bookTransferResponse = await client.bookTransfers.reverse('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(bookTransferResponse);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/credit_products/{credit_product_token}/extended_credit',
+ httpMethod: 'get',
+ summary: 'Get extended credit',
+ description: 'Get the extended credit for a given credit product under a program',
+ stainlessPath: '(resource) credit_products.extended_credit > (method) retrieve',
+ qualified: 'client.creditProducts.extendedCredit.retrieve',
+ params: ['credit_product_token: string;'],
+ response: '{ credit_extended: number; }',
+ markdown:
+ "## retrieve\n\n`client.creditProducts.extendedCredit.retrieve(credit_product_token: string): { credit_extended: number; }`\n\n**get** `/v1/credit_products/{credit_product_token}/extended_credit`\n\nGet the extended credit for a given credit product under a program\n\n### Parameters\n\n- `credit_product_token: string`\n\n### Returns\n\n- `{ credit_extended: number; }`\n\n - `credit_extended: number`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst extendedCredit = await client.creditProducts.extendedCredit.retrieve('credit_product_token');\n\nconsole.log(extendedCredit);\n```",
+ },
+ {
+ name: 'create',
+ endpoint: '/v1/credit_products/{credit_product_token}/prime_rates',
+ httpMethod: 'post',
+ summary: 'Post Credit Product Prime Rate',
+ description: 'Post Credit Product Prime Rate',
+ stainlessPath: '(resource) credit_products.prime_rates > (method) create',
+ qualified: 'client.creditProducts.primeRates.create',
+ params: ['credit_product_token: string;', 'effective_date: string;', 'rate: string;'],
+ markdown:
+ "## create\n\n`client.creditProducts.primeRates.create(credit_product_token: string, effective_date: string, rate: string): void`\n\n**post** `/v1/credit_products/{credit_product_token}/prime_rates`\n\nPost Credit Product Prime Rate\n\n### Parameters\n\n- `credit_product_token: string`\n Globally unique identifier for credit products.\n\n- `effective_date: string`\n Date the rate goes into effect\n\n- `rate: string`\n The rate in decimal format\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.creditProducts.primeRates.create('credit_product_token', { effective_date: '2019-12-27', rate: 'rate' })\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/credit_products/{credit_product_token}/prime_rates',
+ httpMethod: 'get',
+ summary: 'Get Credit Product Prime Rates',
+ description: 'Get Credit Product Prime Rates',
+ stainlessPath: '(resource) credit_products.prime_rates > (method) retrieve',
+ qualified: 'client.creditProducts.primeRates.retrieve',
+ params: ['credit_product_token: string;', 'ending_before?: string;', 'starting_after?: string;'],
+ response: '{ data: { effective_date: string; rate: string; }[]; has_more: boolean; }',
+ markdown:
+ "## retrieve\n\n`client.creditProducts.primeRates.retrieve(credit_product_token: string, ending_before?: string, starting_after?: string): { data: object[]; has_more: boolean; }`\n\n**get** `/v1/credit_products/{credit_product_token}/prime_rates`\n\nGet Credit Product Prime Rates\n\n### Parameters\n\n- `credit_product_token: string`\n Globally unique identifier for credit products.\n\n- `ending_before?: string`\n The effective date that the prime rates ends before\n\n- `starting_after?: string`\n The effective date that the prime rate starts after\n\n### Returns\n\n- `{ data: { effective_date: string; rate: string; }[]; has_more: boolean; }`\n\n - `data: { effective_date: string; rate: string; }[]`\n - `has_more: boolean`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst primeRate = await client.creditProducts.primeRates.retrieve('credit_product_token');\n\nconsole.log(primeRate);\n```",
+ },
+ {
+ name: 'create',
+ endpoint: '/v1/external_payments',
+ httpMethod: 'post',
+ summary: 'Create external payment',
+ description: 'Create external payment',
+ stainlessPath: '(resource) external_payments > (method) create',
+ qualified: 'client.externalPayments.create',
+ params: [
+ 'amount: number;',
+ 'category: string;',
+ 'effective_date: string;',
+ 'financial_account_token: string;',
+ "payment_type: 'DEPOSIT' | 'WITHDRAWAL';",
+ 'token?: string;',
+ 'memo?: string;',
+ "progress_to?: 'SETTLED' | 'RELEASED';",
+ 'user_defined_id?: string;',
+ ],
+ response:
+ "{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }",
+ markdown:
+ "## create\n\n`client.externalPayments.create(amount: number, category: string, effective_date: string, financial_account_token: string, payment_type: 'DEPOSIT' | 'WITHDRAWAL', token?: string, memo?: string, progress_to?: 'SETTLED' | 'RELEASED', user_defined_id?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**post** `/v1/external_payments`\n\nCreate external payment\n\n### Parameters\n\n- `amount: number`\n\n- `category: string`\n\n- `effective_date: string`\n\n- `financial_account_token: string`\n\n- `payment_type: 'DEPOSIT' | 'WITHDRAWAL'`\n\n- `token?: string`\n Customer-provided token that will serve as an idempotency token. This token will become the transaction token.\n\n- `memo?: string`\n\n- `progress_to?: 'SETTLED' | 'RELEASED'`\n\n- `user_defined_id?: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalPayment = await client.externalPayments.create({\n amount: 0,\n category: 'EXTERNAL_WIRE',\n effective_date: '2019-12-27',\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n payment_type: 'DEPOSIT',\n});\n\nconsole.log(externalPayment);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/external_payments/{external_payment_token}',
+ httpMethod: 'get',
+ summary: 'Get external payment',
+ description: 'Get external payment',
+ stainlessPath: '(resource) external_payments > (method) retrieve',
+ qualified: 'client.externalPayments.retrieve',
+ params: ['external_payment_token: string;'],
+ response:
+ "{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }",
+ markdown:
+ "## retrieve\n\n`client.externalPayments.retrieve(external_payment_token: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**get** `/v1/external_payments/{external_payment_token}`\n\nGet external payment\n\n### Parameters\n\n- `external_payment_token: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalPayment = await client.externalPayments.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(externalPayment);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/external_payments',
+ httpMethod: 'get',
+ summary: 'List external payments',
+ description: 'List external payments',
+ stainlessPath: '(resource) external_payments > (method) list',
+ qualified: 'client.externalPayments.list',
+ params: [
+ 'begin?: string;',
+ 'business_account_token?: string;',
+ 'category?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'financial_account_token?: string;',
+ 'page_size?: number;',
+ "result?: 'APPROVED' | 'DECLINED';",
+ 'starting_after?: string;',
+ "status?: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED';",
+ ],
+ response:
+ "{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }",
+ markdown:
+ "## list\n\n`client.externalPayments.list(begin?: string, business_account_token?: string, category?: string, end?: string, ending_before?: string, financial_account_token?: string, page_size?: number, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**get** `/v1/external_payments`\n\nList external payments\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `business_account_token?: string`\n\n- `category?: string`\n External Payment category to be returned.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `financial_account_token?: string`\n Globally unique identifier for the financial account or card that will send the funds. Accepted type dependent on the program's use case.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `result?: 'APPROVED' | 'DECLINED'`\n External Payment result to be returned.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n Book transfer status to be returned.\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const externalPayment of client.externalPayments.list()) {\n console.log(externalPayment);\n}\n```",
+ },
+ {
+ name: 'cancel',
+ endpoint: '/v1/external_payments/{external_payment_token}/cancel',
+ httpMethod: 'post',
+ summary: 'Cancel external payment',
+ description: 'Cancel external payment',
+ stainlessPath: '(resource) external_payments > (method) cancel',
+ qualified: 'client.externalPayments.cancel',
+ params: ['external_payment_token: string;', 'effective_date: string;', 'memo?: string;'],
+ response:
+ "{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }",
+ markdown:
+ "## cancel\n\n`client.externalPayments.cancel(external_payment_token: string, effective_date: string, memo?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**post** `/v1/external_payments/{external_payment_token}/cancel`\n\nCancel external payment\n\n### Parameters\n\n- `external_payment_token: string`\n\n- `effective_date: string`\n\n- `memo?: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalPayment = await client.externalPayments.cancel('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { effective_date: '2019-12-27' });\n\nconsole.log(externalPayment);\n```",
+ },
+ {
+ name: 'release',
+ endpoint: '/v1/external_payments/{external_payment_token}/release',
+ httpMethod: 'post',
+ summary: 'Release external payment',
+ description: 'Release external payment',
+ stainlessPath: '(resource) external_payments > (method) release',
+ qualified: 'client.externalPayments.release',
+ params: ['external_payment_token: string;', 'effective_date: string;', 'memo?: string;'],
+ response:
+ "{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }",
+ markdown:
+ "## release\n\n`client.externalPayments.release(external_payment_token: string, effective_date: string, memo?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**post** `/v1/external_payments/{external_payment_token}/release`\n\nRelease external payment\n\n### Parameters\n\n- `external_payment_token: string`\n\n- `effective_date: string`\n\n- `memo?: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalPayment = await client.externalPayments.release('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { effective_date: '2019-12-27' });\n\nconsole.log(externalPayment);\n```",
+ },
+ {
+ name: 'reverse',
+ endpoint: '/v1/external_payments/{external_payment_token}/reverse',
+ httpMethod: 'post',
+ summary: 'Reverse external payment',
+ description: 'Reverse external payment',
+ stainlessPath: '(resource) external_payments > (method) reverse',
+ qualified: 'client.externalPayments.reverse',
+ params: ['external_payment_token: string;', 'effective_date: string;', 'memo?: string;'],
+ response:
+ "{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }",
+ markdown:
+ "## reverse\n\n`client.externalPayments.reverse(external_payment_token: string, effective_date: string, memo?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**post** `/v1/external_payments/{external_payment_token}/reverse`\n\nReverse external payment\n\n### Parameters\n\n- `external_payment_token: string`\n\n- `effective_date: string`\n\n- `memo?: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalPayment = await client.externalPayments.reverse('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { effective_date: '2019-12-27' });\n\nconsole.log(externalPayment);\n```",
+ },
+ {
+ name: 'settle',
+ endpoint: '/v1/external_payments/{external_payment_token}/settle',
+ httpMethod: 'post',
+ summary: 'Settle external payment',
+ description: 'Settle external payment',
+ stainlessPath: '(resource) external_payments > (method) settle',
+ qualified: 'client.externalPayments.settle',
+ params: [
+ 'external_payment_token: string;',
+ 'effective_date: string;',
+ 'memo?: string;',
+ "progress_to?: 'SETTLED' | 'RELEASED';",
+ ],
+ response:
+ "{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }",
+ markdown:
+ "## settle\n\n`client.externalPayments.settle(external_payment_token: string, effective_date: string, memo?: string, progress_to?: 'SETTLED' | 'RELEASED'): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**post** `/v1/external_payments/{external_payment_token}/settle`\n\nSettle external payment\n\n### Parameters\n\n- `external_payment_token: string`\n\n- `effective_date: string`\n\n- `memo?: string`\n\n- `progress_to?: 'SETTLED' | 'RELEASED'`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalPayment = await client.externalPayments.settle('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { effective_date: '2019-12-27' });\n\nconsole.log(externalPayment);\n```",
+ },
+ {
+ name: 'create',
+ endpoint: '/v1/management_operations',
+ httpMethod: 'post',
+ summary: 'Create management operation',
+ description: 'Create management operation',
+ stainlessPath: '(resource) management_operations > (method) create',
+ qualified: 'client.managementOperations.create',
+ params: [
+ 'amount: number;',
+ 'category: string;',
+ "direction: 'CREDIT' | 'DEBIT';",
+ 'effective_date: string;',
+ 'event_type: string;',
+ 'financial_account_token: string;',
+ 'token?: string;',
+ 'memo?: string;',
+ "on_closed_account?: 'FAIL' | 'USE_SUSPENSE';",
+ 'subtype?: string;',
+ 'user_defined_id?: string;',
+ ],
+ response:
+ "{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; }",
+ markdown:
+ "## create\n\n`client.managementOperations.create(amount: number, category: string, direction: 'CREDIT' | 'DEBIT', effective_date: string, event_type: string, financial_account_token: string, token?: string, memo?: string, on_closed_account?: 'FAIL' | 'USE_SUSPENSE', subtype?: string, user_defined_id?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: object[]; external_resource?: external_resource; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: object; user_defined_id?: string; }`\n\n**post** `/v1/management_operations`\n\nCreate management operation\n\n### Parameters\n\n- `amount: number`\n\n- `category: string`\n\n- `direction: 'CREDIT' | 'DEBIT'`\n\n- `effective_date: string`\n\n- `event_type: string`\n\n- `financial_account_token: string`\n\n- `token?: string`\n Customer-provided token that will serve as an idempotency token. This token will become the transaction token.\n\n- `memo?: string`\n\n- `on_closed_account?: 'FAIL' | 'USE_SUSPENSE'`\n What to do if the financial account is closed when posting an operation\n\n- `subtype?: string`\n\n- `user_defined_id?: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `direction?: 'CREDIT' | 'DEBIT'`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `family?: 'MANAGEMENT_OPERATION'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst managementOperationTransaction = await client.managementOperations.create({\n amount: 1,\n category: 'MANAGEMENT_FEE',\n direction: 'CREDIT',\n effective_date: '2019-12-27',\n event_type: 'LOSS_WRITE_OFF',\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(managementOperationTransaction);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/management_operations/{management_operation_token}',
+ httpMethod: 'get',
+ summary: 'Get management operation',
+ description: 'Get management operation',
+ stainlessPath: '(resource) management_operations > (method) retrieve',
+ qualified: 'client.managementOperations.retrieve',
+ params: ['management_operation_token: string;'],
+ response:
+ "{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; }",
+ markdown:
+ "## retrieve\n\n`client.managementOperations.retrieve(management_operation_token: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: object[]; external_resource?: external_resource; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: object; user_defined_id?: string; }`\n\n**get** `/v1/management_operations/{management_operation_token}`\n\nGet management operation\n\n### Parameters\n\n- `management_operation_token: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `direction?: 'CREDIT' | 'DEBIT'`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `family?: 'MANAGEMENT_OPERATION'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst managementOperationTransaction = await client.managementOperations.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(managementOperationTransaction);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/management_operations',
+ httpMethod: 'get',
+ summary: 'List management operations',
+ description: 'List management operations',
+ stainlessPath: '(resource) management_operations > (method) list',
+ qualified: 'client.managementOperations.list',
+ params: [
+ 'begin?: string;',
+ 'business_account_token?: string;',
+ 'category?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'financial_account_token?: string;',
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ "status?: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED';",
+ ],
+ response:
+ "{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; }",
+ markdown:
+ "## list\n\n`client.managementOperations.list(begin?: string, business_account_token?: string, category?: string, end?: string, ending_before?: string, financial_account_token?: string, page_size?: number, starting_after?: string, status?: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: object[]; external_resource?: external_resource; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: object; user_defined_id?: string; }`\n\n**get** `/v1/management_operations`\n\nList management operations\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `business_account_token?: string`\n\n- `category?: string`\n Management operation category to be returned.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `financial_account_token?: string`\n Globally unique identifier for the financial account. Accepted type dependent on the program's use case.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n Management operation status to be returned.\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `direction?: 'CREDIT' | 'DEBIT'`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `family?: 'MANAGEMENT_OPERATION'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const managementOperationTransaction of client.managementOperations.list()) {\n console.log(managementOperationTransaction);\n}\n```",
+ },
+ {
+ name: 'reverse',
+ endpoint: '/v1/management_operations/{management_operation_token}/reverse',
+ httpMethod: 'post',
+ summary: 'Reverse management operation',
+ description: 'Reverse a management operation',
+ stainlessPath: '(resource) management_operations > (method) reverse',
+ qualified: 'client.managementOperations.reverse',
+ params: ['management_operation_token: string;', 'effective_date: string;', 'memo?: string;'],
+ response:
+ "{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; }",
+ markdown:
+ "## reverse\n\n`client.managementOperations.reverse(management_operation_token: string, effective_date: string, memo?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: object[]; external_resource?: external_resource; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: object; user_defined_id?: string; }`\n\n**post** `/v1/management_operations/{management_operation_token}/reverse`\n\nReverse a management operation\n\n### Parameters\n\n- `management_operation_token: string`\n\n- `effective_date: string`\n\n- `memo?: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `direction?: 'CREDIT' | 'DEBIT'`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `family?: 'MANAGEMENT_OPERATION'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst managementOperationTransaction = await client.managementOperations.reverse('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { effective_date: '2019-12-27' });\n\nconsole.log(managementOperationTransaction);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/funding_events/{funding_event_token}',
+ httpMethod: 'get',
+ summary: 'Get funding event by ID',
+ description: 'Get funding event for program by id',
+ stainlessPath: '(resource) funding_events > (method) retrieve',
+ qualified: 'client.fundingEvents.retrieve',
+ params: ['funding_event_token: string;'],
+ response:
+ "{ token: string; collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'; collection_tokens: string[]; created: string; high_watermark: string; network_settlement_summary: { network_settlement_date: string; settled_gross_amount: number; }[]; previous_high_watermark: string; updated: string; }",
+ markdown:
+ "## retrieve\n\n`client.fundingEvents.retrieve(funding_event_token: string): { token: string; collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'; collection_tokens: string[]; created: string; high_watermark: string; network_settlement_summary: object[]; previous_high_watermark: string; updated: string; }`\n\n**get** `/v1/funding_events/{funding_event_token}`\n\nGet funding event for program by id\n\n### Parameters\n\n- `funding_event_token: string`\n\n### Returns\n\n- `{ token: string; collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'; collection_tokens: string[]; created: string; high_watermark: string; network_settlement_summary: { network_settlement_date: string; settled_gross_amount: number; }[]; previous_high_watermark: string; updated: string; }`\n\n - `token: string`\n - `collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'`\n - `collection_tokens: string[]`\n - `created: string`\n - `high_watermark: string`\n - `network_settlement_summary: { network_settlement_date: string; settled_gross_amount: number; }[]`\n - `previous_high_watermark: string`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst fundingEvent = await client.fundingEvents.retrieve('funding_event_token');\n\nconsole.log(fundingEvent);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/funding_events',
+ httpMethod: 'get',
+ summary: 'List funding events',
+ description: 'Get all funding events for program',
+ stainlessPath: '(resource) funding_events > (method) list',
+ qualified: 'client.fundingEvents.list',
+ params: ['ending_before?: string;', 'page_size?: number;', 'starting_after?: string;'],
+ response:
+ "{ token: string; collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'; collection_tokens: string[]; created: string; high_watermark: string; network_settlement_summary: { network_settlement_date: string; settled_gross_amount: number; }[]; previous_high_watermark: string; updated: string; }",
+ markdown:
+ "## list\n\n`client.fundingEvents.list(ending_before?: string, page_size?: number, starting_after?: string): { token: string; collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'; collection_tokens: string[]; created: string; high_watermark: string; network_settlement_summary: object[]; previous_high_watermark: string; updated: string; }`\n\n**get** `/v1/funding_events`\n\nGet all funding events for program\n\n### Parameters\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'; collection_tokens: string[]; created: string; high_watermark: string; network_settlement_summary: { network_settlement_date: string; settled_gross_amount: number; }[]; previous_high_watermark: string; updated: string; }`\n\n - `token: string`\n - `collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'`\n - `collection_tokens: string[]`\n - `created: string`\n - `high_watermark: string`\n - `network_settlement_summary: { network_settlement_date: string; settled_gross_amount: number; }[]`\n - `previous_high_watermark: string`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const fundingEvent of client.fundingEvents.list()) {\n console.log(fundingEvent);\n}\n```",
+ },
+ {
+ name: 'retrieve_details',
+ endpoint: '/v1/funding_events/{funding_event_token}/details',
+ httpMethod: 'get',
+ summary: 'Get funding event details',
+ description: 'Get funding event details by id',
+ stainlessPath: '(resource) funding_events > (method) retrieve_details',
+ qualified: 'client.fundingEvents.retrieveDetails',
+ params: ['funding_event_token: string;'],
+ response: '{ token: string; settlement_details_url: string; settlement_summary_url: string; }',
+ markdown:
+ "## retrieve_details\n\n`client.fundingEvents.retrieveDetails(funding_event_token: string): { token: string; settlement_details_url: string; settlement_summary_url: string; }`\n\n**get** `/v1/funding_events/{funding_event_token}/details`\n\nGet funding event details by id\n\n### Parameters\n\n- `funding_event_token: string`\n\n### Returns\n\n- `{ token: string; settlement_details_url: string; settlement_summary_url: string; }`\n\n - `token: string`\n - `settlement_details_url: string`\n - `settlement_summary_url: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.fundingEvents.retrieveDetails('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/fraud/transactions/{transaction_token}',
+ httpMethod: 'get',
+ summary: 'Get a fraud report for a transaction',
+ description:
+ 'Retrieve a fraud report for a specific transaction identified by its unique transaction token.\n',
+ stainlessPath: '(resource) fraud.transactions > (method) retrieve',
+ qualified: 'client.fraud.transactions.retrieve',
+ params: ['transaction_token: string;'],
+ response:
+ "{ fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT' | 'NO_REPORTED_FRAUD'; transaction_token: string; comment?: string; created_at?: string; fraud_type?: string; updated_at?: string; }",
+ markdown:
+ "## retrieve\n\n`client.fraud.transactions.retrieve(transaction_token: string): { fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT' | 'NO_REPORTED_FRAUD'; transaction_token: string; comment?: string; created_at?: string; fraud_type?: string; updated_at?: string; }`\n\n**get** `/v1/fraud/transactions/{transaction_token}`\n\nRetrieve a fraud report for a specific transaction identified by its unique transaction token.\n\n\n### Parameters\n\n- `transaction_token: string`\n\n### Returns\n\n- `{ fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT' | 'NO_REPORTED_FRAUD'; transaction_token: string; comment?: string; created_at?: string; fraud_type?: string; updated_at?: string; }`\n\n - `fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT' | 'NO_REPORTED_FRAUD'`\n - `transaction_token: string`\n - `comment?: string`\n - `created_at?: string`\n - `fraud_type?: string`\n - `updated_at?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst transaction = await client.fraud.transactions.retrieve('00000000-0000-0000-0000-000000000000');\n\nconsole.log(transaction);\n```",
+ },
+ {
+ name: 'report',
+ endpoint: '/v1/fraud/transactions/{transaction_token}',
+ httpMethod: 'post',
+ summary: 'Create or update a fraud report for a transaction',
+ description:
+ 'Report fraud for a specific transaction token by providing details such as fraud type, fraud status, and any additional comments.\n',
+ stainlessPath: '(resource) fraud.transactions > (method) report',
+ qualified: 'client.fraud.transactions.report',
+ params: [
+ 'transaction_token: string;',
+ "fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT';",
+ 'comment?: string;',
+ 'fraud_type?: string;',
+ ],
+ response:
+ "{ fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT' | 'NO_REPORTED_FRAUD'; transaction_token: string; comment?: string; created_at?: string; fraud_type?: string; updated_at?: string; }",
+ markdown:
+ "## report\n\n`client.fraud.transactions.report(transaction_token: string, fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT', comment?: string, fraud_type?: string): { fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT' | 'NO_REPORTED_FRAUD'; transaction_token: string; comment?: string; created_at?: string; fraud_type?: string; updated_at?: string; }`\n\n**post** `/v1/fraud/transactions/{transaction_token}`\n\nReport fraud for a specific transaction token by providing details such as fraud type, fraud status, and any additional comments.\n\n\n### Parameters\n\n- `transaction_token: string`\n\n- `fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT'`\n The fraud status of the transaction, string (enum) supporting the following values:\n\n - `SUSPECTED_FRAUD`: The transaction is suspected to be fraudulent, but this hasn’t been confirmed.\n - `FRAUDULENT`: The transaction is confirmed to be fraudulent. A transaction may immediately be moved into this state, or be graduated into this state from the `SUSPECTED_FRAUD` state.\n - `NOT_FRAUDULENT`: The transaction is (explicitly) marked as not fraudulent. A transaction may immediately be moved into this state, or be graduated into this state from the `SUSPECTED_FRAUD` state.\n\n- `comment?: string`\n Optional field providing additional information or context about why the transaction is considered fraudulent.\n\n- `fraud_type?: string`\n Specifies the type or category of fraud that the transaction is suspected or confirmed to involve, string (enum) supporting the following values:\n\n - `FIRST_PARTY_FRAUD`: First-party fraud occurs when a legitimate account or cardholder intentionally misuses financial services for personal gain. This includes actions such as disputing legitimate transactions to obtain a refund, abusing return policies, or defaulting on credit obligations without intent to repay.\n - `ACCOUNT_TAKEOVER`: Account takeover fraud occurs when a fraudster gains unauthorized access to an existing account, modifies account settings, and carries out fraudulent transactions.\n - `CARD_COMPROMISED`: Card compromised fraud occurs when a fraudster gains access to card details without taking over the account, such as through physical card theft, cloning, or online data breaches.\n - `IDENTITY_THEFT`: Identity theft fraud occurs when a fraudster uses stolen personal information, such as Social Security numbers or addresses, to open accounts, apply for loans, or conduct financial transactions in someone's name.\n - `CARDHOLDER_MANIPULATION`: This type of fraud occurs when a fraudster manipulates or coerces a legitimate cardholder into unauthorized transactions, often through social engineering tactics.\n\n### Returns\n\n- `{ fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT' | 'NO_REPORTED_FRAUD'; transaction_token: string; comment?: string; created_at?: string; fraud_type?: string; updated_at?: string; }`\n\n - `fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT' | 'NO_REPORTED_FRAUD'`\n - `transaction_token: string`\n - `comment?: string`\n - `created_at?: string`\n - `fraud_type?: string`\n - `updated_at?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.fraud.transactions.report('00000000-0000-0000-0000-000000000000', { fraud_status: 'SUSPECTED_FRAUD' });\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/network_programs/{network_program_token}',
+ httpMethod: 'get',
+ summary: 'Get network program',
+ description: 'Get network program.',
+ stainlessPath: '(resource) network_programs > (method) retrieve',
+ qualified: 'client.networkPrograms.retrieve',
+ params: ['network_program_token: string;'],
+ response:
+ '{ token: string; default_product_code: string; name: string; registered_program_identification_number: string; }',
+ markdown:
+ "## retrieve\n\n`client.networkPrograms.retrieve(network_program_token: string): { token: string; default_product_code: string; name: string; registered_program_identification_number: string; }`\n\n**get** `/v1/network_programs/{network_program_token}`\n\nGet network program.\n\n### Parameters\n\n- `network_program_token: string`\n\n### Returns\n\n- `{ token: string; default_product_code: string; name: string; registered_program_identification_number: string; }`\n\n - `token: string`\n - `default_product_code: string`\n - `name: string`\n - `registered_program_identification_number: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst networkProgram = await client.networkPrograms.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(networkProgram);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/network_programs',
+ httpMethod: 'get',
+ summary: 'List network programs',
+ description: 'List network programs.',
+ stainlessPath: '(resource) network_programs > (method) list',
+ qualified: 'client.networkPrograms.list',
+ params: ['begin?: string;', 'end?: string;', 'page_size?: number;'],
+ response:
+ '{ token: string; default_product_code: string; name: string; registered_program_identification_number: string; }',
+ markdown:
+ "## list\n\n`client.networkPrograms.list(begin?: string, end?: string, page_size?: number): { token: string; default_product_code: string; name: string; registered_program_identification_number: string; }`\n\n**get** `/v1/network_programs`\n\nList network programs.\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `page_size?: number`\n Page size (for pagination).\n\n### Returns\n\n- `{ token: string; default_product_code: string; name: string; registered_program_identification_number: string; }`\n\n - `token: string`\n - `default_product_code: string`\n - `name: string`\n - `registered_program_identification_number: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const networkProgram of client.networkPrograms.list()) {\n console.log(networkProgram);\n}\n```",
+ },
+ {
+ name: 'create',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/holds',
+ httpMethod: 'post',
+ summary: 'Create hold',
+ description:
+ 'Create a hold on a financial account. Holds reserve funds by moving them\nfrom available to pending balance. They can be resolved via settlement\n(linked to a payment or book transfer), voiding, or expiration.\n',
+ stainlessPath: '(resource) holds > (method) create',
+ qualified: 'client.holds.create',
+ params: [
+ 'financial_account_token: string;',
+ 'amount: number;',
+ 'token?: string;',
+ 'expiration_datetime?: string;',
+ 'memo?: string;',
+ 'user_defined_id?: string;',
+ ],
+ response:
+ "{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }",
+ markdown:
+ "## create\n\n`client.holds.create(financial_account_token: string, amount: number, token?: string, expiration_datetime?: string, memo?: string, user_defined_id?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: hold_event[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n\n**post** `/v1/financial_accounts/{financial_account_token}/holds`\n\nCreate a hold on a financial account. Holds reserve funds by moving them\nfrom available to pending balance. They can be resolved via settlement\n(linked to a payment or book transfer), voiding, or expiration.\n\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `amount: number`\n Amount to hold in cents\n\n- `token?: string`\n Customer-provided token for idempotency. Becomes the hold token.\n\n- `expiration_datetime?: string`\n When the hold should auto-expire\n\n- `memo?: string`\n Reason for the hold\n\n- `user_defined_id?: string`\n User-provided identifier for the hold\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n A hold transaction representing reserved funds on a financial account. Holds move funds from available to pending balance in anticipation of future payments. They can be resolved via settlement (linked to payment), manual release, or expiration.\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]`\n - `expiration_datetime?: string`\n - `family?: 'HOLD'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst hold = await client.holds.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { amount: 1 });\n\nconsole.log(hold);\n```",
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/holds/{hold_token}',
+ httpMethod: 'get',
+ summary: 'Get hold',
+ description: 'Get hold by token.',
+ stainlessPath: '(resource) holds > (method) retrieve',
+ qualified: 'client.holds.retrieve',
+ params: ['hold_token: string;'],
+ response:
+ "{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }",
+ markdown:
+ "## retrieve\n\n`client.holds.retrieve(hold_token: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: hold_event[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n\n**get** `/v1/holds/{hold_token}`\n\nGet hold by token.\n\n### Parameters\n\n- `hold_token: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n A hold transaction representing reserved funds on a financial account. Holds move funds from available to pending balance in anticipation of future payments. They can be resolved via settlement (linked to payment), manual release, or expiration.\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]`\n - `expiration_datetime?: string`\n - `family?: 'HOLD'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst hold = await client.holds.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(hold);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/holds',
+ httpMethod: 'get',
+ summary: 'List holds',
+ description: 'List holds for a financial account.',
+ stainlessPath: '(resource) holds > (method) list',
+ qualified: 'client.holds.list',
+ params: [
+ 'financial_account_token: string;',
+ 'begin?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ "status?: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED';",
+ ],
+ response:
+ "{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }",
+ markdown:
+ "## list\n\n`client.holds.list(financial_account_token: string, begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string, status?: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED'): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: hold_event[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/holds`\n\nList holds for a financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED'`\n Hold status to filter by.\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n A hold transaction representing reserved funds on a financial account. Holds move funds from available to pending balance in anticipation of future payments. They can be resolved via settlement (linked to payment), manual release, or expiration.\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]`\n - `expiration_datetime?: string`\n - `family?: 'HOLD'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const hold of client.holds.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(hold);\n}\n```",
+ },
+ {
+ name: 'void',
+ endpoint: '/v1/holds/{hold_token}/void',
+ httpMethod: 'post',
+ summary: 'Void hold',
+ description:
+ 'Void an active hold. This returns the held funds from pending back to\navailable balance. Only holds in PENDING status can be voided.\n',
+ stainlessPath: '(resource) holds > (method) void',
+ qualified: 'client.holds.void',
+ params: ['hold_token: string;', 'memo?: string;'],
+ response:
+ "{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }",
+ markdown:
+ "## void\n\n`client.holds.void(hold_token: string, memo?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: hold_event[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n\n**post** `/v1/holds/{hold_token}/void`\n\nVoid an active hold. This returns the held funds from pending back to\navailable balance. Only holds in PENDING status can be voided.\n\n\n### Parameters\n\n- `hold_token: string`\n\n- `memo?: string`\n Reason for voiding the hold\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n A hold transaction representing reserved funds on a financial account. Holds move funds from available to pending balance in anticipation of future payments. They can be resolved via settlement (linked to payment), manual release, or expiration.\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]`\n - `expiration_datetime?: string`\n - `family?: 'HOLD'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst hold = await client.holds.void('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(hold);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/account_activity',
+ httpMethod: 'get',
+ summary: 'List Account Activity',
+ description: 'Retrieve a list of transactions across all public accounts.',
+ stainlessPath: '(resource) account_activity > (method) list',
+ qualified: 'client.accountActivity.list',
+ params: [
+ 'account_token?: string;',
+ 'begin?: string;',
+ 'business_account_token?: string;',
+ 'category?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'financial_account_token?: string;',
+ 'page_size?: number;',
+ "result?: 'APPROVED' | 'DECLINED';",
+ 'starting_after?: string;',
+ "status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'REVERSED' | 'SETTLED' | 'VOIDED';",
+ ],
+ response:
+ "{ token: string; category: string; created: string; currency: string; descriptor: string; events: financial_event[]; family: 'INTERNAL'; financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; } | object | object | object | object | object | object",
+ markdown:
+ "## list\n\n`client.accountActivity.list(account_token?: string, begin?: string, business_account_token?: string, category?: string, end?: string, ending_before?: string, financial_account_token?: string, page_size?: number, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'REVERSED' | 'SETTLED' | 'VOIDED'): { token: string; category: string; created: string; currency: string; descriptor: string; events: financial_event[]; family: 'INTERNAL'; financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; } | object | object | object | object | object | object`\n\n**get** `/v1/account_activity`\n\nRetrieve a list of transactions across all public accounts.\n\n### Parameters\n\n- `account_token?: string`\n Filter by account token\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `business_account_token?: string`\n Filter by business account token\n\n- `category?: string`\n Filter by transaction category\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `financial_account_token?: string`\n Filter by financial account token\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `result?: 'APPROVED' | 'DECLINED'`\n Filter by transaction result\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'REVERSED' | 'SETTLED' | 'VOIDED'`\n Filter by transaction status\n\n### Returns\n\n- `{ token: string; category: string; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; family: 'INTERNAL'; financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; } | { token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: object; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; } | { token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: { cardholder: object; hold: object; merchant: object; settlement: object; }; authorization_amount: number; authorization_code: string; avs: { address: string; zipcode: string; }; card_token: string; cardholder_authentication: object; created: string; financial_account_token: string; merchant: object; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: { entry_mode: object; terminal: object; }; result: string; service_location: { city: string; country: string; postal_code: string; state: string; street_address: string; }; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: object; updated: string; events?: { token: string; amount: number; amounts: object; created: string; detailed_results: string[]; effective_polarity: 'CREDIT' | 'DEBIT'; network_info: object; result: string; rule_results: object[]; type: string; account_type?: 'CHECKING' | 'SAVINGS'; network_specific_data?: object; }[]; } | { token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: wire_party_details; debtor?: wire_party_details; message_id?: string; remittance_information?: string; }; pending_amount: number; related_account_tokens: { account_token: string; business_account_token: string; }; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; } | { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; } | { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: object; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; } | { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: object[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n Response containing multiple transaction types. The `family` field determines which transaction type is returned: INTERNAL returns FinancialTransaction, TRANSFER returns BookTransferTransaction, CARD returns CardTransaction, PAYMENT returns PaymentTransaction, EXTERNAL_PAYMENT returns ExternalPaymentResponse, MANAGEMENT_OPERATION returns ManagementOperationTransaction, and HOLD returns HoldTransaction\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const accountActivityListResponse of client.accountActivity.list()) {\n console.log(accountActivityListResponse);\n}\n```",
+ },
+ {
+ name: 'retrieve_transaction',
+ endpoint: '/v1/account_activity/{transaction_token}',
+ httpMethod: 'get',
+ summary: 'Get Single Transaction from Account Activity',
+ description: 'Retrieve a single transaction',
+ stainlessPath: '(resource) account_activity > (method) retrieve_transaction',
+ qualified: 'client.accountActivity.retrieveTransaction',
+ params: ['transaction_token: string;'],
+ response:
+ "{ token: string; category: string; created: string; currency: string; descriptor: string; events: financial_event[]; family: 'INTERNAL'; financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; } | object | object | object | object | object | object",
+ markdown:
+ "## retrieve_transaction\n\n`client.accountActivity.retrieveTransaction(transaction_token: string): { token: string; category: string; created: string; currency: string; descriptor: string; events: financial_event[]; family: 'INTERNAL'; financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; } | object | object | object | object | object | object`\n\n**get** `/v1/account_activity/{transaction_token}`\n\nRetrieve a single transaction\n\n### Parameters\n\n- `transaction_token: string`\n\n### Returns\n\n- `{ token: string; category: string; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; family: 'INTERNAL'; financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; } | { token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: object; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; } | { token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: { cardholder: object; hold: object; merchant: object; settlement: object; }; authorization_amount: number; authorization_code: string; avs: { address: string; zipcode: string; }; card_token: string; cardholder_authentication: object; created: string; financial_account_token: string; merchant: object; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: { entry_mode: object; terminal: object; }; result: string; service_location: { city: string; country: string; postal_code: string; state: string; street_address: string; }; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: object; updated: string; events?: { token: string; amount: number; amounts: object; created: string; detailed_results: string[]; effective_polarity: 'CREDIT' | 'DEBIT'; network_info: object; result: string; rule_results: object[]; type: string; account_type?: 'CHECKING' | 'SAVINGS'; network_specific_data?: object; }[]; } | { token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: wire_party_details; debtor?: wire_party_details; message_id?: string; remittance_information?: string; }; pending_amount: number; related_account_tokens: { account_token: string; business_account_token: string; }; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; } | { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; } | { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: object; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; } | { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: object[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n Response containing multiple transaction types. The `family` field determines which transaction type is returned: INTERNAL returns FinancialTransaction, TRANSFER returns BookTransferTransaction, CARD returns CardTransaction, PAYMENT returns PaymentTransaction, EXTERNAL_PAYMENT returns ExternalPaymentResponse, MANAGEMENT_OPERATION returns ManagementOperationTransaction, and HOLD returns HoldTransaction\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.accountActivity.retrieveTransaction('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/transfer_limits',
+ httpMethod: 'get',
+ summary: 'Get transfer limits',
+ description: 'Get transfer limits for a specified date',
+ stainlessPath: '(resource) transfer_limits > (method) list',
+ qualified: 'client.transferLimits.list',
+ params: ['date?: string;'],
+ response:
+ '{ company_id: string; daily_limit: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }; date: string; is_fbo: boolean; monthly_limit: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }; program_limit_per_transaction: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }; }',
+ markdown:
+ "## list\n\n`client.transferLimits.list(date?: string): { company_id: string; daily_limit: { credit: object; debit: object; }; date: string; is_fbo: boolean; monthly_limit: { credit: object; debit: object; }; program_limit_per_transaction: { credit: object; debit: object; }; }`\n\n**get** `/v1/transfer_limits`\n\nGet transfer limits for a specified date\n\n### Parameters\n\n- `date?: string`\n Date for which to retrieve transfer limits (ISO 8601 format)\n\n### Returns\n\n- `{ company_id: string; daily_limit: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }; date: string; is_fbo: boolean; monthly_limit: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }; program_limit_per_transaction: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }; }`\n\n - `company_id: string`\n - `daily_limit: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }`\n - `date: string`\n - `is_fbo: boolean`\n - `monthly_limit: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }`\n - `program_limit_per_transaction: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const transferLimit of client.transferLimits.list()) {\n console.log(transferLimit);\n}\n```",
+ },
+];
+
+const INDEX_OPTIONS = {
+ fields: [
+ 'name',
+ 'endpoint',
+ 'summary',
+ 'description',
+ 'qualified',
+ 'stainlessPath',
+ 'content',
+ 'sectionContext',
+ ],
+ storeFields: ['kind', '_original'],
+ searchOptions: {
+ prefix: true,
+ fuzzy: 0.2,
+ boost: {
+ name: 3,
+ endpoint: 2,
+ summary: 2,
+ qualified: 2,
+ content: 1,
+ } as Record,
+ },
+};
+
+/**
+ * Self-contained local search engine backed by MiniSearch.
+ * Method data is embedded at SDK build time; prose documents
+ * can be loaded from an optional docs directory at runtime.
+ */
+export class LocalDocsSearch {
+ private methodIndex: MiniSearch;
+ private proseIndex: MiniSearch;
+
+ private constructor() {
+ this.methodIndex = new MiniSearch(INDEX_OPTIONS);
+ this.proseIndex = new MiniSearch(INDEX_OPTIONS);
+ }
+
+ static async create(opts?: { docsDir?: string }): Promise {
+ const instance = new LocalDocsSearch();
+ instance.indexMethods(EMBEDDED_METHODS);
+ if (opts?.docsDir) {
+ await instance.loadDocsDirectory(opts.docsDir);
+ }
+ return instance;
+ }
+
+ // Note: Language is accepted for interface consistency with remote search, but currently has no
+ // effect since this local search only supports TypeScript docs.
+ search(props: {
+ query: string;
+ language?: string;
+ detail?: string;
+ maxResults?: number;
+ maxLength?: number;
+ }): SearchResult {
+ const { query, detail = 'default', maxResults = 5, maxLength = 100_000 } = props;
+
+ const useMarkdown = detail === 'verbose' || detail === 'high';
+
+ // Search both indices and merge results by score
+ const methodHits = this.methodIndex
+ .search(query)
+ .map((hit) => ({ ...hit, _kind: 'http_method' as const }));
+ const proseHits = this.proseIndex.search(query).map((hit) => ({ ...hit, _kind: 'prose' as const }));
+ const merged = [...methodHits, ...proseHits].sort((a, b) => b.score - a.score);
+ const top = merged.slice(0, maxResults);
+
+ const fullResults: (string | Record)[] = [];
+
+ for (const hit of top) {
+ const original = (hit as Record)['_original'];
+ if (hit._kind === 'http_method') {
+ const m = original as MethodEntry;
+ if (useMarkdown && m.markdown) {
+ fullResults.push(m.markdown);
+ } else {
+ fullResults.push({
+ method: m.qualified,
+ summary: m.summary,
+ description: m.description,
+ endpoint: `${m.httpMethod.toUpperCase()} ${m.endpoint}`,
+ ...(m.params ? { params: m.params } : {}),
+ ...(m.response ? { response: m.response } : {}),
+ });
+ }
+ } else {
+ const c = original as ProseChunk;
+ fullResults.push({
+ content: c.content,
+ ...(c.source ? { source: c.source } : {}),
+ });
+ }
+ }
+
+ let totalLength = 0;
+ const results: (string | Record)[] = [];
+ for (const result of fullResults) {
+ const len = typeof result === 'string' ? result.length : JSON.stringify(result).length;
+ totalLength += len;
+ if (totalLength > maxLength) break;
+ results.push(result);
+ }
+
+ if (results.length < fullResults.length) {
+ results.unshift(`Truncated; showing ${results.length} of ${fullResults.length} results.`);
+ }
+
+ return { results };
+ }
+
+ private indexMethods(methods: MethodEntry[]): void {
+ const docs: MiniSearchDocument[] = methods.map((m, i) => ({
+ id: `method-${i}`,
+ kind: 'http_method' as const,
+ name: m.name,
+ endpoint: m.endpoint,
+ summary: m.summary,
+ description: m.description,
+ qualified: m.qualified,
+ stainlessPath: m.stainlessPath,
+ _original: m as unknown as Record,
+ }));
+ if (docs.length > 0) {
+ this.methodIndex.addAll(docs);
+ }
+ }
+
+ private async loadDocsDirectory(docsDir: string): Promise {
+ let entries;
+ try {
+ entries = await fs.readdir(docsDir, { withFileTypes: true });
+ } catch (err) {
+ getLogger().warn({ err, docsDir }, 'Could not read docs directory');
+ return;
+ }
+
+ const files = entries
+ .filter((e) => e.isFile())
+ .filter((e) => e.name.endsWith('.md') || e.name.endsWith('.markdown') || e.name.endsWith('.json'));
+
+ for (const file of files) {
+ try {
+ const filePath = path.join(docsDir, file.name);
+ const content = await fs.readFile(filePath, 'utf-8');
+
+ if (file.name.endsWith('.json')) {
+ const texts = extractTexts(JSON.parse(content));
+ if (texts.length > 0) {
+ this.indexProse(texts.join('\n\n'), file.name);
+ }
+ } else {
+ this.indexProse(content, file.name);
+ }
+ } catch (err) {
+ getLogger().warn({ err, file: file.name }, 'Failed to index docs file');
+ }
+ }
+ }
+
+ private indexProse(markdown: string, source: string): void {
+ const chunks = chunkMarkdown(markdown);
+ const baseId = this.proseIndex.documentCount;
+
+ const docs: MiniSearchDocument[] = chunks.map((chunk, i) => ({
+ id: `prose-${baseId + i}`,
+ kind: 'prose' as const,
+ content: chunk.content,
+ ...(chunk.sectionContext != null ? { sectionContext: chunk.sectionContext } : {}),
+ _original: { ...chunk, source } as unknown as Record,
+ }));
+
+ if (docs.length > 0) {
+ this.proseIndex.addAll(docs);
+ }
+ }
+}
+
+/** Lightweight markdown chunker — splits on headers, chunks by word count. */
+function chunkMarkdown(markdown: string): { content: string; tag: string; sectionContext?: string }[] {
+ // Strip YAML frontmatter
+ const stripped = markdown.replace(/^---\n[\s\S]*?\n---\n?/, '');
+ const lines = stripped.split('\n');
+
+ const chunks: { content: string; tag: string; sectionContext?: string }[] = [];
+ const headers: string[] = [];
+ let current: string[] = [];
+
+ const flush = () => {
+ const text = current.join('\n').trim();
+ if (!text) return;
+ const sectionContext = headers.length > 0 ? headers.join(' > ') : undefined;
+ // Split into ~200-word chunks
+ const words = text.split(/\s+/);
+ for (let i = 0; i < words.length; i += 200) {
+ const slice = words.slice(i, i + 200).join(' ');
+ if (slice) {
+ chunks.push({ content: slice, tag: 'p', ...(sectionContext != null ? { sectionContext } : {}) });
+ }
+ }
+ current = [];
+ };
+
+ for (const line of lines) {
+ const headerMatch = line.match(/^(#{1,6})\s+(.+)/);
+ if (headerMatch) {
+ flush();
+ const level = headerMatch[1]!.length;
+ const text = headerMatch[2]!.trim();
+ while (headers.length >= level) headers.pop();
+ headers.push(text);
+ } else {
+ current.push(line);
+ }
+ }
+ flush();
+
+ return chunks;
+}
+
+/** Recursively extracts string values from a JSON structure. */
+function extractTexts(data: unknown, depth = 0): string[] {
+ if (depth > 10) return [];
+ if (typeof data === 'string') return data.trim() ? [data] : [];
+ if (Array.isArray(data)) return data.flatMap((item) => extractTexts(item, depth + 1));
+ if (typeof data === 'object' && data !== null) {
+ return Object.values(data).flatMap((v) => extractTexts(v, depth + 1));
+ }
+ return [];
+}
diff --git a/packages/mcp-server/src/options.ts b/packages/mcp-server/src/options.ts
index d68058dc..f1518764 100644
--- a/packages/mcp-server/src/options.ts
+++ b/packages/mcp-server/src/options.ts
@@ -18,6 +18,8 @@ export type McpOptions = {
includeCodeTool?: boolean | undefined;
includeDocsTools?: boolean | undefined;
stainlessApiKey?: string | undefined;
+ docsSearchMode?: 'stainless-api' | 'local' | undefined;
+ docsDir?: string | undefined;
codeAllowHttpGets?: boolean | undefined;
codeAllowedMethods?: string[] | undefined;
codeBlockedMethods?: string[] | undefined;
@@ -58,6 +60,18 @@ export function parseCLIOptions(): CLIOptions {
description: 'Path to custom instructions for the MCP server',
})
.option('debug', { type: 'boolean', description: 'Enable debug logging' })
+ .option('docs-dir', {
+ type: 'string',
+ description:
+ 'Path to a directory of local documentation files (markdown/JSON) to include in local docs search.',
+ })
+ .option('docs-search-mode', {
+ type: 'string',
+ choices: ['stainless-api', 'local'],
+ default: 'stainless-api',
+ description:
+ "Where to search documentation; 'stainless-api' uses the Stainless-hosted search API whereas 'local' uses an in-memory search index built from embedded SDK method data and optional local docs files.",
+ })
.option('log-format', {
type: 'string',
choices: ['json', 'pretty'],
@@ -118,6 +132,8 @@ export function parseCLIOptions(): CLIOptions {
...(includeDocsTools !== undefined && { includeDocsTools }),
debug: !!argv.debug,
stainlessApiKey: argv.stainlessApiKey,
+ docsSearchMode: argv.docsSearchMode as 'stainless-api' | 'local' | undefined,
+ docsDir: argv.docsDir,
codeAllowHttpGets: argv.codeAllowHttpGets,
codeAllowedMethods: argv.codeAllowedMethods,
codeBlockedMethods: argv.codeBlockedMethods,
@@ -163,5 +179,7 @@ export function parseQueryOptions(defaultOptions: McpOptions, query: unknown): M
...(codeTool !== undefined && { includeCodeTool: codeTool }),
...(docsTools !== undefined && { includeDocsTools: docsTools }),
codeExecutionMode: defaultOptions.codeExecutionMode,
+ docsSearchMode: defaultOptions.docsSearchMode,
+ docsDir: defaultOptions.docsDir,
};
}
diff --git a/packages/mcp-server/src/server.ts b/packages/mcp-server/src/server.ts
index 9bc40981..3e3950e5 100644
--- a/packages/mcp-server/src/server.ts
+++ b/packages/mcp-server/src/server.ts
@@ -11,6 +11,8 @@ import { ClientOptions } from 'lithic';
import Lithic from 'lithic';
import { codeTool } from './code-tool';
import docsSearchTool from './docs-search-tool';
+import { setLocalSearch } from './docs-search-tool';
+import { LocalDocsSearch } from './local-docs-search';
import { getInstructions } from './instructions';
import { McpOptions } from './options';
import { blockedMethodsForCodeTool } from './methods';
@@ -63,6 +65,12 @@ export async function initMcpServer(params: {
error: logAtLevel('error'),
};
+ if (params.mcpOptions?.docsSearchMode === 'local') {
+ const docsDir = params.mcpOptions?.docsDir;
+ const localSearch = await LocalDocsSearch.create(docsDir ? { docsDir } : undefined);
+ setLocalSearch(localSearch);
+ }
+
let _client: Lithic | undefined;
let _clientError: Error | undefined;
let _logLevel: 'debug' | 'info' | 'warn' | 'error' | 'off' | undefined;
From 09a91bf5a691769dfdca577073a1d1aaabc88e86 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Fri, 27 Mar 2026 22:01:52 +0000
Subject: [PATCH 049/164] chore(ci): escape input path in publish-npm workflow
---
.github/workflows/publish-npm.yml | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml
index 88c82c86..5950b3e3 100644
--- a/.github/workflows/publish-npm.yml
+++ b/.github/workflows/publish-npm.yml
@@ -34,12 +34,14 @@ jobs:
- name: Publish to NPM
run: |
- if [ -n "${{ github.event.inputs.path }}" ]; then
- PATHS_RELEASED='[\"${{ github.event.inputs.path }}\"]'
+ if [ -n "$INPUT_PATH" ]; then
+ PATHS_RELEASED="[\"$INPUT_PATH\"]"
else
PATHS_RELEASED='[\".\", \"packages/mcp-server\"]'
fi
yarn tsn scripts/publish-packages.ts "{ \"paths_released\": \"$PATHS_RELEASED\" }"
+ env:
+ INPUT_PATH: ${{ github.event.inputs.path }}
- name: Upload MCP Server DXT GitHub release asset
run: |
From c90abde6178a34e0496df8af8844e12ac076c2c2 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 30 Mar 2026 17:13:40 +0000
Subject: [PATCH 050/164] chore(mcp-server): add support for session id,
forward client info
---
packages/mcp-server/src/docs-search-tool.ts | 15 ++++++++-------
packages/mcp-server/src/http.ts | 16 ++++++++++++++++
packages/mcp-server/src/server.ts | 4 ++++
packages/mcp-server/src/types.ts | 2 ++
4 files changed, 30 insertions(+), 7 deletions(-)
diff --git a/packages/mcp-server/src/docs-search-tool.ts b/packages/mcp-server/src/docs-search-tool.ts
index b521738d..d5a5dab6 100644
--- a/packages/mcp-server/src/docs-search-tool.ts
+++ b/packages/mcp-server/src/docs-search-tool.ts
@@ -76,17 +76,18 @@ async function searchLocal(args: Record): Promise {
}).results;
}
-async function searchRemote(
- args: Record,
- stainlessApiKey: string | undefined,
-): Promise {
+async function searchRemote(args: Record, reqContext: McpRequestContext): Promise {
const body = args as any;
const query = new URLSearchParams(body).toString();
const startTime = Date.now();
const result = await fetch(`${docsSearchURL}?${query}`, {
headers: {
- ...(stainlessApiKey && { Authorization: stainlessApiKey }),
+ ...(reqContext.stainlessApiKey && { Authorization: reqContext.stainlessApiKey }),
+ ...(reqContext.mcpSessionId && { 'x-stainless-mcp-session-id': reqContext.mcpSessionId }),
+ ...(reqContext.mcpClientInfo && {
+ 'x-stainless-mcp-client-info': JSON.stringify(reqContext.mcpClientInfo),
+ }),
},
});
@@ -105,7 +106,7 @@ async function searchRemote(
'Got error response from docs search tool',
);
- if (result.status === 404 && !stainlessApiKey) {
+ if (result.status === 404 && !reqContext.stainlessApiKey) {
throw new Error(
'Could not find docs for this project. You may need to provide a Stainless API key via the STAINLESS_API_KEY environment variable, the --stainless-api-key flag, or the x-stainless-api-key HTTP header.',
);
@@ -140,7 +141,7 @@ export const handler = async ({
return asTextContentResult(await searchLocal(body));
}
- return asTextContentResult(await searchRemote(body, reqContext.stainlessApiKey));
+ return asTextContentResult(await searchRemote(body, reqContext));
};
export default { metadata, tool, handler };
diff --git a/packages/mcp-server/src/http.ts b/packages/mcp-server/src/http.ts
index 39f35908..39d193a4 100644
--- a/packages/mcp-server/src/http.ts
+++ b/packages/mcp-server/src/http.ts
@@ -78,6 +78,11 @@ const newServer = async ({
},
stainlessApiKey: stainlessApiKey,
upstreamClientEnvs,
+ mcpSessionId: (req as any).mcpSessionId,
+ mcpClientInfo:
+ typeof req.body?.params?.clientInfo?.name === 'string' ?
+ { name: req.body.params.clientInfo.name, version: String(req.body.params.clientInfo.version ?? '') }
+ : undefined,
});
return server;
@@ -135,6 +140,17 @@ export const streamableHTTPApp = ({
const app = express();
app.set('query parser', 'extended');
app.use(express.json());
+ app.use((req: express.Request, res: express.Response, next: express.NextFunction) => {
+ const existing = req.headers['mcp-session-id'];
+ const sessionId = (Array.isArray(existing) ? existing[0] : existing) || crypto.randomUUID();
+ (req as any).mcpSessionId = sessionId;
+ const origWriteHead = res.writeHead.bind(res);
+ res.writeHead = function (statusCode: number, ...rest: any[]) {
+ res.setHeader('mcp-session-id', sessionId);
+ return origWriteHead(statusCode, ...rest);
+ } as typeof res.writeHead;
+ next();
+ });
app.use(
pinoHttp({
logger: getLogger(),
diff --git a/packages/mcp-server/src/server.ts b/packages/mcp-server/src/server.ts
index 3e3950e5..fd781e91 100644
--- a/packages/mcp-server/src/server.ts
+++ b/packages/mcp-server/src/server.ts
@@ -47,6 +47,8 @@ export async function initMcpServer(params: {
mcpOptions?: McpOptions;
stainlessApiKey?: string | undefined;
upstreamClientEnvs?: Record | undefined;
+ mcpSessionId?: string | undefined;
+ mcpClientInfo?: { name: string; version: string } | undefined;
}) {
const server = params.server instanceof McpServer ? params.server.server : params.server;
@@ -136,6 +138,8 @@ export async function initMcpServer(params: {
client,
stainlessApiKey: params.stainlessApiKey ?? params.mcpOptions?.stainlessApiKey,
upstreamClientEnvs: params.upstreamClientEnvs,
+ mcpSessionId: params.mcpSessionId,
+ mcpClientInfo: params.mcpClientInfo,
},
args,
});
diff --git a/packages/mcp-server/src/types.ts b/packages/mcp-server/src/types.ts
index 9879117c..21994833 100644
--- a/packages/mcp-server/src/types.ts
+++ b/packages/mcp-server/src/types.ts
@@ -46,6 +46,8 @@ export type McpRequestContext = {
client: Lithic;
stainlessApiKey?: string | undefined;
upstreamClientEnvs?: Record | undefined;
+ mcpSessionId?: string | undefined;
+ mcpClientInfo?: { name: string; version: string } | undefined;
};
export type HandlerFunction = ({
From c4d4a6d7ba3f1e22fd66534557dc7240c4caba57 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 30 Mar 2026 17:35:27 +0000
Subject: [PATCH 051/164] chore(internal): improve local docs search for MCP
servers
---
packages/mcp-server/src/docs-search-tool.ts | 13 +---
packages/mcp-server/src/local-docs-search.ts | 73 +++++++++++++++++---
2 files changed, 64 insertions(+), 22 deletions(-)
diff --git a/packages/mcp-server/src/docs-search-tool.ts b/packages/mcp-server/src/docs-search-tool.ts
index d5a5dab6..7d0e54fa 100644
--- a/packages/mcp-server/src/docs-search-tool.ts
+++ b/packages/mcp-server/src/docs-search-tool.ts
@@ -50,8 +50,6 @@ export function setLocalSearch(search: LocalDocsSearch): void {
_localSearch = search;
}
-const SUPPORTED_LANGUAGES = new Set(['http', 'typescript', 'javascript']);
-
async function searchLocal(args: Record): Promise {
if (!_localSearch) {
throw new Error('Local search not initialized');
@@ -59,20 +57,13 @@ async function searchLocal(args: Record): Promise {
const query = (args['query'] as string) ?? '';
const language = (args['language'] as string) ?? 'typescript';
- const detail = (args['detail'] as string) ?? 'verbose';
-
- if (!SUPPORTED_LANGUAGES.has(language)) {
- throw new Error(
- `Local docs search only supports HTTP, TypeScript, and JavaScript. Got language="${language}". ` +
- `Use --docs-search-mode stainless-api for other languages, or set language to "http", "typescript", or "javascript".`,
- );
- }
+ const detail = (args['detail'] as string) ?? 'default';
return _localSearch.search({
query,
language,
detail,
- maxResults: 10,
+ maxResults: 5,
}).results;
}
diff --git a/packages/mcp-server/src/local-docs-search.ts b/packages/mcp-server/src/local-docs-search.ts
index 4810a0a2..fbc7c310 100644
--- a/packages/mcp-server/src/local-docs-search.ts
+++ b/packages/mcp-server/src/local-docs-search.ts
@@ -5,6 +5,11 @@ import * as fs from 'node:fs/promises';
import * as path from 'node:path';
import { getLogger } from './logger';
+type PerLanguageData = {
+ method?: string;
+ example?: string;
+};
+
type MethodEntry = {
name: string;
endpoint: string;
@@ -16,6 +21,7 @@ type MethodEntry = {
params?: string[];
response?: string;
markdown?: string;
+ perLanguage?: Record;
};
type ProseChunk = {
@@ -3289,6 +3295,8 @@ const EMBEDDED_METHODS: MethodEntry[] = [
},
];
+const EMBEDDED_READMES: { language: string; content: string }[] = [];
+
const INDEX_OPTIONS = {
fields: [
'name',
@@ -3303,13 +3311,15 @@ const INDEX_OPTIONS = {
storeFields: ['kind', '_original'],
searchOptions: {
prefix: true,
- fuzzy: 0.2,
+ fuzzy: 0.1,
boost: {
- name: 3,
- endpoint: 2,
+ name: 5,
+ stainlessPath: 3,
+ endpoint: 3,
+ qualified: 3,
summary: 2,
- qualified: 2,
content: 1,
+ description: 1,
} as Record,
},
};
@@ -3331,14 +3341,15 @@ export class LocalDocsSearch {
static async create(opts?: { docsDir?: string }): Promise {
const instance = new LocalDocsSearch();
instance.indexMethods(EMBEDDED_METHODS);
+ for (const readme of EMBEDDED_READMES) {
+ instance.indexProse(readme.content, `readme:${readme.language}`);
+ }
if (opts?.docsDir) {
await instance.loadDocsDirectory(opts.docsDir);
}
return instance;
}
- // Note: Language is accepted for interface consistency with remote search, but currently has no
- // effect since this local search only supports TypeScript docs.
search(props: {
query: string;
language?: string;
@@ -3346,15 +3357,29 @@ export class LocalDocsSearch {
maxResults?: number;
maxLength?: number;
}): SearchResult {
- const { query, detail = 'default', maxResults = 5, maxLength = 100_000 } = props;
+ const { query, language = 'typescript', detail = 'default', maxResults = 5, maxLength = 100_000 } = props;
const useMarkdown = detail === 'verbose' || detail === 'high';
- // Search both indices and merge results by score
+ // Search both indices and merge results by score.
+ // Filter prose hits so language-tagged content (READMEs and docs with
+ // frontmatter) only matches the requested language.
const methodHits = this.methodIndex
.search(query)
.map((hit) => ({ ...hit, _kind: 'http_method' as const }));
- const proseHits = this.proseIndex.search(query).map((hit) => ({ ...hit, _kind: 'prose' as const }));
+ const proseHits = this.proseIndex
+ .search(query)
+ .filter((hit) => {
+ const source = ((hit as Record)['_original'] as ProseChunk | undefined)?.source;
+ if (!source) return true;
+ // Check for language-tagged sources: "readme:" or "lang::"
+ let taggedLang: string | undefined;
+ if (source.startsWith('readme:')) taggedLang = source.slice('readme:'.length);
+ else if (source.startsWith('lang:')) taggedLang = source.split(':')[1];
+ if (!taggedLang) return true;
+ return taggedLang === language || (language === 'javascript' && taggedLang === 'typescript');
+ })
+ .map((hit) => ({ ...hit, _kind: 'prose' as const }));
const merged = [...methodHits, ...proseHits].sort((a, b) => b.score - a.score);
const top = merged.slice(0, maxResults);
@@ -3367,11 +3392,16 @@ export class LocalDocsSearch {
if (useMarkdown && m.markdown) {
fullResults.push(m.markdown);
} else {
+ // Use per-language data when available, falling back to the
+ // top-level fields (which are TypeScript-specific in the
+ // legacy codepath).
+ const langData = m.perLanguage?.[language];
fullResults.push({
- method: m.qualified,
+ method: langData?.method ?? m.qualified,
summary: m.summary,
description: m.description,
endpoint: `${m.httpMethod.toUpperCase()} ${m.endpoint}`,
+ ...(langData?.example ? { example: langData.example } : {}),
...(m.params ? { params: m.params } : {}),
...(m.response ? { response: m.response } : {}),
});
@@ -3442,7 +3472,19 @@ export class LocalDocsSearch {
this.indexProse(texts.join('\n\n'), file.name);
}
} else {
- this.indexProse(content, file.name);
+ // Parse optional YAML frontmatter for language tagging.
+ // Files with a "language" field in frontmatter will only
+ // surface in searches for that language.
+ //
+ // Example:
+ // ---
+ // language: python
+ // ---
+ // # Error handling in Python
+ // ...
+ const frontmatter = parseFrontmatter(content);
+ const source = frontmatter.language ? `lang:${frontmatter.language}:${file.name}` : file.name;
+ this.indexProse(content, source);
}
} catch (err) {
getLogger().warn({ err, file: file.name }, 'Failed to index docs file');
@@ -3520,3 +3562,12 @@ function extractTexts(data: unknown, depth = 0): string[] {
}
return [];
}
+
+/** Parses YAML frontmatter from a markdown string, extracting the language field if present. */
+function parseFrontmatter(markdown: string): { language?: string } {
+ const match = markdown.match(/^---\n([\s\S]*?)\n---/);
+ if (!match) return {};
+ const body = match[1] ?? '';
+ const langMatch = body.match(/^language:\s*(.+)$/m);
+ return langMatch ? { language: langMatch[1]!.trim() } : {};
+}
From 02f52360c359be269a9980c8b484d0a71ead707e Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 31 Mar 2026 16:25:29 +0000
Subject: [PATCH 052/164] chore(internal): improve local docs search for MCP
servers
---
packages/mcp-server/src/local-docs-search.ts | 8702 ++++++++++++++++--
1 file changed, 7811 insertions(+), 891 deletions(-)
diff --git a/packages/mcp-server/src/local-docs-search.ts b/packages/mcp-server/src/local-docs-search.ts
index fbc7c310..623baa13 100644
--- a/packages/mcp-server/src/local-docs-search.ts
+++ b/packages/mcp-server/src/local-docs-search.ts
@@ -61,6 +61,96 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response: '{ message?: string; }',
markdown:
"## api_status\n\n`client.apiStatus(): { message?: string; }`\n\n**get** `/v1/status`\n\nStatus of api\n\n### Returns\n\n- `{ message?: string; }`\n\n - `message?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst apiStatus = await client.apiStatus();\n\nconsole.log(apiStatus);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.APIStatus',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tapiStatus, err := client.APIStatus(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", apiStatus.Message)\n}\n',
+ },
+ http: {
+ example: 'curl https://api.lithic.com/v1/status \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'apiStatus',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ApiStatus;\nimport com.lithic.api.models.ClientApiStatusParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ApiStatus apiStatus = client.apiStatus();\n }\n}',
+ },
+ kotlin: {
+ method: 'apiStatus',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ApiStatus\nimport com.lithic.api.models.ClientApiStatusParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val apiStatus: ApiStatus = client.apiStatus()\n}',
+ },
+ python: {
+ method: 'api_status',
+ example:
+ 'from lithic import Lithic\n\nclient = Lithic()\napi_status = client.api_status()\nprint(api_status.message)',
+ },
+ ruby: {
+ method: 'api_status',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\napi_status = lithic.api_status\n\nputs(api_status)',
+ },
+ typescript: {
+ method: 'client.apiStatus',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst apiStatus = await client.apiStatus();\n\nconsole.log(apiStatus.message);",
+ },
+ },
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/accounts',
+ httpMethod: 'get',
+ summary: 'List accounts',
+ description: 'List account configurations.\n',
+ stainlessPath: '(resource) accounts > (method) list',
+ qualified: 'client.accounts.list',
+ params: [
+ 'begin?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ ],
+ response:
+ "{ token: string; created: string; spend_limit: { daily: number; lifetime: number; monthly: number; }; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; }",
+ markdown:
+ "## list\n\n`client.accounts.list(begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; created: string; spend_limit: object; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: object; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: object; }`\n\n**get** `/v1/accounts`\n\nList account configurations.\n\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; created: string; spend_limit: { daily: number; lifetime: number; monthly: number; }; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; }`\n\n - `token: string`\n - `created: string`\n - `spend_limit: { daily: number; lifetime: number; monthly: number; }`\n - `state: 'ACTIVE' | 'PAUSED' | 'CLOSED'`\n - `account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }`\n - `auth_rule_tokens?: string[]`\n - `cardholder_currency?: string`\n - `comment?: string`\n - `substatus?: string`\n - `verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const account of client.accounts.list()) {\n console.log(account);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Accounts.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Accounts.List(context.TODO(), lithic.AccountListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example: 'curl https://api.lithic.com/v1/accounts \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'accounts().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AccountListPage;\nimport com.lithic.api.models.AccountListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AccountListPage page = client.accounts().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'accounts().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountListPage\nimport com.lithic.api.models.AccountListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: AccountListPage = client.accounts().list()\n}',
+ },
+ python: {
+ method: 'accounts.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.accounts.list()\npage = page.data[0]\nprint(page.token)',
+ },
+ ruby: {
+ method: 'accounts.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.accounts.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.accounts.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const account of client.accounts.list()) {\n console.log(account.token);\n}",
+ },
+ },
},
{
name: 'retrieve',
@@ -75,6 +165,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; created: string; spend_limit: { daily: number; lifetime: number; monthly: number; }; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; }",
markdown:
"## retrieve\n\n`client.accounts.retrieve(account_token: string): { token: string; created: string; spend_limit: object; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: object; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: object; }`\n\n**get** `/v1/accounts/{account_token}`\n\nGet account configuration such as spend limits.\n\n### Parameters\n\n- `account_token: string`\n\n### Returns\n\n- `{ token: string; created: string; spend_limit: { daily: number; lifetime: number; monthly: number; }; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; }`\n\n - `token: string`\n - `created: string`\n - `spend_limit: { daily: number; lifetime: number; monthly: number; }`\n - `state: 'ACTIVE' | 'PAUSED' | 'CLOSED'`\n - `account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }`\n - `auth_rule_tokens?: string[]`\n - `cardholder_currency?: string`\n - `comment?: string`\n - `substatus?: string`\n - `verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst account = await client.accounts.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(account);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Accounts.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\taccount, err := client.Accounts.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", account.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/accounts/$ACCOUNT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'accounts().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Account;\nimport com.lithic.api.models.AccountRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n Account account = client.accounts().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'accounts().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Account\nimport com.lithic.api.models.AccountRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val account: Account = client.accounts().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'accounts.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\naccount = client.accounts.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(account.token)',
+ },
+ ruby: {
+ method: 'accounts.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\naccount = lithic.accounts.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(account)',
+ },
+ typescript: {
+ method: 'client.accounts.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst account = await client.accounts.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(account.token);",
+ },
+ },
},
{
name: 'update',
@@ -99,26 +225,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; created: string; spend_limit: { daily: number; lifetime: number; monthly: number; }; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; }",
markdown:
"## update\n\n`client.accounts.update(account_token: string, comment?: string, daily_spend_limit?: number, lifetime_spend_limit?: number, monthly_spend_limit?: number, state?: 'ACTIVE' | 'PAUSED' | 'CLOSED', substatus?: string, verification_address?: { address1?: string; address2?: string; city?: string; country?: string; postal_code?: string; state?: string; }): { token: string; created: string; spend_limit: object; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: object; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: object; }`\n\n**patch** `/v1/accounts/{account_token}`\n\nUpdate account configuration such as state or spend limits. Can only be run on accounts that are part of the program managed by this API key.\nAccounts that are in the `PAUSED` state will not be able to transact or create new cards.\n\n\n### Parameters\n\n- `account_token: string`\n\n- `comment?: string`\n Additional context or information related to the account.\n\n- `daily_spend_limit?: number`\n Amount (in cents) for the account's daily spend limit (e.g. 100000 would be a $1,000 limit).\nBy default the daily spend limit is set to $1,250.\n\n\n- `lifetime_spend_limit?: number`\n Amount (in cents) for the account's lifetime spend limit (e.g. 100000 would be a $1,000 limit). Once this limit is reached, no transactions will be accepted on any card created for this account until the limit is updated.\nNote that a spend limit of 0 is effectively no limit, and should only be used to reset or remove a prior limit. Only a limit of 1 or above will result in declined transactions due to checks against the account limit. This behavior differs from the daily spend limit and the monthly spend limit.\n\n\n- `monthly_spend_limit?: number`\n Amount (in cents) for the account's monthly spend limit (e.g. 100000 would be a $1,000 limit).\nBy default the monthly spend limit is set to $5,000.\n\n\n- `state?: 'ACTIVE' | 'PAUSED' | 'CLOSED'`\n Account states.\n\n- `substatus?: string`\n Account state substatus values:\n* `FRAUD_IDENTIFIED` - The account has been recognized as being created or used with stolen or fabricated identity information, encompassing both true identity theft and synthetic identities.\n* `SUSPICIOUS_ACTIVITY` - The account has exhibited suspicious behavior, such as unauthorized access or fraudulent transactions, necessitating further investigation.\n* `RISK_VIOLATION` - The account has been involved in deliberate misuse by the legitimate account holder. Examples include disputing valid transactions without cause, falsely claiming non-receipt of goods, or engaging in intentional bust-out schemes to exploit account services.\n* `END_USER_REQUEST` - The account holder has voluntarily requested the closure of the account for personal reasons. This encompasses situations such as bankruptcy, other financial considerations, or the account holder's death.\n* `ISSUER_REQUEST` - The issuer has initiated the closure of the account due to business strategy, risk management, inactivity, product changes, regulatory concerns, or violations of terms and conditions.\n* `NOT_ACTIVE` - The account has not had any transactions or payment activity within a specified period. This status applies to accounts that are paused or closed due to inactivity.\n* `INTERNAL_REVIEW` - The account is temporarily paused pending further internal review. In future implementations, this status may prevent clients from activating the account via APIs until the review is completed.\n* `OTHER` - The reason for the account's current status does not fall into any of the above categories. A comment should be provided to specify the particular reason.\n\n- `verification_address?: { address1?: string; address2?: string; city?: string; country?: string; postal_code?: string; state?: string; }`\n Address used during Address Verification Service (AVS) checks during transactions if enabled via Auth Rules. This field is deprecated as AVS checks are no longer supported by Auth Rules. The field will be removed from the schema in a future release.\n - `address1?: string`\n - `address2?: string`\n - `city?: string`\n - `country?: string`\n - `postal_code?: string`\n - `state?: string`\n\n### Returns\n\n- `{ token: string; created: string; spend_limit: { daily: number; lifetime: number; monthly: number; }; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; }`\n\n - `token: string`\n - `created: string`\n - `spend_limit: { daily: number; lifetime: number; monthly: number; }`\n - `state: 'ACTIVE' | 'PAUSED' | 'CLOSED'`\n - `account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }`\n - `auth_rule_tokens?: string[]`\n - `cardholder_currency?: string`\n - `comment?: string`\n - `substatus?: string`\n - `verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst account = await client.accounts.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(account);\n```",
- },
- {
- name: 'list',
- endpoint: '/v1/accounts',
- httpMethod: 'get',
- summary: 'List accounts',
- description: 'List account configurations.\n',
- stainlessPath: '(resource) accounts > (method) list',
- qualified: 'client.accounts.list',
- params: [
- 'begin?: string;',
- 'end?: string;',
- 'ending_before?: string;',
- 'page_size?: number;',
- 'starting_after?: string;',
- ],
- response:
- "{ token: string; created: string; spend_limit: { daily: number; lifetime: number; monthly: number; }; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; }",
- markdown:
- "## list\n\n`client.accounts.list(begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; created: string; spend_limit: object; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: object; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: object; }`\n\n**get** `/v1/accounts`\n\nList account configurations.\n\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; created: string; spend_limit: { daily: number; lifetime: number; monthly: number; }; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; }`\n\n - `token: string`\n - `created: string`\n - `spend_limit: { daily: number; lifetime: number; monthly: number; }`\n - `state: 'ACTIVE' | 'PAUSED' | 'CLOSED'`\n - `account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }`\n - `auth_rule_tokens?: string[]`\n - `cardholder_currency?: string`\n - `comment?: string`\n - `substatus?: string`\n - `verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const account of client.accounts.list()) {\n console.log(account);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Accounts.Update',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\taccount, err := client.Accounts.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AccountUpdateParams{\n\t\t\tDailySpendLimit: lithic.F(int64(1000)),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", account.Token)\n}\n',
+ },
+ http: {
+ example:
+ "curl https://api.lithic.com/v1/accounts/$ACCOUNT_TOKEN \\\n -X PATCH \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ },
+ java: {
+ method: 'accounts().update',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Account;\nimport com.lithic.api.models.AccountUpdateParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n Account account = client.accounts().update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'accounts().update',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Account\nimport com.lithic.api.models.AccountUpdateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val account: Account = client.accounts().update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'accounts.update',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\naccount = client.accounts.update(\n account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n daily_spend_limit=1000,\n)\nprint(account.token)',
+ },
+ ruby: {
+ method: 'accounts.update',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\naccount = lithic.accounts.update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(account)',
+ },
+ typescript: {
+ method: 'client.accounts.update',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst account = await client.accounts.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n daily_spend_limit: 1000,\n});\n\nconsole.log(account.token);",
+ },
+ },
},
{
name: 'retrieve_spend_limits',
@@ -134,6 +276,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'{ available_spend_limit: { daily?: number; lifetime?: number; monthly?: number; }; spend_limit?: { daily?: number; lifetime?: number; monthly?: number; }; spend_velocity?: { daily?: number; lifetime?: number; monthly?: number; }; }',
markdown:
"## retrieve_spend_limits\n\n`client.accounts.retrieveSpendLimits(account_token: string): { available_spend_limit: object; spend_limit?: object; spend_velocity?: object; }`\n\n**get** `/v1/accounts/{account_token}/spend_limits`\n\nGet an Account's available spend limits, which is based on the spend limit configured on the Account and the amount already spent over the spend limit's duration. For example, if the Account has a daily spend limit of $1000 configured, and has spent $600 in the last 24 hours, the available spend limit returned would be $400.\n\n### Parameters\n\n- `account_token: string`\n\n### Returns\n\n- `{ available_spend_limit: { daily?: number; lifetime?: number; monthly?: number; }; spend_limit?: { daily?: number; lifetime?: number; monthly?: number; }; spend_velocity?: { daily?: number; lifetime?: number; monthly?: number; }; }`\n\n - `available_spend_limit: { daily?: number; lifetime?: number; monthly?: number; }`\n - `spend_limit?: { daily?: number; lifetime?: number; monthly?: number; }`\n - `spend_velocity?: { daily?: number; lifetime?: number; monthly?: number; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst accountSpendLimits = await client.accounts.retrieveSpendLimits('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(accountSpendLimits);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Accounts.GetSpendLimits',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\taccountSpendLimits, err := client.Accounts.GetSpendLimits(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", accountSpendLimits.AvailableSpendLimit)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/accounts/$ACCOUNT_TOKEN/spend_limits \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'accounts().retrieveSpendLimits',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AccountRetrieveSpendLimitsParams;\nimport com.lithic.api.models.AccountSpendLimits;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AccountSpendLimits accountSpendLimits = client.accounts().retrieveSpendLimits("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'accounts().retrieveSpendLimits',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountRetrieveSpendLimitsParams\nimport com.lithic.api.models.AccountSpendLimits\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val accountSpendLimits: AccountSpendLimits = client.accounts().retrieveSpendLimits("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'accounts.retrieve_spend_limits',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\naccount_spend_limits = client.accounts.retrieve_spend_limits(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(account_spend_limits.available_spend_limit)',
+ },
+ ruby: {
+ method: 'accounts.retrieve_spend_limits',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\naccount_spend_limits = lithic.accounts.retrieve_spend_limits("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(account_spend_limits)',
+ },
+ typescript: {
+ method: 'client.accounts.retrieveSpendLimits',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst accountSpendLimits = await client.accounts.retrieveSpendLimits(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(accountSpendLimits.available_spend_limit);",
+ },
+ },
},
{
name: 'create',
@@ -149,20 +327,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
],
response:
"{ token: string; account_token: string; status: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons: string[]; created?: string; external_id?: string; required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]; }",
- },
- {
- name: 'retrieve',
- endpoint: '/v1/account_holders/{account_holder_token}',
- httpMethod: 'get',
- summary: 'Get an individual or business account holder',
- description: 'Get an Individual or Business Account Holder and/or their KYC or KYB evaluation status.',
- stainlessPath: '(resource) account_holders > (method) retrieve',
- qualified: 'client.accountHolders.retrieve',
- params: ['account_holder_token: string;'],
- response:
- "{ token: string; created: string; account_token?: string; beneficial_owner_individuals?: object[]; business_account_token?: string; business_entity?: object; control_person?: object; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: object; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: required_document[]; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: object; website_url?: string; }",
- markdown:
- "## retrieve\n\n`client.accountHolders.retrieve(account_holder_token: string): { token: string; created: string; account_token?: string; beneficial_owner_individuals?: object[]; business_account_token?: string; business_entity?: object; control_person?: object; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: object; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: required_document[]; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: object; website_url?: string; }`\n\n**get** `/v1/account_holders/{account_holder_token}`\n\nGet an Individual or Business Account Holder and/or their KYC or KYB evaluation status.\n\n### Parameters\n\n- `account_holder_token: string`\n\n### Returns\n\n- `{ token: string; created: string; account_token?: string; beneficial_owner_individuals?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }[]; business_account_token?: string; business_entity?: { address: object; dba_business_name: string; entity_token: string; government_id: string; legal_business_name: string; phone_numbers: string[]; parent_company?: string; }; control_person?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: { created?: string; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; updated?: string; }; website_url?: string; }`\n\n - `token: string`\n - `created: string`\n - `account_token?: string`\n - `beneficial_owner_individuals?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }[]`\n - `business_account_token?: string`\n - `business_entity?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dba_business_name: string; entity_token: string; government_id: string; legal_business_name: string; phone_numbers: string[]; parent_company?: string; }`\n - `control_person?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }`\n - `email?: string`\n - `exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'`\n - `external_id?: string`\n - `individual?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }`\n - `naics_code?: string`\n - `nature_of_business?: string`\n - `phone_number?: string`\n - `required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]`\n - `status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'`\n - `status_reasons?: string[]`\n - `user_type?: 'BUSINESS' | 'INDIVIDUAL'`\n - `verification_application?: { created?: string; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; updated?: string; }`\n - `website_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst accountHolder = await client.accountHolders.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(accountHolder);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AccountHolders.New',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n\t"github.com/lithic-com/lithic-go/shared"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\taccountHolder, err := client.AccountHolders.New(context.TODO(), lithic.AccountHolderNewParams{\n\t\tBody: lithic.KYBParam{\n\t\t\tBeneficialOwnerIndividuals: lithic.F([]lithic.KYBBeneficialOwnerIndividualParam{{\n\t\t\t\tAddress: lithic.F(shared.AddressParam{\n\t\t\t\t\tAddress1: lithic.F("300 Normal Forest Way"),\n\t\t\t\t\tCity: lithic.F("Portland"),\n\t\t\t\t\tCountry: lithic.F("USA"),\n\t\t\t\t\tPostalCode: lithic.F("90210"),\n\t\t\t\t\tState: lithic.F("OR"),\n\t\t\t\t}),\n\t\t\t\tDob: lithic.F("1991-03-08T08:00:00Z"),\n\t\t\t\tEmail: lithic.F("tim@left-earth.com"),\n\t\t\t\tFirstName: lithic.F("Timmy"),\n\t\t\t\tGovernmentID: lithic.F("211-23-1412"),\n\t\t\t\tLastName: lithic.F("Turner"),\n\t\t\t}}),\n\t\t\tBusinessEntity: lithic.F(lithic.KYBBusinessEntityParam{\n\t\t\t\tAddress: lithic.F(shared.AddressParam{\n\t\t\t\t\tAddress1: lithic.F("123 Old Forest Way"),\n\t\t\t\t\tCity: lithic.F("Omaha"),\n\t\t\t\t\tCountry: lithic.F("USA"),\n\t\t\t\t\tPostalCode: lithic.F("61022"),\n\t\t\t\t\tState: lithic.F("NE"),\n\t\t\t\t}),\n\t\t\t\tGovernmentID: lithic.F("12-3456789"),\n\t\t\t\tLegalBusinessName: lithic.F("Busy Business, Inc."),\n\t\t\t\tPhoneNumbers: lithic.F([]string{"+15555555555"}),\n\t\t\t}),\n\t\t\tControlPerson: lithic.F(lithic.KYBControlPersonParam{\n\t\t\t\tAddress: lithic.F(shared.AddressParam{\n\t\t\t\t\tAddress1: lithic.F("451 New Forest Way"),\n\t\t\t\t\tCity: lithic.F("Springfield"),\n\t\t\t\t\tCountry: lithic.F("USA"),\n\t\t\t\t\tPostalCode: lithic.F("68022"),\n\t\t\t\t\tState: lithic.F("IL"),\n\t\t\t\t}),\n\t\t\t\tDob: lithic.F("1991-03-08T08:00:00Z"),\n\t\t\t\tEmail: lithic.F("tom@middle-pluto.com"),\n\t\t\t\tFirstName: lithic.F("Tom"),\n\t\t\t\tGovernmentID: lithic.F("111-23-1412"),\n\t\t\t\tLastName: lithic.F("Timothy"),\n\t\t\t}),\n\t\t\tNatureOfBusiness: lithic.F("Software company selling solutions to the restaurant industry"),\n\t\t\tTosTimestamp: lithic.F("2022-03-08T08:00:00Z"),\n\t\t\tWorkflow: lithic.F(lithic.KYBWorkflowKYBByo),\n\t\t},\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", accountHolder.ExternalID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/account_holders \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n --max-time 300 \\\n -d \'{\n "beneficial_owner_individuals": [\n {\n "address": {\n "address1": "123 Old Forest Way",\n "city": "Omaha",\n "country": "USA",\n "postal_code": "68022",\n "state": "NE"\n },\n "dob": "1991-03-08 08:00:00",\n "email": "tom@middle-earth.com",\n "first_name": "Tom",\n "government_id": "111-23-1412",\n "last_name": "Bombadil"\n }\n ],\n "business_entity": {\n "address": {\n "address1": "123 Old Forest Way",\n "city": "Omaha",\n "country": "USA",\n "postal_code": "68022",\n "state": "NE"\n },\n "government_id": "114-123-1513",\n "legal_business_name": "Acme, Inc.",\n "phone_numbers": [\n "+15555555555"\n ]\n },\n "control_person": {\n "address": {\n "address1": "123 Old Forest Way",\n "city": "Omaha",\n "country": "USA",\n "postal_code": "68022",\n "state": "NE"\n },\n "dob": "1991-03-08 08:00:00",\n "email": "tom@middle-earth.com",\n "first_name": "Tom",\n "government_id": "111-23-1412",\n "last_name": "Bombadil"\n },\n "nature_of_business": "Software company selling solutions to the restaurant industry",\n "tos_timestamp": "2018-05-29T21:16:05Z",\n "workflow": "KYB_BASIC",\n "kyb_passed_timestamp": "2018-05-29T21:16:05Z",\n "naics_code": "541512",\n "website_url": "www.mybusiness.com"\n }\'',
+ },
+ java: {
+ method: 'accountHolders().create',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AccountHolderCreateParams;\nimport com.lithic.api.models.AccountHolderCreateResponse;\nimport com.lithic.api.models.Address;\nimport com.lithic.api.models.Kyb;\nimport com.lithic.api.models.Kyc;\nimport com.lithic.api.models.KycExempt;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n Kyb params = Kyb.builder()\n .addBeneficialOwnerIndividual(Kyb.KybIndividual.builder()\n .address(Address.builder()\n .address1("300 Normal Forest Way")\n .city("Portland")\n .country("USA")\n .postalCode("90210")\n .state("OR")\n .build())\n .dob("1991-03-08T08:00:00Z")\n .email("tim@left-earth.com")\n .firstName("Timmy")\n .governmentId("211-23-1412")\n .lastName("Turner")\n .build())\n .businessEntity(Kyb.BusinessEntity.builder()\n .address(Address.builder()\n .address1("123 Old Forest Way")\n .city("Omaha")\n .country("USA")\n .postalCode("61022")\n .state("NE")\n .build())\n .governmentId("12-3456789")\n .legalBusinessName("Busy Business, Inc.")\n .addPhoneNumber("+15555555555")\n .build())\n .controlPerson(Kyb.KybIndividual.builder()\n .address(Address.builder()\n .address1("451 New Forest Way")\n .city("Springfield")\n .country("USA")\n .postalCode("68022")\n .state("IL")\n .build())\n .dob("1991-03-08T08:00:00Z")\n .email("tom@middle-pluto.com")\n .firstName("Tom")\n .governmentId("111-23-1412")\n .lastName("Timothy")\n .build())\n .natureOfBusiness("Software company selling solutions to the restaurant industry")\n .tosTimestamp("2022-03-08T08:00:00Z")\n .workflow(Kyb.Workflow.KYB_BYO)\n .build();\n AccountHolderCreateResponse accountHolder = client.accountHolders().create(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'accountHolders().create',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountHolderCreateParams\nimport com.lithic.api.models.AccountHolderCreateResponse\nimport com.lithic.api.models.Address\nimport com.lithic.api.models.Kyb\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: Kyb = Kyb.builder()\n .addBeneficialOwnerIndividual(Kyb.KybIndividual.builder()\n .address(Address.builder()\n .address1("300 Normal Forest Way")\n .city("Portland")\n .country("USA")\n .postalCode("90210")\n .state("OR")\n .build())\n .dob("1991-03-08T08:00:00Z")\n .email("tim@left-earth.com")\n .firstName("Timmy")\n .governmentId("211-23-1412")\n .lastName("Turner")\n .build())\n .businessEntity(Kyb.BusinessEntity.builder()\n .address(Address.builder()\n .address1("123 Old Forest Way")\n .city("Omaha")\n .country("USA")\n .postalCode("61022")\n .state("NE")\n .build())\n .governmentId("12-3456789")\n .legalBusinessName("Busy Business, Inc.")\n .addPhoneNumber("+15555555555")\n .build())\n .controlPerson(Kyb.KybIndividual.builder()\n .address(Address.builder()\n .address1("451 New Forest Way")\n .city("Springfield")\n .country("USA")\n .postalCode("68022")\n .state("IL")\n .build())\n .dob("1991-03-08T08:00:00Z")\n .email("tom@middle-pluto.com")\n .firstName("Tom")\n .governmentId("111-23-1412")\n .lastName("Timothy")\n .build())\n .natureOfBusiness("Software company selling solutions to the restaurant industry")\n .tosTimestamp("2022-03-08T08:00:00Z")\n .workflow(Kyb.Workflow.KYB_BYO)\n .build()\n val accountHolder: AccountHolderCreateResponse = client.accountHolders().create(params)\n}',
+ },
+ python: {
+ method: 'account_holders.create',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\naccount_holder = client.account_holders.create(\n beneficial_owner_individuals=[{\n "address": {\n "address1": "300 Normal Forest Way",\n "city": "Portland",\n "country": "USA",\n "postal_code": "90210",\n "state": "OR",\n },\n "dob": "1991-03-08T08:00:00Z",\n "email": "tim@left-earth.com",\n "first_name": "Timmy",\n "government_id": "211-23-1412",\n "last_name": "Turner",\n "phone_number": "+15555555555",\n }],\n business_entity={\n "address": {\n "address1": "123 Old Forest Way",\n "city": "Omaha",\n "country": "USA",\n "postal_code": "61022",\n "state": "NE",\n },\n "dba_business_name": "Example Business Solutions",\n "government_id": "12-3456789",\n "legal_business_name": "Busy Business, Inc.",\n "phone_numbers": ["+15555555555"],\n },\n control_person={\n "address": {\n "address1": "451 New Forest Way",\n "city": "Springfield",\n "country": "USA",\n "postal_code": "68022",\n "state": "IL",\n },\n "dob": "1991-03-08T08:00:00Z",\n "email": "tom@middle-pluto.com",\n "first_name": "Tom",\n "government_id": "111-23-1412",\n "last_name": "Timothy",\n "phone_number": "+15555555555",\n },\n nature_of_business="Software company selling solutions to the restaurant industry",\n tos_timestamp="2022-03-08T08:00:00Z",\n workflow="KYB_BYO",\n kyb_passed_timestamp="2022-03-08T08:00:00Z",\n naics_code="541512",\n website_url="https://www.mybusiness.com",\n)\nprint(account_holder.external_id)',
+ },
+ ruby: {
+ method: 'account_holders.create',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\naccount_holder = lithic.account_holders.create(\n body: {\n beneficial_owner_individuals: [\n {\n address: {address1: "300 Normal Forest Way", city: "Portland", country: "USA", postal_code: "90210", state: "OR"},\n dob: "1991-03-08T08:00:00Z",\n email: "tim@left-earth.com",\n first_name: "Timmy",\n government_id: "211-23-1412",\n last_name: "Turner"\n }\n ],\n business_entity: {\n address: {address1: "123 Old Forest Way", city: "Omaha", country: "USA", postal_code: "61022", state: "NE"},\n government_id: "12-3456789",\n legal_business_name: "Busy Business, Inc.",\n phone_numbers: ["+15555555555"]\n },\n control_person: {\n address: {address1: "451 New Forest Way", city: "Springfield", country: "USA", postal_code: "68022", state: "IL"},\n dob: "1991-03-08T08:00:00Z",\n email: "tom@middle-pluto.com",\n first_name: "Tom",\n government_id: "111-23-1412",\n last_name: "Timothy"\n },\n nature_of_business: "Software company selling solutions to the restaurant industry",\n tos_timestamp: "2022-03-08T08:00:00Z",\n workflow: :KYB_BYO\n }\n)\n\nputs(account_holder)',
+ },
+ typescript: {
+ method: 'client.accountHolders.create',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst accountHolder = await client.accountHolders.create({\n beneficial_owner_individuals: [\n {\n address: {\n address1: '300 Normal Forest Way',\n city: 'Portland',\n country: 'USA',\n postal_code: '90210',\n state: 'OR',\n },\n dob: '1991-03-08T08:00:00Z',\n email: 'tim@left-earth.com',\n first_name: 'Timmy',\n government_id: '211-23-1412',\n last_name: 'Turner',\n phone_number: '+15555555555',\n },\n ],\n business_entity: {\n address: {\n address1: '123 Old Forest Way',\n city: 'Omaha',\n country: 'USA',\n postal_code: '61022',\n state: 'NE',\n },\n dba_business_name: 'Example Business Solutions',\n government_id: '12-3456789',\n legal_business_name: 'Busy Business, Inc.',\n phone_numbers: ['+15555555555'],\n },\n control_person: {\n address: {\n address1: '451 New Forest Way',\n city: 'Springfield',\n country: 'USA',\n postal_code: '68022',\n state: 'IL',\n },\n dob: '1991-03-08T08:00:00Z',\n email: 'tom@middle-pluto.com',\n first_name: 'Tom',\n government_id: '111-23-1412',\n last_name: 'Timothy',\n phone_number: '+15555555555',\n },\n nature_of_business: 'Software company selling solutions to the restaurant industry',\n tos_timestamp: '2022-03-08T08:00:00Z',\n workflow: 'KYB_BYO',\n kyb_passed_timestamp: '2022-03-08T08:00:00Z',\n naics_code: '541512',\n website_url: 'https://www.mybusiness.com',\n});\n\nconsole.log(accountHolder.external_id);",
+ },
+ },
},
{
name: 'update',
@@ -179,33 +379,143 @@ const EMBEDDED_METHODS: MethodEntry[] = [
],
response:
"{ token?: string; account_token?: string; beneficial_owner_individuals?: object[]; business_account_token?: string; business_entity?: kyb_business_entity; control_person?: object; created?: string; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: object; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: required_document[]; status?: 'ACCEPTED' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: object; website_url?: string; } | { token?: string; address?: object; business_account_token?: string; email?: string; first_name?: string; last_name?: string; legal_business_name?: string; phone_number?: string; }",
+ perLanguage: {
+ go: {
+ method: 'client.AccountHolders.Update',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\taccountHolder, err := client.AccountHolders.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AccountHolderUpdateParams{\n\t\t\tBody: lithic.AccountHolderUpdateParamsBodyKYBPatchRequest{},\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", accountHolder)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/account_holders/$ACCOUNT_HOLDER_TOKEN \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "naics_code": "541512",\n "nature_of_business": "Software company selling solutions to the restaurant industry",\n "website_url": "www.mybusiness.com"\n }\'',
+ },
+ java: {
+ method: 'accountHolders().update',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AccountHolderUpdateParams;\nimport com.lithic.api.models.AccountHolderUpdateResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AccountHolderUpdateParams params = AccountHolderUpdateParams.builder()\n .accountHolderToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .body(AccountHolderUpdateParams.Body.KybPatchRequest.builder().build())\n .build();\n AccountHolderUpdateResponse accountHolder = client.accountHolders().update(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'accountHolders().update',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountHolderUpdateParams\nimport com.lithic.api.models.AccountHolderUpdateResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: AccountHolderUpdateParams = AccountHolderUpdateParams.builder()\n .accountHolderToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .body(AccountHolderUpdateParams.Body.KybPatchRequest.builder().build())\n .build()\n val accountHolder: AccountHolderUpdateResponse = client.accountHolders().update(params)\n}',
+ },
+ python: {
+ method: 'account_holders.update',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\naccount_holder = client.account_holders.update(\n account_holder_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n business_entity={\n "entity_token": "83cf25ae-c14f-4d10-9fa2-0119f36c7286",\n "address": {\n "postal_code": "61023"\n },\n },\n control_person={\n "entity_token": "fd771a07-c5c2-42f3-a53c-a6c79c6c0d07",\n "address": {\n "postal_code": "68023"\n },\n },\n naics_code="541512",\n website_url="https://www.mynewbusiness.com",\n)\nprint(account_holder)',
+ },
+ ruby: {
+ method: 'account_holders.update',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\naccount_holder = lithic.account_holders.update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", body: {})\n\nputs(account_holder)',
+ },
+ typescript: {
+ method: 'client.accountHolders.update',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst accountHolder = await client.accountHolders.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n business_entity: {\n entity_token: '83cf25ae-c14f-4d10-9fa2-0119f36c7286',\n address: { postal_code: '61023' },\n },\n control_person: {\n entity_token: 'fd771a07-c5c2-42f3-a53c-a6c79c6c0d07',\n address: { postal_code: '68023' },\n },\n naics_code: '541512',\n website_url: 'https://www.mynewbusiness.com',\n});\n\nconsole.log(accountHolder);",
+ },
+ },
},
{
- name: 'list',
- endpoint: '/v1/account_holders',
+ name: 'retrieve',
+ endpoint: '/v1/account_holders/{account_holder_token}',
httpMethod: 'get',
- summary: 'Get a list of individual or business account holders',
- description:
- 'Get a list of individual or business account holders and their KYC or KYB evaluation status.',
- stainlessPath: '(resource) account_holders > (method) list',
- qualified: 'client.accountHolders.list',
- params: [
- 'begin?: string;',
- 'email?: string;',
- 'end?: string;',
- 'ending_before?: string;',
- 'external_id?: string;',
- 'first_name?: string;',
- 'last_name?: string;',
- 'legal_business_name?: string;',
- 'limit?: number;',
- 'phone_number?: string;',
- 'starting_after?: string;',
- ],
+ summary: 'Get an individual or business account holder',
+ description: 'Get an Individual or Business Account Holder and/or their KYC or KYB evaluation status.',
+ stainlessPath: '(resource) account_holders > (method) retrieve',
+ qualified: 'client.accountHolders.retrieve',
+ params: ['account_holder_token: string;'],
response:
"{ token: string; created: string; account_token?: string; beneficial_owner_individuals?: object[]; business_account_token?: string; business_entity?: object; control_person?: object; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: object; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: required_document[]; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: object; website_url?: string; }",
markdown:
- "## list\n\n`client.accountHolders.list(begin?: string, email?: string, end?: string, ending_before?: string, external_id?: string, first_name?: string, last_name?: string, legal_business_name?: string, limit?: number, phone_number?: string, starting_after?: string): { token: string; created: string; account_token?: string; beneficial_owner_individuals?: object[]; business_account_token?: string; business_entity?: object; control_person?: object; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: object; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: required_document[]; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: object; website_url?: string; }`\n\n**get** `/v1/account_holders`\n\nGet a list of individual or business account holders and their KYC or KYB evaluation status.\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `email?: string`\n Email address of the account holder. The query must be an exact match, case insensitive.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `external_id?: string`\n If applicable, represents the external_id associated with the account_holder.\n\n- `first_name?: string`\n (Individual Account Holders only) The first name of the account holder. The query is case insensitive and supports partial matches.\n\n- `last_name?: string`\n (Individual Account Holders only) The last name of the account holder. The query is case insensitive and supports partial matches.\n\n- `legal_business_name?: string`\n (Business Account Holders only) The legal business name of the account holder. The query is case insensitive and supports partial matches.\n\n- `limit?: number`\n The number of account_holders to limit the response to.\n\n- `phone_number?: string`\n Phone number of the account holder. The query must be an exact match.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; created: string; account_token?: string; beneficial_owner_individuals?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }[]; business_account_token?: string; business_entity?: { address: object; dba_business_name: string; entity_token: string; government_id: string; legal_business_name: string; phone_numbers: string[]; parent_company?: string; }; control_person?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: { created?: string; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; updated?: string; }; website_url?: string; }`\n\n - `token: string`\n - `created: string`\n - `account_token?: string`\n - `beneficial_owner_individuals?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }[]`\n - `business_account_token?: string`\n - `business_entity?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dba_business_name: string; entity_token: string; government_id: string; legal_business_name: string; phone_numbers: string[]; parent_company?: string; }`\n - `control_person?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }`\n - `email?: string`\n - `exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'`\n - `external_id?: string`\n - `individual?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }`\n - `naics_code?: string`\n - `nature_of_business?: string`\n - `phone_number?: string`\n - `required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]`\n - `status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'`\n - `status_reasons?: string[]`\n - `user_type?: 'BUSINESS' | 'INDIVIDUAL'`\n - `verification_application?: { created?: string; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; updated?: string; }`\n - `website_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const accountHolder of client.accountHolders.list()) {\n console.log(accountHolder);\n}\n```",
+ "## retrieve\n\n`client.accountHolders.retrieve(account_holder_token: string): { token: string; created: string; account_token?: string; beneficial_owner_individuals?: object[]; business_account_token?: string; business_entity?: object; control_person?: object; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: object; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: required_document[]; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: object; website_url?: string; }`\n\n**get** `/v1/account_holders/{account_holder_token}`\n\nGet an Individual or Business Account Holder and/or their KYC or KYB evaluation status.\n\n### Parameters\n\n- `account_holder_token: string`\n\n### Returns\n\n- `{ token: string; created: string; account_token?: string; beneficial_owner_individuals?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }[]; business_account_token?: string; business_entity?: { address: object; dba_business_name: string; entity_token: string; government_id: string; legal_business_name: string; phone_numbers: string[]; parent_company?: string; }; control_person?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: { created?: string; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; updated?: string; }; website_url?: string; }`\n\n - `token: string`\n - `created: string`\n - `account_token?: string`\n - `beneficial_owner_individuals?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }[]`\n - `business_account_token?: string`\n - `business_entity?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dba_business_name: string; entity_token: string; government_id: string; legal_business_name: string; phone_numbers: string[]; parent_company?: string; }`\n - `control_person?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }`\n - `email?: string`\n - `exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'`\n - `external_id?: string`\n - `individual?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }`\n - `naics_code?: string`\n - `nature_of_business?: string`\n - `phone_number?: string`\n - `required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]`\n - `status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'`\n - `status_reasons?: string[]`\n - `user_type?: 'BUSINESS' | 'INDIVIDUAL'`\n - `verification_application?: { created?: string; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; updated?: string; }`\n - `website_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst accountHolder = await client.accountHolders.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(accountHolder);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AccountHolders.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\taccountHolder, err := client.AccountHolders.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", accountHolder.BeneficialOwnerIndividuals)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/account_holders/$ACCOUNT_HOLDER_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'accountHolders().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AccountHolder;\nimport com.lithic.api.models.AccountHolderRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AccountHolder accountHolder = client.accountHolders().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'accountHolders().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountHolder\nimport com.lithic.api.models.AccountHolderRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val accountHolder: AccountHolder = client.accountHolders().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'account_holders.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\naccount_holder = client.account_holders.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(account_holder.beneficial_owner_individuals)',
+ },
+ ruby: {
+ method: 'account_holders.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\naccount_holder = lithic.account_holders.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(account_holder)',
+ },
+ typescript: {
+ method: 'client.accountHolders.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst accountHolder = await client.accountHolders.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(accountHolder.beneficial_owner_individuals);",
+ },
+ },
+ },
+ {
+ name: 'upload_document',
+ endpoint: '/v1/account_holders/{account_holder_token}/documents',
+ httpMethod: 'post',
+ summary: 'Initiate account holder document upload',
+ description:
+ 'Use this endpoint to identify which type of supported government-issued documentation you will upload for further verification.\nIt will return two URLs to upload your document images to - one for the front image and one for the back image.\n\nThis endpoint is only valid for evaluations in a `PENDING_DOCUMENT` state.\n\nSupported file types include `jpg`, `png`, and `pdf`. Each file must be less than 15 MiB. Once both required uploads have been successfully completed, your document will be run through KYC verification.\n\nIf you have registered a webhook, you will receive evaluation updates for any document submission evaluations, as well as for any failed document uploads.\n\nTwo document submission attempts are permitted via this endpoint before a `REJECTED` status is returned and the account creation process is ended. Currently only one type of\naccount holder document is supported per KYC verification.\n',
+ stainlessPath: '(resource) account_holders > (method) upload_document',
+ qualified: 'client.accountHolders.uploadDocument',
+ params: ['account_holder_token: string;', 'document_type: string;', 'entity_token: string;'],
+ response:
+ "{ token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]; }",
+ markdown:
+ "## upload_document\n\n`client.accountHolders.uploadDocument(account_holder_token: string, document_type: string, entity_token: string): { token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: object[]; }`\n\n**post** `/v1/account_holders/{account_holder_token}/documents`\n\nUse this endpoint to identify which type of supported government-issued documentation you will upload for further verification.\nIt will return two URLs to upload your document images to - one for the front image and one for the back image.\n\nThis endpoint is only valid for evaluations in a `PENDING_DOCUMENT` state.\n\nSupported file types include `jpg`, `png`, and `pdf`. Each file must be less than 15 MiB. Once both required uploads have been successfully completed, your document will be run through KYC verification.\n\nIf you have registered a webhook, you will receive evaluation updates for any document submission evaluations, as well as for any failed document uploads.\n\nTwo document submission attempts are permitted via this endpoint before a `REJECTED` status is returned and the account creation process is ended. Currently only one type of\naccount holder document is supported per KYC verification.\n\n\n### Parameters\n\n- `account_holder_token: string`\n\n- `document_type: string`\n The type of document to upload\n\n- `entity_token: string`\n Globally unique identifier for the entity.\n\n### Returns\n\n- `{ token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]; }`\n Describes the document and the required document image uploads\nrequired to re-run KYC\n\n - `token: string`\n - `account_holder_token: string`\n - `document_type: string`\n - `entity_token: string`\n - `required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst document = await client.accountHolders.uploadDocument('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { document_type: 'EIN_LETTER', entity_token: '83cf25ae-c14f-4d10-9fa2-0119f36c7286' });\n\nconsole.log(document);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AccountHolders.UploadDocument',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdocument, err := client.AccountHolders.UploadDocument(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AccountHolderUploadDocumentParams{\n\t\t\tDocumentType: lithic.F(lithic.AccountHolderUploadDocumentParamsDocumentTypeEinLetter),\n\t\t\tEntityToken: lithic.F("83cf25ae-c14f-4d10-9fa2-0119f36c7286"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", document.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/account_holders/$ACCOUNT_HOLDER_TOKEN/documents \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "document_type": "EIN_LETTER",\n "entity_token": "83cf25ae-c14f-4d10-9fa2-0119f36c7286"\n }\'',
+ },
+ java: {
+ method: 'accountHolders().uploadDocument',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AccountHolderUploadDocumentParams;\nimport com.lithic.api.models.Document;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AccountHolderUploadDocumentParams params = AccountHolderUploadDocumentParams.builder()\n .accountHolderToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .documentType(AccountHolderUploadDocumentParams.DocumentType.EIN_LETTER)\n .entityToken("83cf25ae-c14f-4d10-9fa2-0119f36c7286")\n .build();\n Document document = client.accountHolders().uploadDocument(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'accountHolders().uploadDocument',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountHolderUploadDocumentParams\nimport com.lithic.api.models.Document\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: AccountHolderUploadDocumentParams = AccountHolderUploadDocumentParams.builder()\n .accountHolderToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .documentType(AccountHolderUploadDocumentParams.DocumentType.EIN_LETTER)\n .entityToken("83cf25ae-c14f-4d10-9fa2-0119f36c7286")\n .build()\n val document: Document = client.accountHolders().uploadDocument(params)\n}',
+ },
+ python: {
+ method: 'account_holders.upload_document',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndocument = client.account_holders.upload_document(\n account_holder_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n document_type="EIN_LETTER",\n entity_token="83cf25ae-c14f-4d10-9fa2-0119f36c7286",\n)\nprint(document.token)',
+ },
+ ruby: {
+ method: 'account_holders.upload_document',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndocument = lithic.account_holders.upload_document(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n document_type: :EIN_LETTER,\n entity_token: "83cf25ae-c14f-4d10-9fa2-0119f36c7286"\n)\n\nputs(document)',
+ },
+ typescript: {
+ method: 'client.accountHolders.uploadDocument',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst document = await client.accountHolders.uploadDocument(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { document_type: 'EIN_LETTER', entity_token: '83cf25ae-c14f-4d10-9fa2-0119f36c7286' },\n);\n\nconsole.log(document.token);",
+ },
+ },
},
{
name: 'list_documents',
@@ -221,6 +531,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'{ data?: { token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: object[]; }[]; }',
markdown:
"## list_documents\n\n`client.accountHolders.listDocuments(account_holder_token: string): { data?: document[]; }`\n\n**get** `/v1/account_holders/{account_holder_token}/documents`\n\nRetrieve the status of account holder document uploads, or retrieve the upload URLs to process your image uploads.\n\nNote that this is not equivalent to checking the status of the KYC evaluation overall (a document may be successfully uploaded but not be sufficient for KYC to pass).\n\nIn the event your upload URLs have expired, calling this endpoint will refresh them.\nSimilarly, in the event a previous account holder document upload has failed, you can use this endpoint to get a new upload URL for the failed image upload.\n\nWhen a new document upload is generated for a failed attempt, the response will show an additional entry in the `required_document_uploads` list\nin a `PENDING` state for the corresponding `image_type`.\n\n\n### Parameters\n\n- `account_holder_token: string`\n\n### Returns\n\n- `{ data?: { token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: object[]; }[]; }`\n\n - `data?: { token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.accountHolders.listDocuments('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AccountHolders.ListDocuments',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.AccountHolders.ListDocuments(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Data)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/account_holders/$ACCOUNT_HOLDER_TOKEN/documents \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'accountHolders().listDocuments',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AccountHolderListDocumentsParams;\nimport com.lithic.api.models.AccountHolderListDocumentsResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AccountHolderListDocumentsResponse response = client.accountHolders().listDocuments("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'accountHolders().listDocuments',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountHolderListDocumentsParams\nimport com.lithic.api.models.AccountHolderListDocumentsResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: AccountHolderListDocumentsResponse = client.accountHolders().listDocuments("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'account_holders.list_documents',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.account_holders.list_documents(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.data)',
+ },
+ ruby: {
+ method: 'account_holders.list_documents',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.account_holders.list_documents("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.accountHolders.listDocuments',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.accountHolders.listDocuments('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response.data);",
+ },
+ },
},
{
name: 'retrieve_document',
@@ -236,25 +582,104 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]; }",
markdown:
"## retrieve_document\n\n`client.accountHolders.retrieveDocument(account_holder_token: string, document_token: string): { token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: object[]; }`\n\n**get** `/v1/account_holders/{account_holder_token}/documents/{document_token}`\n\nCheck the status of an account holder document upload, or retrieve the upload URLs to process your image uploads.\n\nNote that this is not equivalent to checking the status of the KYC evaluation overall (a document may be successfully uploaded but not be sufficient for KYC to pass).\n\nIn the event your upload URLs have expired, calling this endpoint will refresh them.\nSimilarly, in the event a document upload has failed, you can use this endpoint to get a new upload URL for the failed image upload.\n\nWhen a new account holder document upload is generated for a failed attempt, the response will show an additional entry in the `required_document_uploads` array\nin a `PENDING` state for the corresponding `image_type`.\n\n\n### Parameters\n\n- `account_holder_token: string`\n\n- `document_token: string`\n\n### Returns\n\n- `{ token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]; }`\n Describes the document and the required document image uploads\nrequired to re-run KYC\n\n - `token: string`\n - `account_holder_token: string`\n - `document_type: string`\n - `entity_token: string`\n - `required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst document = await client.accountHolders.retrieveDocument('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { account_holder_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(document);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AccountHolders.GetDocument',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdocument, err := client.AccountHolders.GetDocument(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", document.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/account_holders/$ACCOUNT_HOLDER_TOKEN/documents/$DOCUMENT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'accountHolders().retrieveDocument',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AccountHolderRetrieveDocumentParams;\nimport com.lithic.api.models.Document;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AccountHolderRetrieveDocumentParams params = AccountHolderRetrieveDocumentParams.builder()\n .accountHolderToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .documentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build();\n Document document = client.accountHolders().retrieveDocument(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'accountHolders().retrieveDocument',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountHolderRetrieveDocumentParams\nimport com.lithic.api.models.Document\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: AccountHolderRetrieveDocumentParams = AccountHolderRetrieveDocumentParams.builder()\n .accountHolderToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .documentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val document: Document = client.accountHolders().retrieveDocument(params)\n}',
+ },
+ python: {
+ method: 'account_holders.retrieve_document',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndocument = client.account_holders.retrieve_document(\n document_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n account_holder_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(document.token)',
+ },
+ ruby: {
+ method: 'account_holders.retrieve_document',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndocument = lithic.account_holders.retrieve_document(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n account_holder_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(document)',
+ },
+ typescript: {
+ method: 'client.accountHolders.retrieveDocument',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst document = await client.accountHolders.retrieveDocument(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { account_holder_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(document.token);",
+ },
+ },
},
{
- name: 'simulate_enrollment_document_review',
- endpoint: '/v1/simulate/account_holders/enrollment_document_review',
- httpMethod: 'post',
- summary: "Simulate an account holder document upload's review",
- description: 'Simulates a review for an account holder document upload.',
- stainlessPath: '(resource) account_holders > (method) simulate_enrollment_document_review',
- qualified: 'client.accountHolders.simulateEnrollmentDocumentReview',
+ name: 'list',
+ endpoint: '/v1/account_holders',
+ httpMethod: 'get',
+ summary: 'Get a list of individual or business account holders',
+ description:
+ 'Get a list of individual or business account holders and their KYC or KYB evaluation status.',
+ stainlessPath: '(resource) account_holders > (method) list',
+ qualified: 'client.accountHolders.list',
params: [
- 'document_upload_token: string;',
- "status: 'UPLOADED' | 'ACCEPTED' | 'REJECTED' | 'PARTIAL_APPROVAL';",
- 'accepted_entity_status_reasons?: string[];',
- 'status_reason?: string;',
+ 'begin?: string;',
+ 'email?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'external_id?: string;',
+ 'first_name?: string;',
+ 'last_name?: string;',
+ 'legal_business_name?: string;',
+ 'limit?: number;',
+ 'phone_number?: string;',
+ 'starting_after?: string;',
],
response:
- "{ token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]; }",
+ "{ token: string; created: string; account_token?: string; beneficial_owner_individuals?: object[]; business_account_token?: string; business_entity?: object; control_person?: object; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: object; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: required_document[]; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: object; website_url?: string; }",
markdown:
- "## simulate_enrollment_document_review\n\n`client.accountHolders.simulateEnrollmentDocumentReview(document_upload_token: string, status: 'UPLOADED' | 'ACCEPTED' | 'REJECTED' | 'PARTIAL_APPROVAL', accepted_entity_status_reasons?: string[], status_reason?: string): { token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: object[]; }`\n\n**post** `/v1/simulate/account_holders/enrollment_document_review`\n\nSimulates a review for an account holder document upload.\n\n### Parameters\n\n- `document_upload_token: string`\n The account holder document upload which to perform the simulation upon.\n\n- `status: 'UPLOADED' | 'ACCEPTED' | 'REJECTED' | 'PARTIAL_APPROVAL'`\n An account holder document's upload status for use within the simulation.\n\n- `accepted_entity_status_reasons?: string[]`\n A list of status reasons associated with a KYB account holder in PENDING_REVIEW\n\n- `status_reason?: string`\n Status reason that will be associated with the simulated account holder status. Only required for a `REJECTED` status or `PARTIAL_APPROVAL` status.\n\n### Returns\n\n- `{ token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]; }`\n Describes the document and the required document image uploads\nrequired to re-run KYC\n\n - `token: string`\n - `account_holder_token: string`\n - `document_type: string`\n - `entity_token: string`\n - `required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst document = await client.accountHolders.simulateEnrollmentDocumentReview({ document_upload_token: 'b11cd67b-0a52-4180-8365-314f3def5426', status: 'UPLOADED' });\n\nconsole.log(document);\n```",
+ "## list\n\n`client.accountHolders.list(begin?: string, email?: string, end?: string, ending_before?: string, external_id?: string, first_name?: string, last_name?: string, legal_business_name?: string, limit?: number, phone_number?: string, starting_after?: string): { token: string; created: string; account_token?: string; beneficial_owner_individuals?: object[]; business_account_token?: string; business_entity?: object; control_person?: object; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: object; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: required_document[]; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: object; website_url?: string; }`\n\n**get** `/v1/account_holders`\n\nGet a list of individual or business account holders and their KYC or KYB evaluation status.\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `email?: string`\n Email address of the account holder. The query must be an exact match, case insensitive.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `external_id?: string`\n If applicable, represents the external_id associated with the account_holder.\n\n- `first_name?: string`\n (Individual Account Holders only) The first name of the account holder. The query is case insensitive and supports partial matches.\n\n- `last_name?: string`\n (Individual Account Holders only) The last name of the account holder. The query is case insensitive and supports partial matches.\n\n- `legal_business_name?: string`\n (Business Account Holders only) The legal business name of the account holder. The query is case insensitive and supports partial matches.\n\n- `limit?: number`\n The number of account_holders to limit the response to.\n\n- `phone_number?: string`\n Phone number of the account holder. The query must be an exact match.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; created: string; account_token?: string; beneficial_owner_individuals?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }[]; business_account_token?: string; business_entity?: { address: object; dba_business_name: string; entity_token: string; government_id: string; legal_business_name: string; phone_numbers: string[]; parent_company?: string; }; control_person?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: { created?: string; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; updated?: string; }; website_url?: string; }`\n\n - `token: string`\n - `created: string`\n - `account_token?: string`\n - `beneficial_owner_individuals?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }[]`\n - `business_account_token?: string`\n - `business_entity?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dba_business_name: string; entity_token: string; government_id: string; legal_business_name: string; phone_numbers: string[]; parent_company?: string; }`\n - `control_person?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }`\n - `email?: string`\n - `exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'`\n - `external_id?: string`\n - `individual?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }`\n - `naics_code?: string`\n - `nature_of_business?: string`\n - `phone_number?: string`\n - `required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]`\n - `status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'`\n - `status_reasons?: string[]`\n - `user_type?: 'BUSINESS' | 'INDIVIDUAL'`\n - `verification_application?: { created?: string; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; updated?: string; }`\n - `website_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const accountHolder of client.accountHolders.list()) {\n console.log(accountHolder);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AccountHolders.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.AccountHolders.List(context.TODO(), lithic.AccountHolderListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example: 'curl https://api.lithic.com/v1/account_holders \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'accountHolders().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AccountHolderListPage;\nimport com.lithic.api.models.AccountHolderListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AccountHolderListPage page = client.accountHolders().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'accountHolders().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountHolderListPage\nimport com.lithic.api.models.AccountHolderListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: AccountHolderListPage = client.accountHolders().list()\n}',
+ },
+ python: {
+ method: 'account_holders.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.account_holders.list()\npage = page.data[0]\nprint(page.beneficial_owner_individuals)',
+ },
+ ruby: {
+ method: 'account_holders.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.account_holders.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.accountHolders.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const accountHolder of client.accountHolders.list()) {\n console.log(accountHolder.beneficial_owner_individuals);\n}",
+ },
+ },
},
{
name: 'simulate_enrollment_review',
@@ -274,21 +699,97 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token?: string; account_token?: string; beneficial_owner_individuals?: { address?: object; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }[]; business_account_token?: string; business_entity?: object; control_person?: { address?: object; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }; created?: string; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: { address?: object; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: object[]; status?: 'ACCEPTED' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: { created: string; status: 'ACCEPTED' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons: string[]; updated: string; ky_passed_at?: string; }; website_url?: string; }",
markdown:
"## simulate_enrollment_review\n\n`client.accountHolders.simulateEnrollmentReview(account_holder_token?: string, status?: 'ACCEPTED' | 'REJECTED' | 'PENDING_REVIEW', status_reasons?: string[]): { token?: string; account_token?: string; beneficial_owner_individuals?: object[]; business_account_token?: string; business_entity?: kyb_business_entity; control_person?: object; created?: string; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: object; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: required_document[]; status?: 'ACCEPTED' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: object; website_url?: string; }`\n\n**post** `/v1/simulate/account_holders/enrollment_review`\n\n Simulates an enrollment review for an account holder. This endpoint is only applicable for workflows that may required intervention such as `KYB_BASIC`. \n\n### Parameters\n\n- `account_holder_token?: string`\n The account holder which to perform the simulation upon.\n\n- `status?: 'ACCEPTED' | 'REJECTED' | 'PENDING_REVIEW'`\n An account holder's status for use within the simulation.\n\n- `status_reasons?: string[]`\n Status reason that will be associated with the simulated account holder status. Only required for a `REJECTED` status.\n\n### Returns\n\n- `{ token?: string; account_token?: string; beneficial_owner_individuals?: { address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }[]; business_account_token?: string; business_entity?: { address: object; government_id: string; legal_business_name: string; phone_numbers: string[]; dba_business_name?: string; parent_company?: string; }; control_person?: { address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }; created?: string; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: { address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]; status?: 'ACCEPTED' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: { created: string; status: 'ACCEPTED' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons: string[]; updated: string; ky_passed_at?: string; }; website_url?: string; }`\n\n - `token?: string`\n - `account_token?: string`\n - `beneficial_owner_individuals?: { address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }[]`\n - `business_account_token?: string`\n - `business_entity?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; government_id: string; legal_business_name: string; phone_numbers: string[]; dba_business_name?: string; parent_company?: string; }`\n - `control_person?: { address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }`\n - `created?: string`\n - `email?: string`\n - `exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'`\n - `external_id?: string`\n - `individual?: { address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }`\n - `naics_code?: string`\n - `nature_of_business?: string`\n - `phone_number?: string`\n - `required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]`\n - `status?: 'ACCEPTED' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'`\n - `status_reasons?: string[]`\n - `user_type?: 'BUSINESS' | 'INDIVIDUAL'`\n - `verification_application?: { created: string; status: 'ACCEPTED' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons: string[]; updated: string; ky_passed_at?: string; }`\n - `website_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.accountHolders.simulateEnrollmentReview();\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AccountHolders.SimulateEnrollmentReview',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.AccountHolders.SimulateEnrollmentReview(context.TODO(), lithic.AccountHolderSimulateEnrollmentReviewParams{\n\t\tAccountHolderToken: lithic.F("1415964d-4400-4d79-9fb3-eee0faaee4e4"),\n\t\tStatus: lithic.F(lithic.AccountHolderSimulateEnrollmentReviewParamsStatusAccepted),\n\t\tStatusReasons: lithic.F([]lithic.AccountHolderSimulateEnrollmentReviewParamsStatusReason{}),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.BeneficialOwnerIndividuals)\n}\n',
+ },
+ http: {
+ example:
+ "curl https://api.lithic.com/v1/simulate/account_holders/enrollment_review \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ },
+ java: {
+ method: 'accountHolders().simulateEnrollmentReview',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AccountHolderSimulateEnrollmentReviewParams;\nimport com.lithic.api.models.AccountHolderSimulateEnrollmentReviewResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AccountHolderSimulateEnrollmentReviewResponse response = client.accountHolders().simulateEnrollmentReview();\n }\n}',
+ },
+ kotlin: {
+ method: 'accountHolders().simulateEnrollmentReview',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountHolderSimulateEnrollmentReviewParams\nimport com.lithic.api.models.AccountHolderSimulateEnrollmentReviewResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: AccountHolderSimulateEnrollmentReviewResponse = client.accountHolders().simulateEnrollmentReview()\n}',
+ },
+ python: {
+ method: 'account_holders.simulate_enrollment_review',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.account_holders.simulate_enrollment_review(\n account_holder_token="1415964d-4400-4d79-9fb3-eee0faaee4e4",\n status="ACCEPTED",\n status_reasons=[],\n)\nprint(response.beneficial_owner_individuals)',
+ },
+ ruby: {
+ method: 'account_holders.simulate_enrollment_review',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.account_holders.simulate_enrollment_review\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.accountHolders.simulateEnrollmentReview',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.accountHolders.simulateEnrollmentReview({\n account_holder_token: '1415964d-4400-4d79-9fb3-eee0faaee4e4',\n status: 'ACCEPTED',\n status_reasons: [],\n});\n\nconsole.log(response.beneficial_owner_individuals);",
+ },
+ },
},
{
- name: 'upload_document',
- endpoint: '/v1/account_holders/{account_holder_token}/documents',
+ name: 'simulate_enrollment_document_review',
+ endpoint: '/v1/simulate/account_holders/enrollment_document_review',
httpMethod: 'post',
- summary: 'Initiate account holder document upload',
- description:
- 'Use this endpoint to identify which type of supported government-issued documentation you will upload for further verification.\nIt will return two URLs to upload your document images to - one for the front image and one for the back image.\n\nThis endpoint is only valid for evaluations in a `PENDING_DOCUMENT` state.\n\nSupported file types include `jpg`, `png`, and `pdf`. Each file must be less than 15 MiB. Once both required uploads have been successfully completed, your document will be run through KYC verification.\n\nIf you have registered a webhook, you will receive evaluation updates for any document submission evaluations, as well as for any failed document uploads.\n\nTwo document submission attempts are permitted via this endpoint before a `REJECTED` status is returned and the account creation process is ended. Currently only one type of\naccount holder document is supported per KYC verification.\n',
- stainlessPath: '(resource) account_holders > (method) upload_document',
- qualified: 'client.accountHolders.uploadDocument',
- params: ['account_holder_token: string;', 'document_type: string;', 'entity_token: string;'],
+ summary: "Simulate an account holder document upload's review",
+ description: 'Simulates a review for an account holder document upload.',
+ stainlessPath: '(resource) account_holders > (method) simulate_enrollment_document_review',
+ qualified: 'client.accountHolders.simulateEnrollmentDocumentReview',
+ params: [
+ 'document_upload_token: string;',
+ "status: 'UPLOADED' | 'ACCEPTED' | 'REJECTED' | 'PARTIAL_APPROVAL';",
+ 'accepted_entity_status_reasons?: string[];',
+ 'status_reason?: string;',
+ ],
response:
"{ token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]; }",
markdown:
- "## upload_document\n\n`client.accountHolders.uploadDocument(account_holder_token: string, document_type: string, entity_token: string): { token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: object[]; }`\n\n**post** `/v1/account_holders/{account_holder_token}/documents`\n\nUse this endpoint to identify which type of supported government-issued documentation you will upload for further verification.\nIt will return two URLs to upload your document images to - one for the front image and one for the back image.\n\nThis endpoint is only valid for evaluations in a `PENDING_DOCUMENT` state.\n\nSupported file types include `jpg`, `png`, and `pdf`. Each file must be less than 15 MiB. Once both required uploads have been successfully completed, your document will be run through KYC verification.\n\nIf you have registered a webhook, you will receive evaluation updates for any document submission evaluations, as well as for any failed document uploads.\n\nTwo document submission attempts are permitted via this endpoint before a `REJECTED` status is returned and the account creation process is ended. Currently only one type of\naccount holder document is supported per KYC verification.\n\n\n### Parameters\n\n- `account_holder_token: string`\n\n- `document_type: string`\n The type of document to upload\n\n- `entity_token: string`\n Globally unique identifier for the entity.\n\n### Returns\n\n- `{ token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]; }`\n Describes the document and the required document image uploads\nrequired to re-run KYC\n\n - `token: string`\n - `account_holder_token: string`\n - `document_type: string`\n - `entity_token: string`\n - `required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst document = await client.accountHolders.uploadDocument('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { document_type: 'EIN_LETTER', entity_token: '83cf25ae-c14f-4d10-9fa2-0119f36c7286' });\n\nconsole.log(document);\n```",
+ "## simulate_enrollment_document_review\n\n`client.accountHolders.simulateEnrollmentDocumentReview(document_upload_token: string, status: 'UPLOADED' | 'ACCEPTED' | 'REJECTED' | 'PARTIAL_APPROVAL', accepted_entity_status_reasons?: string[], status_reason?: string): { token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: object[]; }`\n\n**post** `/v1/simulate/account_holders/enrollment_document_review`\n\nSimulates a review for an account holder document upload.\n\n### Parameters\n\n- `document_upload_token: string`\n The account holder document upload which to perform the simulation upon.\n\n- `status: 'UPLOADED' | 'ACCEPTED' | 'REJECTED' | 'PARTIAL_APPROVAL'`\n An account holder document's upload status for use within the simulation.\n\n- `accepted_entity_status_reasons?: string[]`\n A list of status reasons associated with a KYB account holder in PENDING_REVIEW\n\n- `status_reason?: string`\n Status reason that will be associated with the simulated account holder status. Only required for a `REJECTED` status or `PARTIAL_APPROVAL` status.\n\n### Returns\n\n- `{ token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]; }`\n Describes the document and the required document image uploads\nrequired to re-run KYC\n\n - `token: string`\n - `account_holder_token: string`\n - `document_type: string`\n - `entity_token: string`\n - `required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst document = await client.accountHolders.simulateEnrollmentDocumentReview({ document_upload_token: 'b11cd67b-0a52-4180-8365-314f3def5426', status: 'UPLOADED' });\n\nconsole.log(document);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AccountHolders.SimulateEnrollmentDocumentReview',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdocument, err := client.AccountHolders.SimulateEnrollmentDocumentReview(context.TODO(), lithic.AccountHolderSimulateEnrollmentDocumentReviewParams{\n\t\tDocumentUploadToken: lithic.F("b11cd67b-0a52-4180-8365-314f3def5426"),\n\t\tStatus: lithic.F(lithic.AccountHolderSimulateEnrollmentDocumentReviewParamsStatusUploaded),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", document.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/simulate/account_holders/enrollment_document_review \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "document_upload_token": "b11cd67b-0a52-4180-8365-314f3def5426",\n "status": "UPLOADED"\n }\'',
+ },
+ java: {
+ method: 'accountHolders().simulateEnrollmentDocumentReview',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AccountHolderSimulateEnrollmentDocumentReviewParams;\nimport com.lithic.api.models.Document;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AccountHolderSimulateEnrollmentDocumentReviewParams params = AccountHolderSimulateEnrollmentDocumentReviewParams.builder()\n .documentUploadToken("b11cd67b-0a52-4180-8365-314f3def5426")\n .status(AccountHolderSimulateEnrollmentDocumentReviewParams.Status.UPLOADED)\n .build();\n Document document = client.accountHolders().simulateEnrollmentDocumentReview(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'accountHolders().simulateEnrollmentDocumentReview',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountHolderSimulateEnrollmentDocumentReviewParams\nimport com.lithic.api.models.Document\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: AccountHolderSimulateEnrollmentDocumentReviewParams = AccountHolderSimulateEnrollmentDocumentReviewParams.builder()\n .documentUploadToken("b11cd67b-0a52-4180-8365-314f3def5426")\n .status(AccountHolderSimulateEnrollmentDocumentReviewParams.Status.UPLOADED)\n .build()\n val document: Document = client.accountHolders().simulateEnrollmentDocumentReview(params)\n}',
+ },
+ python: {
+ method: 'account_holders.simulate_enrollment_document_review',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndocument = client.account_holders.simulate_enrollment_document_review(\n document_upload_token="b11cd67b-0a52-4180-8365-314f3def5426",\n status="UPLOADED",\n)\nprint(document.token)',
+ },
+ ruby: {
+ method: 'account_holders.simulate_enrollment_document_review',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndocument = lithic.account_holders.simulate_enrollment_document_review(\n document_upload_token: "b11cd67b-0a52-4180-8365-314f3def5426",\n status: :UPLOADED\n)\n\nputs(document)',
+ },
+ typescript: {
+ method: 'client.accountHolders.simulateEnrollmentDocumentReview',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst document = await client.accountHolders.simulateEnrollmentDocumentReview({\n document_upload_token: 'b11cd67b-0a52-4180-8365-314f3def5426',\n status: 'UPLOADED',\n});\n\nconsole.log(document.token);",
+ },
+ },
},
{
name: 'create',
@@ -314,6 +815,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; account_holder_token: string; created: string; required_documents: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]; status: 'ACCEPTED' | 'INACTIVE' | 'PENDING_REVIEW' | 'REJECTED'; status_reasons: string[]; }",
markdown:
"## create\n\n`client.accountHolders.entities.create(account_holder_token: string, address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }, dob: string, email: string, first_name: string, government_id: string, last_name: string, phone_number: string, type: 'BENEFICIAL_OWNER_INDIVIDUAL' | 'CONTROL_PERSON'): { token: string; account_holder_token: string; created: string; required_documents: required_document[]; status: 'ACCEPTED' | 'INACTIVE' | 'PENDING_REVIEW' | 'REJECTED'; status_reasons: string[]; }`\n\n**post** `/v1/account_holders/{account_holder_token}/entities`\n\nCreate a new beneficial owner individual or replace the control person entity on an existing KYB account holder. This endpoint is only applicable for account holders enrolled through a KYB workflow with the Persona KYB provider.\nA new control person can only replace the existing one. A maximum of 4 beneficial owners can be associated with an account holder.\n\n### Parameters\n\n- `account_holder_token: string`\n\n- `address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n Individual's current address - PO boxes, UPS drops, and FedEx drops are not acceptable; APO/FPO are acceptable. Only USA addresses are currently supported.\n - `address1: string`\n Valid deliverable address (no PO boxes).\n - `city: string`\n Name of city.\n - `country: string`\n Valid country code. Only USA is currently supported, entered in uppercase ISO 3166-1 alpha-3 three-character format.\n - `postal_code: string`\n Valid postal code. Only USA ZIP codes are currently supported, entered as a five-digit ZIP or nine-digit ZIP+4.\n - `state: string`\n Valid state code. Only USA state codes are currently supported, entered in uppercase ISO 3166-2 two-character format.\n - `address2?: string`\n Unit or apartment number (if applicable).\n\n- `dob: string`\n Individual's date of birth, as an RFC 3339 date.\n\n- `email: string`\n Individual's email address. If utilizing Lithic for chargeback processing, this customer email address may be used to communicate dispute status and resolution.\n\n- `first_name: string`\n Individual's first name, as it appears on government-issued identity documents.\n\n- `government_id: string`\n Government-issued identification number (required for identity verification and compliance with banking regulations). Social Security Numbers (SSN) and Individual Taxpayer Identification Numbers (ITIN) are currently supported, entered as full nine-digits, with or without hyphens\n\n- `last_name: string`\n Individual's last name, as it appears on government-issued identity documents.\n\n- `phone_number: string`\n Individual's phone number, entered in E.164 format.\n\n- `type: 'BENEFICIAL_OWNER_INDIVIDUAL' | 'CONTROL_PERSON'`\n The type of entity to create on the account holder\n\n### Returns\n\n- `{ token: string; account_holder_token: string; created: string; required_documents: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]; status: 'ACCEPTED' | 'INACTIVE' | 'PENDING_REVIEW' | 'REJECTED'; status_reasons: string[]; }`\n Response body for creating a new beneficial owner or replacing the control person entity on an existing KYB account holder.\n\n - `token: string`\n - `account_holder_token: string`\n - `created: string`\n - `required_documents: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]`\n - `status: 'ACCEPTED' | 'INACTIVE' | 'PENDING_REVIEW' | 'REJECTED'`\n - `status_reasons: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst entity = await client.accountHolders.entities.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n address: {\n address1: '300 Normal Forest Way',\n city: 'Portland',\n country: 'USA',\n postal_code: '90210',\n state: 'OR',\n},\n dob: '1991-03-08T08:00:00Z',\n email: 'tim@left-earth.com',\n first_name: 'Timmy',\n government_id: '211-23-1412',\n last_name: 'Turner',\n phone_number: '+15555555555',\n type: 'BENEFICIAL_OWNER_INDIVIDUAL',\n});\n\nconsole.log(entity);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AccountHolders.Entities.New',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tentity, err := client.AccountHolders.Entities.New(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AccountHolderEntityNewParams{\n\t\t\tAddress: lithic.F(lithic.AccountHolderEntityNewParamsAddress{\n\t\t\t\tAddress1: lithic.F("300 Normal Forest Way"),\n\t\t\t\tCity: lithic.F("Portland"),\n\t\t\t\tCountry: lithic.F("USA"),\n\t\t\t\tPostalCode: lithic.F("90210"),\n\t\t\t\tState: lithic.F("OR"),\n\t\t\t}),\n\t\t\tDob: lithic.F("1991-03-08T08:00:00Z"),\n\t\t\tEmail: lithic.F("tim@left-earth.com"),\n\t\t\tFirstName: lithic.F("Timmy"),\n\t\t\tGovernmentID: lithic.F("211-23-1412"),\n\t\t\tLastName: lithic.F("Turner"),\n\t\t\tPhoneNumber: lithic.F("+15555555555"),\n\t\t\tType: lithic.F(lithic.AccountHolderEntityNewParamsTypeBeneficialOwnerIndividual),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", entity.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/account_holders/$ACCOUNT_HOLDER_TOKEN/entities \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "address": {\n "address1": "300 Normal Forest Way",\n "city": "Portland",\n "country": "USA",\n "postal_code": "90210",\n "state": "OR"\n },\n "dob": "1991-03-08T08:00:00Z",\n "email": "tim@left-earth.com",\n "first_name": "Timmy",\n "government_id": "211-23-1412",\n "last_name": "Turner",\n "phone_number": "+15555555555",\n "type": "BENEFICIAL_OWNER_INDIVIDUAL"\n }\'',
+ },
+ java: {
+ method: 'accountHolders().entities().create',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AccountHolderEntityCreateParams;\nimport com.lithic.api.models.EntityCreateResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AccountHolderEntityCreateParams params = AccountHolderEntityCreateParams.builder()\n .accountHolderToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .address(AccountHolderEntityCreateParams.Address.builder()\n .address1("300 Normal Forest Way")\n .city("Portland")\n .country("USA")\n .postalCode("90210")\n .state("OR")\n .build())\n .dob("1991-03-08T08:00:00Z")\n .email("tim@left-earth.com")\n .firstName("Timmy")\n .governmentId("211-23-1412")\n .lastName("Turner")\n .phoneNumber("+15555555555")\n .type(AccountHolderEntityCreateParams.EntityType.BENEFICIAL_OWNER_INDIVIDUAL)\n .build();\n EntityCreateResponse entity = client.accountHolders().entities().create(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'accountHolders().entities().create',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountHolderEntityCreateParams\nimport com.lithic.api.models.EntityCreateResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: AccountHolderEntityCreateParams = AccountHolderEntityCreateParams.builder()\n .accountHolderToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .address(AccountHolderEntityCreateParams.Address.builder()\n .address1("300 Normal Forest Way")\n .city("Portland")\n .country("USA")\n .postalCode("90210")\n .state("OR")\n .build())\n .dob("1991-03-08T08:00:00Z")\n .email("tim@left-earth.com")\n .firstName("Timmy")\n .governmentId("211-23-1412")\n .lastName("Turner")\n .phoneNumber("+15555555555")\n .type(AccountHolderEntityCreateParams.EntityType.BENEFICIAL_OWNER_INDIVIDUAL)\n .build()\n val entity: EntityCreateResponse = client.accountHolders().entities().create(params)\n}',
+ },
+ python: {
+ method: 'account_holders.entities.create',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nentity = client.account_holders.entities.create(\n account_holder_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n address={\n "address1": "300 Normal Forest Way",\n "city": "Portland",\n "country": "USA",\n "postal_code": "90210",\n "state": "OR",\n },\n dob="1991-03-08T08:00:00Z",\n email="tim@left-earth.com",\n first_name="Timmy",\n government_id="211-23-1412",\n last_name="Turner",\n phone_number="+15555555555",\n type="BENEFICIAL_OWNER_INDIVIDUAL",\n)\nprint(entity.token)',
+ },
+ ruby: {
+ method: 'account_holders.entities.create',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nentity = lithic.account_holders.entities.create(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n address: {address1: "300 Normal Forest Way", city: "Portland", country: "USA", postal_code: "90210", state: "OR"},\n dob: "1991-03-08T08:00:00Z",\n email: "tim@left-earth.com",\n first_name: "Timmy",\n government_id: "211-23-1412",\n last_name: "Turner",\n phone_number: "+15555555555",\n type: :BENEFICIAL_OWNER_INDIVIDUAL\n)\n\nputs(entity)',
+ },
+ typescript: {
+ method: 'client.accountHolders.entities.create',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst entity = await client.accountHolders.entities.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n address: {\n address1: '300 Normal Forest Way',\n city: 'Portland',\n country: 'USA',\n postal_code: '90210',\n state: 'OR',\n },\n dob: '1991-03-08T08:00:00Z',\n email: 'tim@left-earth.com',\n first_name: 'Timmy',\n government_id: '211-23-1412',\n last_name: 'Turner',\n phone_number: '+15555555555',\n type: 'BENEFICIAL_OWNER_INDIVIDUAL',\n});\n\nconsole.log(entity.token);",
+ },
+ },
},
{
name: 'delete',
@@ -329,6 +866,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; account_holder_token: string; address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; first_name: string; last_name: string; phone_number: string; status: 'ACCEPTED' | 'INACTIVE' | 'PENDING_REVIEW' | 'REJECTED'; type: 'BENEFICIAL_OWNER_INDIVIDUAL' | 'CONTROL_PERSON'; }",
markdown:
"## delete\n\n`client.accountHolders.entities.delete(account_holder_token: string, entity_token: string): { token: string; account_holder_token: string; address: object; dob: string; email: string; first_name: string; last_name: string; phone_number: string; status: 'ACCEPTED' | 'INACTIVE' | 'PENDING_REVIEW' | 'REJECTED'; type: 'BENEFICIAL_OWNER_INDIVIDUAL' | 'CONTROL_PERSON'; }`\n\n**delete** `/v1/account_holders/{account_holder_token}/entities/{entity_token}`\n\nDeactivate a beneficial owner individual on an existing KYB account holder. Only beneficial owner individuals can be deactivated.\n\n### Parameters\n\n- `account_holder_token: string`\n\n- `entity_token: string`\n\n### Returns\n\n- `{ token: string; account_holder_token: string; address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; first_name: string; last_name: string; phone_number: string; status: 'ACCEPTED' | 'INACTIVE' | 'PENDING_REVIEW' | 'REJECTED'; type: 'BENEFICIAL_OWNER_INDIVIDUAL' | 'CONTROL_PERSON'; }`\n Information about an entity associated with an account holder\n\n - `token: string`\n - `account_holder_token: string`\n - `address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `dob: string`\n - `email: string`\n - `first_name: string`\n - `last_name: string`\n - `phone_number: string`\n - `status: 'ACCEPTED' | 'INACTIVE' | 'PENDING_REVIEW' | 'REJECTED'`\n - `type: 'BENEFICIAL_OWNER_INDIVIDUAL' | 'CONTROL_PERSON'`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst accountHolderEntity = await client.accountHolders.entities.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { account_holder_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(accountHolderEntity);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AccountHolders.Entities.Delete',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\taccountHolderEntity, err := client.AccountHolders.Entities.Delete(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", accountHolderEntity.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/account_holders/$ACCOUNT_HOLDER_TOKEN/entities/$ENTITY_TOKEN \\\n -X DELETE \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'accountHolders().entities().delete',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AccountHolderEntity;\nimport com.lithic.api.models.AccountHolderEntityDeleteParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AccountHolderEntityDeleteParams params = AccountHolderEntityDeleteParams.builder()\n .accountHolderToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .entityToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build();\n AccountHolderEntity accountHolderEntity = client.accountHolders().entities().delete(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'accountHolders().entities().delete',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountHolderEntity\nimport com.lithic.api.models.AccountHolderEntityDeleteParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: AccountHolderEntityDeleteParams = AccountHolderEntityDeleteParams.builder()\n .accountHolderToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .entityToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val accountHolderEntity: AccountHolderEntity = client.accountHolders().entities().delete(params)\n}',
+ },
+ python: {
+ method: 'account_holders.entities.delete',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\naccount_holder_entity = client.account_holders.entities.delete(\n entity_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n account_holder_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(account_holder_entity.token)',
+ },
+ ruby: {
+ method: 'account_holders.entities.delete',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\naccount_holder_entity = lithic.account_holders.entities.delete(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n account_holder_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(account_holder_entity)',
+ },
+ typescript: {
+ method: 'client.accountHolders.entities.delete',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst accountHolderEntity = await client.accountHolders.entities.delete(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { account_holder_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(accountHolderEntity.token);",
+ },
+ },
},
{
name: 'create',
@@ -343,6 +916,101 @@ const EMBEDDED_METHODS: MethodEntry[] = [
],
response:
"{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }",
+ perLanguage: {
+ go: {
+ method: 'client.AuthRules.V2.New',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n\t"github.com/lithic-com/lithic-go/shared"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tauthRule, err := client.AuthRules.V2.New(context.TODO(), lithic.AuthRuleV2NewParams{\n\t\tBody: lithic.AuthRuleV2NewParamsBodyAccountLevelRule{\n\t\t\tParameters: lithic.F[lithic.AuthRuleV2NewParamsBodyAccountLevelRuleParametersUnion](lithic.ConditionalBlockParameters{\n\t\t\t\tConditions: lithic.F([]lithic.AuthRuleConditionParam{{\n\t\t\t\t\tAttribute: lithic.F(lithic.ConditionalAttributeMcc),\n\t\t\t\t\tOperation: lithic.F(lithic.ConditionalOperationIsOneOf),\n\t\t\t\t\tValue: lithic.F[lithic.ConditionalValueUnionParam](shared.UnionString("string")),\n\t\t\t\t}}),\n\t\t\t}),\n\t\t\tType: lithic.F(lithic.AuthRuleV2NewParamsBodyAccountLevelRuleTypeConditionalBlock),\n\t\t},\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", authRule.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v2/auth_rules \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "parameters": {\n "conditions": [\n {\n "attribute": "MCC",\n "operation": "IS_ONE_OF",\n "value": "string"\n }\n ]\n },\n "type": "CONDITIONAL_BLOCK"\n }\'',
+ },
+ java: {
+ method: 'authRules().v2().create',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AuthRule;\nimport com.lithic.api.models.AuthRuleCondition;\nimport com.lithic.api.models.AuthRuleV2CreateParams;\nimport com.lithic.api.models.ConditionalAttribute;\nimport com.lithic.api.models.ConditionalBlockParameters;\nimport com.lithic.api.models.ConditionalOperation;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AuthRuleV2CreateParams.Body.AccountLevelRule params = AuthRuleV2CreateParams.Body.AccountLevelRule.builder()\n .parameters(ConditionalBlockParameters.builder()\n .addCondition(AuthRuleCondition.builder()\n .attribute(ConditionalAttribute.MCC)\n .operation(ConditionalOperation.IS_ONE_OF)\n .value("string")\n .build())\n .build())\n .type(AuthRuleV2CreateParams.Body.AccountLevelRule.AuthRuleType.CONDITIONAL_BLOCK)\n .build();\n AuthRule authRule = client.authRules().v2().create(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'authRules().v2().create',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRule\nimport com.lithic.api.models.AuthRuleCondition\nimport com.lithic.api.models.AuthRuleV2CreateParams\nimport com.lithic.api.models.ConditionalAttribute\nimport com.lithic.api.models.ConditionalBlockParameters\nimport com.lithic.api.models.ConditionalOperation\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: AuthRuleV2CreateParams.Body.AccountLevelRule = AuthRuleV2CreateParams.Body.AccountLevelRule.builder()\n .parameters(ConditionalBlockParameters.builder()\n .addCondition(AuthRuleCondition.builder()\n .attribute(ConditionalAttribute.MCC)\n .operation(ConditionalOperation.IS_ONE_OF)\n .value("string")\n .build())\n .build())\n .type(AuthRuleV2CreateParams.Body.AccountLevelRule.AuthRuleType.CONDITIONAL_BLOCK)\n .build()\n val authRule: AuthRule = client.authRules().v2().create(params)\n}',
+ },
+ python: {
+ method: 'auth_rules.v2.create',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nauth_rule = client.auth_rules.v2.create(\n parameters={\n "conditions": [{\n "attribute": "MCC",\n "operation": "IS_ONE_OF",\n "value": "string",\n }]\n },\n type="CONDITIONAL_BLOCK",\n)\nprint(auth_rule.token)',
+ },
+ ruby: {
+ method: 'auth_rules.v2.create',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nauth_rule = lithic.auth_rules.v2.create(\n body: {\n parameters: {conditions: [{attribute: :MCC, operation: :IS_ONE_OF, value: "string"}]},\n type: :CONDITIONAL_BLOCK\n }\n)\n\nputs(auth_rule)',
+ },
+ typescript: {
+ method: 'client.authRules.v2.create',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst authRule = await client.authRules.v2.create({\n parameters: {\n conditions: [\n {\n attribute: 'MCC',\n operation: 'IS_ONE_OF',\n value: 'string',\n },\n ],\n },\n type: 'CONDITIONAL_BLOCK',\n});\n\nconsole.log(authRule.token);",
+ },
+ },
+ },
+ {
+ name: 'list',
+ endpoint: '/v2/auth_rules',
+ httpMethod: 'get',
+ summary: 'List rules',
+ description: 'Lists V2 Auth rules',
+ stainlessPath: '(resource) auth_rules.v2 > (method) list',
+ qualified: 'client.authRules.v2.list',
+ params: [
+ 'account_token?: string;',
+ 'business_account_token?: string;',
+ 'card_token?: string;',
+ 'ending_before?: string;',
+ 'event_stream?: string;',
+ 'event_streams?: string[];',
+ 'page_size?: number;',
+ "scope?: 'PROGRAM' | 'ACCOUNT' | 'BUSINESS_ACCOUNT' | 'CARD' | 'ANY';",
+ 'starting_after?: string;',
+ ],
+ response:
+ "{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }",
+ markdown:
+ "## list\n\n`client.authRules.v2.list(account_token?: string, business_account_token?: string, card_token?: string, ending_before?: string, event_stream?: string, event_streams?: string[], page_size?: number, scope?: 'PROGRAM' | 'ACCOUNT' | 'BUSINESS_ACCOUNT' | 'CARD' | 'ANY', starting_after?: string): { token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: object; draft_version: object; event_stream: event_stream; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n**get** `/v2/auth_rules`\n\nLists V2 Auth rules\n\n### Parameters\n\n- `account_token?: string`\n Only return Auth Rules that are bound to the provided account token.\n\n- `business_account_token?: string`\n Only return Auth Rules that are bound to the provided business account token.\n\n- `card_token?: string`\n Only return Auth Rules that are bound to the provided card token.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `event_stream?: string`\n Deprecated: Use event_streams instead. Only return Auth rules that are executed during the provided event stream.\n\n- `event_streams?: string[]`\n Only return Auth rules that are executed during any of the provided event streams. If event_streams and event_stream are specified, the values will be combined.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `scope?: 'PROGRAM' | 'ACCOUNT' | 'BUSINESS_ACCOUNT' | 'CARD' | 'ANY'`\n Only return Auth Rules that are bound to the provided scope.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n - `token: string`\n - `account_tokens: string[]`\n - `business_account_tokens: string[]`\n - `card_tokens: string[]`\n - `current_version: { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; version: number; }`\n - `draft_version: { error: string; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }`\n - `event_stream: string`\n - `lithic_managed: boolean`\n - `name: string`\n - `program_level: boolean`\n - `state: 'ACTIVE' | 'INACTIVE'`\n - `type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'`\n - `excluded_account_tokens?: string[]`\n - `excluded_business_account_tokens?: string[]`\n - `excluded_card_tokens?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const authRule of client.authRules.v2.list()) {\n console.log(authRule);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AuthRules.V2.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.AuthRules.V2.List(context.TODO(), lithic.AuthRuleV2ListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example: 'curl https://api.lithic.com/v2/auth_rules \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'authRules().v2().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AuthRuleV2ListPage;\nimport com.lithic.api.models.AuthRuleV2ListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AuthRuleV2ListPage page = client.authRules().v2().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'authRules().v2().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRuleV2ListPage\nimport com.lithic.api.models.AuthRuleV2ListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: AuthRuleV2ListPage = client.authRules().v2().list()\n}',
+ },
+ python: {
+ method: 'auth_rules.v2.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.auth_rules.v2.list()\npage = page.data[0]\nprint(page.token)',
+ },
+ ruby: {
+ method: 'auth_rules.v2.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.auth_rules.v2.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.authRules.v2.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const authRule of client.authRules.v2.list()) {\n console.log(authRule.token);\n}",
+ },
+ },
},
{
name: 'retrieve',
@@ -357,6 +1025,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }",
markdown:
"## retrieve\n\n`client.authRules.v2.retrieve(auth_rule_token: string): { token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: object; draft_version: object; event_stream: event_stream; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}`\n\nFetches a V2 Auth rule by its token\n\n### Parameters\n\n- `auth_rule_token: string`\n\n### Returns\n\n- `{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n - `token: string`\n - `account_tokens: string[]`\n - `business_account_tokens: string[]`\n - `card_tokens: string[]`\n - `current_version: { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; version: number; }`\n - `draft_version: { error: string; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }`\n - `event_stream: string`\n - `lithic_managed: boolean`\n - `name: string`\n - `program_level: boolean`\n - `state: 'ACTIVE' | 'INACTIVE'`\n - `type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'`\n - `excluded_account_tokens?: string[]`\n - `excluded_business_account_tokens?: string[]`\n - `excluded_card_tokens?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst authRule = await client.authRules.v2.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AuthRules.V2.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tauthRule, err := client.AuthRules.V2.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", authRule.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'authRules().v2().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AuthRule;\nimport com.lithic.api.models.AuthRuleV2RetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AuthRule authRule = client.authRules().v2().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'authRules().v2().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRule\nimport com.lithic.api.models.AuthRuleV2RetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val authRule: AuthRule = client.authRules().v2().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'auth_rules.v2.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nauth_rule = client.auth_rules.v2.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(auth_rule.token)',
+ },
+ ruby: {
+ method: 'auth_rules.v2.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nauth_rule = lithic.auth_rules.v2.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(auth_rule)',
+ },
+ typescript: {
+ method: 'client.authRules.v2.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst authRule = await client.authRules.v2.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule.token);",
+ },
+ },
},
{
name: 'update',
@@ -373,30 +1077,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
],
response:
"{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }",
- },
- {
- name: 'list',
- endpoint: '/v2/auth_rules',
- httpMethod: 'get',
- summary: 'List rules',
- description: 'Lists V2 Auth rules',
- stainlessPath: '(resource) auth_rules.v2 > (method) list',
- qualified: 'client.authRules.v2.list',
- params: [
- 'account_token?: string;',
- 'business_account_token?: string;',
- 'card_token?: string;',
- 'ending_before?: string;',
- 'event_stream?: string;',
- 'event_streams?: string[];',
- 'page_size?: number;',
- "scope?: 'PROGRAM' | 'ACCOUNT' | 'BUSINESS_ACCOUNT' | 'CARD' | 'ANY';",
- 'starting_after?: string;',
- ],
- response:
- "{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }",
- markdown:
- "## list\n\n`client.authRules.v2.list(account_token?: string, business_account_token?: string, card_token?: string, ending_before?: string, event_stream?: string, event_streams?: string[], page_size?: number, scope?: 'PROGRAM' | 'ACCOUNT' | 'BUSINESS_ACCOUNT' | 'CARD' | 'ANY', starting_after?: string): { token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: object; draft_version: object; event_stream: event_stream; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n**get** `/v2/auth_rules`\n\nLists V2 Auth rules\n\n### Parameters\n\n- `account_token?: string`\n Only return Auth Rules that are bound to the provided account token.\n\n- `business_account_token?: string`\n Only return Auth Rules that are bound to the provided business account token.\n\n- `card_token?: string`\n Only return Auth Rules that are bound to the provided card token.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `event_stream?: string`\n Deprecated: Use event_streams instead. Only return Auth rules that are executed during the provided event stream.\n\n- `event_streams?: string[]`\n Only return Auth rules that are executed during any of the provided event streams. If event_streams and event_stream are specified, the values will be combined.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `scope?: 'PROGRAM' | 'ACCOUNT' | 'BUSINESS_ACCOUNT' | 'CARD' | 'ANY'`\n Only return Auth Rules that are bound to the provided scope.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n - `token: string`\n - `account_tokens: string[]`\n - `business_account_tokens: string[]`\n - `card_tokens: string[]`\n - `current_version: { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; version: number; }`\n - `draft_version: { error: string; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }`\n - `event_stream: string`\n - `lithic_managed: boolean`\n - `name: string`\n - `program_level: boolean`\n - `state: 'ACTIVE' | 'INACTIVE'`\n - `type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'`\n - `excluded_account_tokens?: string[]`\n - `excluded_business_account_tokens?: string[]`\n - `excluded_card_tokens?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const authRule of client.authRules.v2.list()) {\n console.log(authRule);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AuthRules.V2.Update',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tauthRule, err := client.AuthRules.V2.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AuthRuleV2UpdateParams{\n\t\t\tBody: lithic.AuthRuleV2UpdateParamsBodyAccountLevelRule{},\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", authRule.Token)\n}\n',
+ },
+ http: {
+ example:
+ "curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN \\\n -X PATCH \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ },
+ java: {
+ method: 'authRules().v2().update',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AuthRule;\nimport com.lithic.api.models.AuthRuleV2UpdateParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AuthRuleV2UpdateParams params = AuthRuleV2UpdateParams.builder()\n .authRuleToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .body(AuthRuleV2UpdateParams.Body.AccountLevelRule.builder().build())\n .build();\n AuthRule authRule = client.authRules().v2().update(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'authRules().v2().update',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRule\nimport com.lithic.api.models.AuthRuleV2UpdateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: AuthRuleV2UpdateParams = AuthRuleV2UpdateParams.builder()\n .authRuleToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .body(AuthRuleV2UpdateParams.Body.AccountLevelRule.builder().build())\n .build()\n val authRule: AuthRule = client.authRules().v2().update(params)\n}',
+ },
+ python: {
+ method: 'auth_rules.v2.update',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nauth_rule = client.auth_rules.v2.update(\n auth_rule_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(auth_rule.token)',
+ },
+ ruby: {
+ method: 'auth_rules.v2.update',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nauth_rule = lithic.auth_rules.v2.update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", body: {})\n\nputs(auth_rule)',
+ },
+ typescript: {
+ method: 'client.authRules.v2.update',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst authRule = await client.authRules.v2.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule.token);",
+ },
+ },
},
{
name: 'delete',
@@ -409,6 +1125,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
params: ['auth_rule_token: string;'],
markdown:
"## delete\n\n`client.authRules.v2.delete(auth_rule_token: string): void`\n\n**delete** `/v2/auth_rules/{auth_rule_token}`\n\nDeletes a V2 Auth rule\n\n### Parameters\n\n- `auth_rule_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.authRules.v2.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AuthRules.V2.Delete',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.AuthRules.V2.Delete(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN \\\n -X DELETE \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'authRules().v2().delete',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AuthRuleV2DeleteParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n client.authRules().v2().delete("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'authRules().v2().delete',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRuleV2DeleteParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.authRules().v2().delete("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'auth_rules.v2.delete',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.auth_rules.v2.delete(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)',
+ },
+ ruby: {
+ method: 'auth_rules.v2.delete',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.auth_rules.v2.delete("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(result)',
+ },
+ typescript: {
+ method: 'client.authRules.v2.delete',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.authRules.v2.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');",
+ },
+ },
},
{
name: 'draft',
@@ -427,30 +1179,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }",
markdown:
"## draft\n\n`client.authRules.v2.draft(auth_rule_token: string, parameters?: { conditions: auth_rule_condition[]; } | { period: velocity_limit_period; scope: 'CARD' | 'ACCOUNT'; filters?: velocity_limit_filters; limit_amount?: number; limit_count?: number; } | { merchants: object[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: object[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: object[]; } | { action: object | object; conditions: object[]; } | { action: object | object; conditions: object[]; } | { code: string; features: rule_feature[]; }): { token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: object; draft_version: object; event_stream: event_stream; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n**post** `/v2/auth_rules/{auth_rule_token}/draft`\n\nCreates a new draft version of a rule that will be ran in shadow mode.\n\nThis can also be utilized to reset the draft parameters, causing a draft version to no longer be ran in shadow mode.\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `parameters?: { conditions: { attribute: conditional_attribute; operation: conditional_operation; value: conditional_value; }[]; } | { period: { duration: number; type: 'CUSTOM'; } | { type: 'DAY'; } | { type: 'WEEK'; day_of_week?: number; } | { type: 'MONTH'; day_of_month?: number; } | { type: 'YEAR'; day_of_month?: number; month?: number; }; scope: 'CARD' | 'ACCOUNT'; filters?: { exclude_countries?: string[]; exclude_mccs?: string[]; include_countries?: string[]; include_mccs?: string[]; include_pan_entry_modes?: string[]; }; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: string; value: string | number | string[] | string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: string; value: string | number | string[] | string; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: string; value: string | number | string[] | string; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: string; value: string | number | string[] | string; }[]; } | { code: string; features: { type: 'AUTHORIZATION'; name?: string; } | { type: 'AUTHENTICATION'; name?: string; } | { type: 'TOKENIZATION'; name?: string; } | { type: 'ACH_RECEIPT'; name?: string; } | { type: 'CARD'; name?: string; } | { type: 'ACCOUNT_HOLDER'; name?: string; } | { type: 'IP_METADATA'; name?: string; } | { period: velocity_limit_period; scope: 'CARD' | 'ACCOUNT'; type: 'SPEND_VELOCITY'; filters?: velocity_limit_filters; name?: string; }[]; }`\n Parameters for the Auth Rule\n\n### Returns\n\n- `{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n - `token: string`\n - `account_tokens: string[]`\n - `business_account_tokens: string[]`\n - `card_tokens: string[]`\n - `current_version: { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; version: number; }`\n - `draft_version: { error: string; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }`\n - `event_stream: string`\n - `lithic_managed: boolean`\n - `name: string`\n - `program_level: boolean`\n - `state: 'ACTIVE' | 'INACTIVE'`\n - `type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'`\n - `excluded_account_tokens?: string[]`\n - `excluded_business_account_tokens?: string[]`\n - `excluded_card_tokens?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst authRule = await client.authRules.v2.draft('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule);\n```",
- },
- {
- name: 'list_results',
- endpoint: '/v2/auth_rules/results',
- httpMethod: 'get',
- summary: 'List rule evaluation results',
- description:
- 'Lists Auth Rule evaluation results.\n\n**Limitations:**\n- Results are available for the past 3 months only\n- At least one filter (`event_token` or `auth_rule_token`) must be provided\n- When filtering by `event_token`, pagination is not supported\n',
- stainlessPath: '(resource) auth_rules.v2 > (method) list_results',
- qualified: 'client.authRules.v2.listResults',
- params: [
- 'auth_rule_token?: string;',
- 'begin?: string;',
- 'end?: string;',
- 'ending_before?: string;',
- 'event_token?: string;',
- 'has_actions?: boolean;',
- 'page_size?: number;',
- 'starting_after?: string;',
- ],
- response:
- "{ token: string; actions: { code: string; type: 'DECLINE'; explanation?: string; } | { type: 'CHALLENGE'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'AUTHORIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'DECLINE' | 'CHALLENGE'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'THREE_DS_AUTHENTICATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'DECLINE'; explanation?: string; reason?: string; } | { type: 'REQUIRE_TFA'; explanation?: string; reason?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'TOKENIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'APPROVE'; explanation?: string; } | { code: string; type: 'RETURN'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'ACH_CREDIT_RECEIPT' | 'ACH_DEBIT_RECEIPT'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; }",
- markdown:
- "## list_results\n\n`client.authRules.v2.listResults(auth_rule_token?: string, begin?: string, end?: string, ending_before?: string, event_token?: string, has_actions?: boolean, page_size?: number, starting_after?: string): { token: string; actions: object | object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'AUTHORIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'THREE_DS_AUTHENTICATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: object | object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'TOKENIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: object | object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'ACH_CREDIT_RECEIPT' | 'ACH_DEBIT_RECEIPT'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; }`\n\n**get** `/v2/auth_rules/results`\n\nLists Auth Rule evaluation results.\n\n**Limitations:**\n- Results are available for the past 3 months only\n- At least one filter (`event_token` or `auth_rule_token`) must be provided\n- When filtering by `event_token`, pagination is not supported\n\n\n### Parameters\n\n- `auth_rule_token?: string`\n Filter by Auth Rule token\n\n- `begin?: string`\n Date string in RFC 3339 format. Only events evaluated after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only events evaluated before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `event_token?: string`\n Filter by event token\n\n- `has_actions?: boolean`\n Filter by whether the rule evaluation produced any actions. When not provided, all results are returned.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; actions: { code: string; type: 'DECLINE'; explanation?: string; } | { type: 'CHALLENGE'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'AUTHORIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'DECLINE' | 'CHALLENGE'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'THREE_DS_AUTHENTICATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'DECLINE'; explanation?: string; reason?: string; } | { type: 'REQUIRE_TFA'; explanation?: string; reason?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'TOKENIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'APPROVE'; explanation?: string; } | { code: string; type: 'RETURN'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'ACH_CREDIT_RECEIPT' | 'ACH_DEBIT_RECEIPT'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; }`\n Result of an Auth Rule evaluation\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const v2ListResultsResponse of client.authRules.v2.listResults()) {\n console.log(v2ListResultsResponse);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AuthRules.V2.Draft',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tauthRule, err := client.AuthRules.V2.Draft(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AuthRuleV2DraftParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", authRule.Token)\n}\n',
+ },
+ http: {
+ example:
+ "curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN/draft \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ },
+ java: {
+ method: 'authRules().v2().draft',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AuthRule;\nimport com.lithic.api.models.AuthRuleV2DraftParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AuthRule authRule = client.authRules().v2().draft("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'authRules().v2().draft',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRule\nimport com.lithic.api.models.AuthRuleV2DraftParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val authRule: AuthRule = client.authRules().v2().draft("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'auth_rules.v2.draft',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nauth_rule = client.auth_rules.v2.draft(\n auth_rule_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(auth_rule.token)',
+ },
+ ruby: {
+ method: 'auth_rules.v2.draft',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nauth_rule = lithic.auth_rules.v2.draft("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(auth_rule)',
+ },
+ typescript: {
+ method: 'client.authRules.v2.draft',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst authRule = await client.authRules.v2.draft('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule.token);",
+ },
+ },
},
{
name: 'list_versions',
@@ -465,6 +1229,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ data: { created: string; parameters: conditional_block_parameters | velocity_limit_params | merchant_lock_parameters | conditional_3ds_action_parameters | conditional_authorization_action_parameters | conditional_ach_action_parameters | conditional_tokenization_action_parameters | typescript_code_parameters; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }",
markdown:
"## list_versions\n\n`client.authRules.v2.listVersions(auth_rule_token: string): { data: auth_rule_version[]; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}/versions`\n\nReturns all versions of an auth rule, sorted by version number descending (newest first).\n\n### Parameters\n\n- `auth_rule_token: string`\n\n### Returns\n\n- `{ data: { created: string; parameters: conditional_block_parameters | velocity_limit_params | merchant_lock_parameters | conditional_3ds_action_parameters | conditional_authorization_action_parameters | conditional_ach_action_parameters | conditional_tokenization_action_parameters | typescript_code_parameters; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }`\n\n - `data: { created: string; parameters: { conditions: auth_rule_condition[]; } | { period: velocity_limit_period; scope: 'CARD' | 'ACCOUNT'; filters?: velocity_limit_filters; limit_amount?: number; limit_count?: number; } | { merchants: object[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: object[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: object[]; } | { action: object | object; conditions: object[]; } | { action: object | object; conditions: object[]; } | { code: string; features: rule_feature[]; }; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.authRules.v2.listVersions('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AuthRules.V2.ListVersions',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.AuthRules.V2.ListVersions(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Data)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN/versions \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'authRules().v2().listVersions',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AuthRuleV2ListVersionsParams;\nimport com.lithic.api.models.V2ListVersionsResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n V2ListVersionsResponse response = client.authRules().v2().listVersions("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'authRules().v2().listVersions',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRuleV2ListVersionsParams\nimport com.lithic.api.models.V2ListVersionsResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: V2ListVersionsResponse = client.authRules().v2().listVersions("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'auth_rules.v2.list_versions',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.auth_rules.v2.list_versions(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.data)',
+ },
+ ruby: {
+ method: 'auth_rules.v2.list_versions',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.auth_rules.v2.list_versions("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.authRules.v2.listVersions',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.authRules.v2.listVersions('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response.data);",
+ },
+ },
},
{
name: 'promote',
@@ -480,6 +1280,93 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }",
markdown:
"## promote\n\n`client.authRules.v2.promote(auth_rule_token: string): { token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: object; draft_version: object; event_stream: event_stream; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n**post** `/v2/auth_rules/{auth_rule_token}/promote`\n\nPromotes the draft version of an Auth rule to the currently active version such that it is enforced in the respective stream.\n\n### Parameters\n\n- `auth_rule_token: string`\n\n### Returns\n\n- `{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n - `token: string`\n - `account_tokens: string[]`\n - `business_account_tokens: string[]`\n - `card_tokens: string[]`\n - `current_version: { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; version: number; }`\n - `draft_version: { error: string; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }`\n - `event_stream: string`\n - `lithic_managed: boolean`\n - `name: string`\n - `program_level: boolean`\n - `state: 'ACTIVE' | 'INACTIVE'`\n - `type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'`\n - `excluded_account_tokens?: string[]`\n - `excluded_business_account_tokens?: string[]`\n - `excluded_card_tokens?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst authRule = await client.authRules.v2.promote('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AuthRules.V2.Promote',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tauthRule, err := client.AuthRules.V2.Promote(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", authRule.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN/promote \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'authRules().v2().promote',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AuthRule;\nimport com.lithic.api.models.AuthRuleV2PromoteParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AuthRule authRule = client.authRules().v2().promote("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'authRules().v2().promote',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRule\nimport com.lithic.api.models.AuthRuleV2PromoteParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val authRule: AuthRule = client.authRules().v2().promote("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'auth_rules.v2.promote',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nauth_rule = client.auth_rules.v2.promote(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(auth_rule.token)',
+ },
+ ruby: {
+ method: 'auth_rules.v2.promote',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nauth_rule = lithic.auth_rules.v2.promote("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(auth_rule)',
+ },
+ typescript: {
+ method: 'client.authRules.v2.promote',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst authRule = await client.authRules.v2.promote('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule.token);",
+ },
+ },
+ },
+ {
+ name: 'retrieve_report',
+ endpoint: '/v2/auth_rules/{auth_rule_token}/report',
+ httpMethod: 'get',
+ summary: 'Retrieve a performance report',
+ description:
+ 'Retrieves a performance report for an Auth rule containing daily statistics and evaluation outcomes.\n\n**Time Range Limitations:**\n- Reports are supported for the past 3 months only\n- Maximum interval length is 1 month\n- Report data is available only through the previous day in UTC (current day data is not available)\n\nThe report provides daily statistics for both current and draft versions of the Auth rule, including approval, decline, and challenge counts along with sample events.\n',
+ stainlessPath: '(resource) auth_rules.v2 > (method) retrieve_report',
+ qualified: 'client.authRules.v2.retrieveReport',
+ params: ['auth_rule_token: string;', 'begin: string;', 'end: string;'],
+ response:
+ "{ auth_rule_token: string; begin: string; daily_statistics: { current_version_statistics: object; date: string; draft_version_statistics: object; versions: { action_counts: object; examples: object[]; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }[]; end: string; }",
+ markdown:
+ "## retrieve_report\n\n`client.authRules.v2.retrieveReport(auth_rule_token: string, begin: string, end: string): { auth_rule_token: string; begin: string; daily_statistics: object[]; end: string; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}/report`\n\nRetrieves a performance report for an Auth rule containing daily statistics and evaluation outcomes.\n\n**Time Range Limitations:**\n- Reports are supported for the past 3 months only\n- Maximum interval length is 1 month\n- Report data is available only through the previous day in UTC (current day data is not available)\n\nThe report provides daily statistics for both current and draft versions of the Auth rule, including approval, decline, and challenge counts along with sample events.\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `begin: string`\n Start date for the report\n\n- `end: string`\n End date for the report\n\n### Returns\n\n- `{ auth_rule_token: string; begin: string; daily_statistics: { current_version_statistics: object; date: string; draft_version_statistics: object; versions: { action_counts: object; examples: object[]; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }[]; end: string; }`\n\n - `auth_rule_token: string`\n - `begin: string`\n - `daily_statistics: { current_version_statistics: { action_counts?: object; approved?: number; challenged?: number; declined?: number; examples?: { actions?: object | object | object | object | object | object | object[]; approved?: boolean; decision?: 'APPROVED' | 'DECLINED' | 'CHALLENGED'; event_token?: string; timestamp?: string; }[]; }; date: string; draft_version_statistics: { action_counts?: object; approved?: number; challenged?: number; declined?: number; examples?: { actions?: object | object | object | object | object | object | object[]; approved?: boolean; decision?: 'APPROVED' | 'DECLINED' | 'CHALLENGED'; event_token?: string; timestamp?: string; }[]; }; versions: { action_counts: object; examples: { actions: { code: string; type: 'DECLINE'; } | { type: 'CHALLENGE'; } | { type: 'DECLINE' | 'CHALLENGE'; } | { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; } | { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }[]; event_token: string; timestamp: string; }[]; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }[]`\n - `end: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.authRules.v2.retrieveReport('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { begin: '2019-12-27', end: '2019-12-27' });\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AuthRules.V2.GetReport',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.AuthRules.V2.GetReport(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AuthRuleV2GetReportParams{\n\t\t\tBegin: lithic.F(time.Now()),\n\t\t\tEnd: lithic.F(time.Now()),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.AuthRuleToken)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN/report \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'authRules().v2().retrieveReport',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AuthRuleV2RetrieveReportParams;\nimport com.lithic.api.models.V2RetrieveReportResponse;\nimport java.time.LocalDate;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AuthRuleV2RetrieveReportParams params = AuthRuleV2RetrieveReportParams.builder()\n .authRuleToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .begin(LocalDate.parse("2019-12-27"))\n .end(LocalDate.parse("2019-12-27"))\n .build();\n V2RetrieveReportResponse response = client.authRules().v2().retrieveReport(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'authRules().v2().retrieveReport',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRuleV2RetrieveReportParams\nimport com.lithic.api.models.V2RetrieveReportResponse\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: AuthRuleV2RetrieveReportParams = AuthRuleV2RetrieveReportParams.builder()\n .authRuleToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .begin(LocalDate.parse("2019-12-27"))\n .end(LocalDate.parse("2019-12-27"))\n .build()\n val response: V2RetrieveReportResponse = client.authRules().v2().retrieveReport(params)\n}',
+ },
+ python: {
+ method: 'auth_rules.v2.retrieve_report',
+ example:
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.auth_rules.v2.retrieve_report(\n auth_rule_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n begin=date.fromisoformat("2019-12-27"),\n end=date.fromisoformat("2019-12-27"),\n)\nprint(response.auth_rule_token)',
+ },
+ ruby: {
+ method: 'auth_rules.v2.retrieve_report',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.auth_rules.v2.retrieve_report(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n begin_: "2019-12-27",\n end_: "2019-12-27"\n)\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.authRules.v2.retrieveReport',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.authRules.v2.retrieveReport('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n begin: '2019-12-27',\n end: '2019-12-27',\n});\n\nconsole.log(response.auth_rule_token);",
+ },
+ },
},
{
name: 'retrieve_features',
@@ -495,22 +1382,103 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ evaluated: string; features: { filters: object; period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; value: { amount: number; count: number; }; }[]; }",
markdown:
"## retrieve_features\n\n`client.authRules.v2.retrieveFeatures(auth_rule_token: string, account_token?: string, card_token?: string): { evaluated: string; features: object[]; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}/features`\n\nFetches the current calculated Feature values for the given Auth Rule\n\nThis only calculates the features for the active version.\n- VelocityLimit Rules calculates the current Velocity Feature data. This requires a `card_token` or `account_token` matching what the rule is Scoped to.\n- ConditionalBlock Rules calculates the CARD_TRANSACTION_COUNT_* attributes on the rule. This requires a `card_token`\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `account_token?: string`\n\n- `card_token?: string`\n\n### Returns\n\n- `{ evaluated: string; features: { filters: object; period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; value: { amount: number; count: number; }; }[]; }`\n\n - `evaluated: string`\n - `features: { filters: { exclude_countries?: string[]; exclude_mccs?: string[]; include_countries?: string[]; include_mccs?: string[]; include_pan_entry_modes?: string[]; }; period: { duration: number; type: 'CUSTOM'; } | { type: 'DAY'; } | { type: 'WEEK'; day_of_week?: number; } | { type: 'MONTH'; day_of_month?: number; } | { type: 'YEAR'; day_of_month?: number; month?: number; }; scope: 'CARD' | 'ACCOUNT'; value: { amount: number; count: number; }; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.authRules.v2.retrieveFeatures('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AuthRules.V2.GetFeatures',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.AuthRules.V2.GetFeatures(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AuthRuleV2GetFeaturesParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Evaluated)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN/features \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'authRules().v2().retrieveFeatures',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AuthRuleV2RetrieveFeaturesParams;\nimport com.lithic.api.models.V2RetrieveFeaturesResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n V2RetrieveFeaturesResponse response = client.authRules().v2().retrieveFeatures("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'authRules().v2().retrieveFeatures',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRuleV2RetrieveFeaturesParams\nimport com.lithic.api.models.V2RetrieveFeaturesResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: V2RetrieveFeaturesResponse = client.authRules().v2().retrieveFeatures("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'auth_rules.v2.retrieve_features',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.auth_rules.v2.retrieve_features(\n auth_rule_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.evaluated)',
+ },
+ ruby: {
+ method: 'auth_rules.v2.retrieve_features',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.auth_rules.v2.retrieve_features("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.authRules.v2.retrieveFeatures',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.authRules.v2.retrieveFeatures('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response.evaluated);",
+ },
+ },
},
{
- name: 'retrieve_report',
- endpoint: '/v2/auth_rules/{auth_rule_token}/report',
+ name: 'list_results',
+ endpoint: '/v2/auth_rules/results',
httpMethod: 'get',
- summary: 'Retrieve a performance report',
+ summary: 'List rule evaluation results',
description:
- 'Retrieves a performance report for an Auth rule containing daily statistics and evaluation outcomes.\n\n**Time Range Limitations:**\n- Reports are supported for the past 3 months only\n- Maximum interval length is 1 month\n- Report data is available only through the previous day in UTC (current day data is not available)\n\nThe report provides daily statistics for both current and draft versions of the Auth rule, including approval, decline, and challenge counts along with sample events.\n',
- stainlessPath: '(resource) auth_rules.v2 > (method) retrieve_report',
- qualified: 'client.authRules.v2.retrieveReport',
- params: ['auth_rule_token: string;', 'begin: string;', 'end: string;'],
- response:
- "{ auth_rule_token: string; begin: string; daily_statistics: { current_version_statistics: object; date: string; draft_version_statistics: object; versions: { action_counts: object; examples: object[]; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }[]; end: string; }",
- markdown:
- "## retrieve_report\n\n`client.authRules.v2.retrieveReport(auth_rule_token: string, begin: string, end: string): { auth_rule_token: string; begin: string; daily_statistics: object[]; end: string; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}/report`\n\nRetrieves a performance report for an Auth rule containing daily statistics and evaluation outcomes.\n\n**Time Range Limitations:**\n- Reports are supported for the past 3 months only\n- Maximum interval length is 1 month\n- Report data is available only through the previous day in UTC (current day data is not available)\n\nThe report provides daily statistics for both current and draft versions of the Auth rule, including approval, decline, and challenge counts along with sample events.\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `begin: string`\n Start date for the report\n\n- `end: string`\n End date for the report\n\n### Returns\n\n- `{ auth_rule_token: string; begin: string; daily_statistics: { current_version_statistics: object; date: string; draft_version_statistics: object; versions: { action_counts: object; examples: object[]; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }[]; end: string; }`\n\n - `auth_rule_token: string`\n - `begin: string`\n - `daily_statistics: { current_version_statistics: { action_counts?: object; approved?: number; challenged?: number; declined?: number; examples?: { actions?: object | object | object | object | object | object | object[]; approved?: boolean; decision?: 'APPROVED' | 'DECLINED' | 'CHALLENGED'; event_token?: string; timestamp?: string; }[]; }; date: string; draft_version_statistics: { action_counts?: object; approved?: number; challenged?: number; declined?: number; examples?: { actions?: object | object | object | object | object | object | object[]; approved?: boolean; decision?: 'APPROVED' | 'DECLINED' | 'CHALLENGED'; event_token?: string; timestamp?: string; }[]; }; versions: { action_counts: object; examples: { actions: { code: string; type: 'DECLINE'; } | { type: 'CHALLENGE'; } | { type: 'DECLINE' | 'CHALLENGE'; } | { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; } | { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }[]; event_token: string; timestamp: string; }[]; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }[]`\n - `end: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.authRules.v2.retrieveReport('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { begin: '2019-12-27', end: '2019-12-27' });\n\nconsole.log(response);\n```",
- },
+ 'Lists Auth Rule evaluation results.\n\n**Limitations:**\n- Results are available for the past 3 months only\n- At least one filter (`event_token` or `auth_rule_token`) must be provided\n- When filtering by `event_token`, pagination is not supported\n',
+ stainlessPath: '(resource) auth_rules.v2 > (method) list_results',
+ qualified: 'client.authRules.v2.listResults',
+ params: [
+ 'auth_rule_token?: string;',
+ 'begin?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'event_token?: string;',
+ 'has_actions?: boolean;',
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ ],
+ response:
+ "{ token: string; actions: { code: string; type: 'DECLINE'; explanation?: string; } | { type: 'CHALLENGE'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'AUTHORIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'DECLINE' | 'CHALLENGE'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'THREE_DS_AUTHENTICATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'DECLINE'; explanation?: string; reason?: string; } | { type: 'REQUIRE_TFA'; explanation?: string; reason?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'TOKENIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'APPROVE'; explanation?: string; } | { code: string; type: 'RETURN'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'ACH_CREDIT_RECEIPT' | 'ACH_DEBIT_RECEIPT'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; }",
+ markdown:
+ "## list_results\n\n`client.authRules.v2.listResults(auth_rule_token?: string, begin?: string, end?: string, ending_before?: string, event_token?: string, has_actions?: boolean, page_size?: number, starting_after?: string): { token: string; actions: object | object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'AUTHORIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'THREE_DS_AUTHENTICATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: object | object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'TOKENIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: object | object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'ACH_CREDIT_RECEIPT' | 'ACH_DEBIT_RECEIPT'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; }`\n\n**get** `/v2/auth_rules/results`\n\nLists Auth Rule evaluation results.\n\n**Limitations:**\n- Results are available for the past 3 months only\n- At least one filter (`event_token` or `auth_rule_token`) must be provided\n- When filtering by `event_token`, pagination is not supported\n\n\n### Parameters\n\n- `auth_rule_token?: string`\n Filter by Auth Rule token\n\n- `begin?: string`\n Date string in RFC 3339 format. Only events evaluated after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only events evaluated before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `event_token?: string`\n Filter by event token\n\n- `has_actions?: boolean`\n Filter by whether the rule evaluation produced any actions. When not provided, all results are returned.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; actions: { code: string; type: 'DECLINE'; explanation?: string; } | { type: 'CHALLENGE'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'AUTHORIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'DECLINE' | 'CHALLENGE'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'THREE_DS_AUTHENTICATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'DECLINE'; explanation?: string; reason?: string; } | { type: 'REQUIRE_TFA'; explanation?: string; reason?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'TOKENIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'APPROVE'; explanation?: string; } | { code: string; type: 'RETURN'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'ACH_CREDIT_RECEIPT' | 'ACH_DEBIT_RECEIPT'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; }`\n Result of an Auth Rule evaluation\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const v2ListResultsResponse of client.authRules.v2.listResults()) {\n console.log(v2ListResultsResponse);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AuthRules.V2.ListResults',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.AuthRules.V2.ListResults(context.TODO(), lithic.AuthRuleV2ListResultsParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v2/auth_rules/results \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'authRules().v2().listResults',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AuthRuleV2ListResultsPage;\nimport com.lithic.api.models.AuthRuleV2ListResultsParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AuthRuleV2ListResultsPage page = client.authRules().v2().listResults();\n }\n}',
+ },
+ kotlin: {
+ method: 'authRules().v2().listResults',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRuleV2ListResultsPage\nimport com.lithic.api.models.AuthRuleV2ListResultsParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: AuthRuleV2ListResultsPage = client.authRules().v2().listResults()\n}',
+ },
+ python: {
+ method: 'auth_rules.v2.list_results',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.auth_rules.v2.list_results()\npage = page.data[0]\nprint(page)',
+ },
+ ruby: {
+ method: 'auth_rules.v2.list_results',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.auth_rules.v2.list_results\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.authRules.v2.listResults',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const v2ListResultsResponse of client.authRules.v2.listResults()) {\n console.log(v2ListResultsResponse);\n}",
+ },
+ },
+ },
{
name: 'create',
endpoint: '/v2/auth_rules/{auth_rule_token}/backtests',
@@ -524,6 +1492,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response: '{ backtest_token?: string; }',
markdown:
"## create\n\n`client.authRules.v2.backtests.create(auth_rule_token: string, end?: string, start?: string): { backtest_token?: string; }`\n\n**post** `/v2/auth_rules/{auth_rule_token}/backtests`\n\nInitiates a request to asynchronously generate a backtest for an Auth rule. During backtesting, both the active version (if one exists) and the draft version of the Auth Rule are evaluated by replaying historical transaction data against the rule's conditions. This process allows customers to simulate and understand the effects of proposed rule changes before deployment.\nThe generated backtest report provides detailed results showing whether the draft version of the Auth Rule would have approved or declined historical transactions which were processed during the backtest period. These reports help evaluate how changes to rule configurations might affect overall transaction approval rates.\n\nThe generated backtest report will be delivered asynchronously through a webhook with `event_type` = `auth_rules.backtest_report.created`. See the docs on setting up [webhook subscriptions](https://docs.lithic.com/docs/events-api).\nIt is also possible to request backtest reports on-demand through the `/v2/auth_rules/{auth_rule_token}/backtests/{auth_rule_backtest_token}` endpoint.\n\nLithic currently supports backtesting for `CONDITIONAL_BLOCK` / `CONDITIONAL_ACTION` rules. Backtesting for `VELOCITY_LIMIT` rules is generally not supported. In specific cases (i.e. where Lithic has pre-calculated the requested velocity metrics for historical transactions), a backtest may be feasible. However, such cases are uncommon and customers should not anticipate support for velocity backtests under most configurations.\nIf a historical transaction does not feature the required inputs to evaluate the rule, then it will not be included in the final backtest report.\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `end?: string`\n The end time of the backtest.\n\n- `start?: string`\n The start time of the backtest.\n\n### Returns\n\n- `{ backtest_token?: string; }`\n\n - `backtest_token?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst backtest = await client.authRules.v2.backtests.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(backtest);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AuthRules.V2.Backtests.New',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tbacktest, err := client.AuthRules.V2.Backtests.New(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AuthRuleV2BacktestNewParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", backtest.BacktestToken)\n}\n',
+ },
+ http: {
+ example:
+ "curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN/backtests \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ },
+ java: {
+ method: 'authRules().v2().backtests().create',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AuthRuleV2BacktestCreateParams;\nimport com.lithic.api.models.BacktestCreateResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n BacktestCreateResponse backtest = client.authRules().v2().backtests().create("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'authRules().v2().backtests().create',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRuleV2BacktestCreateParams\nimport com.lithic.api.models.BacktestCreateResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val backtest: BacktestCreateResponse = client.authRules().v2().backtests().create("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'auth_rules.v2.backtests.create',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nbacktest = client.auth_rules.v2.backtests.create(\n auth_rule_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(backtest.backtest_token)',
+ },
+ ruby: {
+ method: 'auth_rules.v2.backtests.create',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nbacktest = lithic.auth_rules.v2.backtests.create("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(backtest)',
+ },
+ typescript: {
+ method: 'client.authRules.v2.backtests.create',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst backtest = await client.authRules.v2.backtests.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(backtest.backtest_token);",
+ },
+ },
},
{
name: 'retrieve',
@@ -539,6 +1543,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'{ backtest_token: string; results: { current_version?: object; draft_version?: object; }; simulation_parameters: { end: string; start: string; }; }',
markdown:
"## retrieve\n\n`client.authRules.v2.backtests.retrieve(auth_rule_token: string, auth_rule_backtest_token: string): { backtest_token: string; results: object; simulation_parameters: object; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}/backtests/{auth_rule_backtest_token}`\n\nReturns the backtest results of an Auth rule (if available).\n\nBacktesting is an asynchronous process that requires time to complete. If a customer retrieves the backtest results using this endpoint before the report is fully generated, the response will return null for `results.current_version` and `results.draft_version`. Customers are advised to wait for the backtest creation process to complete (as indicated by the webhook event auth_rules.backtest_report.created) before retrieving results from this endpoint.\n\nBacktesting is an asynchronous process, while the backtest is being processed, results will not be available which will cause `results.current_version` and `results.draft_version` objects to contain `null`.\nThe entries in `results` will also always represent the configuration of the rule at the time requests are made to this endpoint. For example, the results for `current_version` in the served backtest report will be consistent with which version of the rule is currently activated in the respective event stream, regardless of which version of the rule was active in the event stream at the time a backtest is requested.\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `auth_rule_backtest_token: string`\n\n### Returns\n\n- `{ backtest_token: string; results: { current_version?: object; draft_version?: object; }; simulation_parameters: { end: string; start: string; }; }`\n\n - `backtest_token: string`\n - `results: { current_version?: { approved?: number; challenged?: number; declined?: number; examples?: { decision?: 'APPROVED' | 'DECLINED' | 'CHALLENGED'; event_token?: string; timestamp?: string; }[]; version?: number; }; draft_version?: { approved?: number; challenged?: number; declined?: number; examples?: { decision?: 'APPROVED' | 'DECLINED' | 'CHALLENGED'; event_token?: string; timestamp?: string; }[]; version?: number; }; }`\n - `simulation_parameters: { end: string; start: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst backtestResults = await client.authRules.v2.backtests.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { auth_rule_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(backtestResults);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AuthRules.V2.Backtests.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tbacktestResults, err := client.AuthRules.V2.Backtests.Get(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", backtestResults.BacktestToken)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN/backtests/$AUTH_RULE_BACKTEST_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'authRules().v2().backtests().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AuthRuleV2BacktestRetrieveParams;\nimport com.lithic.api.models.BacktestResults;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AuthRuleV2BacktestRetrieveParams params = AuthRuleV2BacktestRetrieveParams.builder()\n .authRuleToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .authRuleBacktestToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build();\n BacktestResults backtestResults = client.authRules().v2().backtests().retrieve(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'authRules().v2().backtests().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRuleV2BacktestRetrieveParams\nimport com.lithic.api.models.BacktestResults\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: AuthRuleV2BacktestRetrieveParams = AuthRuleV2BacktestRetrieveParams.builder()\n .authRuleToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .authRuleBacktestToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val backtestResults: BacktestResults = client.authRules().v2().backtests().retrieve(params)\n}',
+ },
+ python: {
+ method: 'auth_rules.v2.backtests.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nbacktest_results = client.auth_rules.v2.backtests.retrieve(\n auth_rule_backtest_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n auth_rule_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(backtest_results.backtest_token)',
+ },
+ ruby: {
+ method: 'auth_rules.v2.backtests.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nbacktest_results = lithic.auth_rules.v2.backtests.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n auth_rule_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(backtest_results)',
+ },
+ typescript: {
+ method: 'client.authRules.v2.backtests.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst backtestResults = await client.authRules.v2.backtests.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { auth_rule_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(backtestResults.backtest_token);",
+ },
+ },
},
{
name: 'retrieve_secret',
@@ -552,6 +1592,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response: '{ secret?: string; }',
markdown:
"## retrieve_secret\n\n`client.authStreamEnrollment.retrieveSecret(): { secret?: string; }`\n\n**get** `/v1/auth_stream/secret`\n\nRetrieve the ASA HMAC secret key. If one does not exist for your program yet, calling this endpoint will create one for you. The headers (which you can use to verify webhooks) will begin appearing shortly after calling this endpoint for the first time. See [this page](https://docs.lithic.com/docs/auth-stream-access-asa#asa-webhook-verification) for more detail about verifying ASA webhooks.\n\n\n### Returns\n\n- `{ secret?: string; }`\n\n - `secret?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst authStreamSecret = await client.authStreamEnrollment.retrieveSecret();\n\nconsole.log(authStreamSecret);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AuthStreamEnrollment.GetSecret',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tauthStreamSecret, err := client.AuthStreamEnrollment.GetSecret(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", authStreamSecret.Secret)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/auth_stream/secret \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'authStreamEnrollment().retrieveSecret',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AuthStreamEnrollmentRetrieveSecretParams;\nimport com.lithic.api.models.AuthStreamSecret;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AuthStreamSecret authStreamSecret = client.authStreamEnrollment().retrieveSecret();\n }\n}',
+ },
+ kotlin: {
+ method: 'authStreamEnrollment().retrieveSecret',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthStreamEnrollmentRetrieveSecretParams\nimport com.lithic.api.models.AuthStreamSecret\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val authStreamSecret: AuthStreamSecret = client.authStreamEnrollment().retrieveSecret()\n}',
+ },
+ python: {
+ method: 'auth_stream_enrollment.retrieve_secret',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nauth_stream_secret = client.auth_stream_enrollment.retrieve_secret()\nprint(auth_stream_secret.secret)',
+ },
+ ruby: {
+ method: 'auth_stream_enrollment.retrieve_secret',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nauth_stream_secret = lithic.auth_stream_enrollment.retrieve_secret\n\nputs(auth_stream_secret)',
+ },
+ typescript: {
+ method: 'client.authStreamEnrollment.retrieveSecret',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst authStreamSecret = await client.authStreamEnrollment.retrieveSecret();\n\nconsole.log(authStreamSecret.secret);",
+ },
+ },
},
{
name: 'rotate_secret',
@@ -564,6 +1640,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
qualified: 'client.authStreamEnrollment.rotateSecret',
markdown:
"## rotate_secret\n\n`client.authStreamEnrollment.rotateSecret(): void`\n\n**post** `/v1/auth_stream/secret/rotate`\n\nGenerate a new ASA HMAC secret key. The old ASA HMAC secret key will be deactivated 24 hours after a successful request to this endpoint. Make a [`GET /auth_stream/secret`](https://docs.lithic.com/reference/getauthstreamsecret) request to retrieve the new secret key.\n\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.authStreamEnrollment.rotateSecret()\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AuthStreamEnrollment.RotateSecret',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.AuthStreamEnrollment.RotateSecret(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/auth_stream/secret/rotate \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'authStreamEnrollment().rotateSecret',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AuthStreamEnrollmentRotateSecretParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n client.authStreamEnrollment().rotateSecret();\n }\n}',
+ },
+ kotlin: {
+ method: 'authStreamEnrollment().rotateSecret',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthStreamEnrollmentRotateSecretParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.authStreamEnrollment().rotateSecret()\n}',
+ },
+ python: {
+ method: 'auth_stream_enrollment.rotate_secret',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.auth_stream_enrollment.rotate_secret()',
+ },
+ ruby: {
+ method: 'auth_stream_enrollment.rotate_secret',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.auth_stream_enrollment.rotate_secret\n\nputs(result)',
+ },
+ typescript: {
+ method: 'client.authStreamEnrollment.rotateSecret',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.authStreamEnrollment.rotateSecret();",
+ },
+ },
},
{
name: 'retrieve_secret',
@@ -577,6 +1689,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response: '{ secret?: string; }',
markdown:
"## retrieve_secret\n\n`client.tokenizationDecisioning.retrieveSecret(): { secret?: string; }`\n\n**get** `/v1/tokenization_decisioning/secret`\n\nRetrieve the Tokenization Decisioning secret key. If one does not exist your program yet, calling this endpoint will create one for you. The headers of the Tokenization Decisioning request will contain a hmac signature which you can use to verify requests originate from Lithic. See [this page](https://docs.lithic.com/docs/events-api#verifying-webhooks) for more detail about verifying Tokenization Decisioning requests.\n\n\n### Returns\n\n- `{ secret?: string; }`\n\n - `secret?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst tokenizationSecret = await client.tokenizationDecisioning.retrieveSecret();\n\nconsole.log(tokenizationSecret);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.TokenizationDecisioning.GetSecret',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\ttokenizationSecret, err := client.TokenizationDecisioning.GetSecret(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", tokenizationSecret.Secret)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/tokenization_decisioning/secret \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'tokenizationDecisioning().retrieveSecret',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.TokenizationDecisioningRetrieveSecretParams;\nimport com.lithic.api.models.TokenizationSecret;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n TokenizationSecret tokenizationSecret = client.tokenizationDecisioning().retrieveSecret();\n }\n}',
+ },
+ kotlin: {
+ method: 'tokenizationDecisioning().retrieveSecret',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TokenizationDecisioningRetrieveSecretParams\nimport com.lithic.api.models.TokenizationSecret\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val tokenizationSecret: TokenizationSecret = client.tokenizationDecisioning().retrieveSecret()\n}',
+ },
+ python: {
+ method: 'tokenization_decisioning.retrieve_secret',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ntokenization_secret = client.tokenization_decisioning.retrieve_secret()\nprint(tokenization_secret.secret)',
+ },
+ ruby: {
+ method: 'tokenization_decisioning.retrieve_secret',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ntokenization_secret = lithic.tokenization_decisioning.retrieve_secret\n\nputs(tokenization_secret)',
+ },
+ typescript: {
+ method: 'client.tokenizationDecisioning.retrieveSecret',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst tokenizationSecret = await client.tokenizationDecisioning.retrieveSecret();\n\nconsole.log(tokenizationSecret.secret);",
+ },
+ },
},
{
name: 'rotate_secret',
@@ -590,20 +1738,102 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response: '{ secret?: string; }',
markdown:
"## rotate_secret\n\n`client.tokenizationDecisioning.rotateSecret(): { secret?: string; }`\n\n**post** `/v1/tokenization_decisioning/secret/rotate`\n\nGenerate a new Tokenization Decisioning secret key. The old Tokenization Decisioning secret key will be deactivated 24 hours after a successful request to this endpoint.\n\n\n### Returns\n\n- `{ secret?: string; }`\n\n - `secret?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.tokenizationDecisioning.rotateSecret();\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.TokenizationDecisioning.RotateSecret',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.TokenizationDecisioning.RotateSecret(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Secret)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/tokenization_decisioning/secret/rotate \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'tokenizationDecisioning().rotateSecret',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.TokenizationDecisioningRotateSecretParams;\nimport com.lithic.api.models.TokenizationDecisioningRotateSecretResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n TokenizationDecisioningRotateSecretResponse response = client.tokenizationDecisioning().rotateSecret();\n }\n}',
+ },
+ kotlin: {
+ method: 'tokenizationDecisioning().rotateSecret',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TokenizationDecisioningRotateSecretParams\nimport com.lithic.api.models.TokenizationDecisioningRotateSecretResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: TokenizationDecisioningRotateSecretResponse = client.tokenizationDecisioning().rotateSecret()\n}',
+ },
+ python: {
+ method: 'tokenization_decisioning.rotate_secret',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.tokenization_decisioning.rotate_secret()\nprint(response.secret)',
+ },
+ ruby: {
+ method: 'tokenization_decisioning.rotate_secret',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.tokenization_decisioning.rotate_secret\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.tokenizationDecisioning.rotateSecret',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.tokenizationDecisioning.rotateSecret();\n\nconsole.log(response.secret);",
+ },
+ },
},
{
- name: 'retrieve',
- endpoint: '/v1/tokenizations/{tokenization_token}',
- httpMethod: 'get',
- summary: 'Get a single card tokenization',
- description: 'Get tokenization',
- stainlessPath: '(resource) tokenizations > (method) retrieve',
- qualified: 'client.tokenizations.retrieve',
- params: ['tokenization_token: string;'],
+ name: 'simulate',
+ endpoint: '/v1/simulate/tokenizations',
+ httpMethod: 'post',
+ summary: "Simulate a card's tokenization",
+ description:
+ "This endpoint is used to simulate a card's tokenization in the Digital Wallet and merchant tokenization ecosystem.\n",
+ stainlessPath: '(resource) tokenizations > (method) simulate',
+ qualified: 'client.tokenizations.simulate',
+ params: [
+ 'cvv: string;',
+ 'expiration_date: string;',
+ 'pan: string;',
+ "tokenization_source: 'APPLE_PAY' | 'GOOGLE' | 'SAMSUNG_PAY' | 'MERCHANT';",
+ 'account_score?: number;',
+ 'device_score?: number;',
+ 'entity?: string;',
+ "wallet_recommended_decision?: 'APPROVED' | 'DECLINED' | 'REQUIRE_ADDITIONAL_AUTHENTICATION';",
+ ],
response:
"{ token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: { token?: string; created_at?: string; result?: string; rule_results?: object[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]; payment_account_reference_id?: string; }",
markdown:
- "## retrieve\n\n`client.tokenizations.retrieve(tokenization_token: string): { token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: object[]; payment_account_reference_id?: string; }`\n\n**get** `/v1/tokenizations/{tokenization_token}`\n\nGet tokenization\n\n### Parameters\n\n- `tokenization_token: string`\n\n### Returns\n\n- `{ token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: { token?: string; created_at?: string; result?: string; rule_results?: object[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]; payment_account_reference_id?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `card_token: string`\n - `created_at: string`\n - `dpan: string`\n - `status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'`\n - `token_requestor_name: string | string`\n - `token_unique_reference: string`\n - `tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'`\n - `updated_at: string`\n - `device_id?: string`\n - `digital_card_art_token?: string`\n - `events?: { token?: string; created_at?: string; result?: string; rule_results?: { auth_rule_token: string; explanation: string; name: string; result: 'APPROVED' | 'DECLINED' | 'REQUIRE_TFA' | 'ERROR'; }[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]`\n - `payment_account_reference_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst tokenization = await client.tokenizations.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(tokenization);\n```",
+ "## simulate\n\n`client.tokenizations.simulate(cvv: string, expiration_date: string, pan: string, tokenization_source: 'APPLE_PAY' | 'GOOGLE' | 'SAMSUNG_PAY' | 'MERCHANT', account_score?: number, device_score?: number, entity?: string, wallet_recommended_decision?: 'APPROVED' | 'DECLINED' | 'REQUIRE_ADDITIONAL_AUTHENTICATION'): { token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: object[]; payment_account_reference_id?: string; }`\n\n**post** `/v1/simulate/tokenizations`\n\nThis endpoint is used to simulate a card's tokenization in the Digital Wallet and merchant tokenization ecosystem.\n\n\n### Parameters\n\n- `cvv: string`\n The three digit cvv for the card.\n\n- `expiration_date: string`\n The expiration date of the card in 'MM/YY' format.\n\n- `pan: string`\n The sixteen digit card number.\n\n- `tokenization_source: 'APPLE_PAY' | 'GOOGLE' | 'SAMSUNG_PAY' | 'MERCHANT'`\n The source of the tokenization request.\n\n- `account_score?: number`\n The account score (1-5) that represents how the Digital Wallet's view on how reputable an end user's account is.\n\n- `device_score?: number`\n The device score (1-5) that represents how the Digital Wallet's view on how reputable an end user's device is.\n\n- `entity?: string`\n Optional field to specify the token requestor name for a merchant token simulation. Ignored when tokenization_source is not MERCHANT.\n\n- `wallet_recommended_decision?: 'APPROVED' | 'DECLINED' | 'REQUIRE_ADDITIONAL_AUTHENTICATION'`\n The decision that the Digital Wallet's recommend\n\n### Returns\n\n- `{ token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: { token?: string; created_at?: string; result?: string; rule_results?: object[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]; payment_account_reference_id?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `card_token: string`\n - `created_at: string`\n - `dpan: string`\n - `status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'`\n - `token_requestor_name: string | string`\n - `token_unique_reference: string`\n - `tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'`\n - `updated_at: string`\n - `device_id?: string`\n - `digital_card_art_token?: string`\n - `events?: { token?: string; created_at?: string; result?: string; rule_results?: { auth_rule_token: string; explanation: string; name: string; result: 'APPROVED' | 'DECLINED' | 'REQUIRE_TFA' | 'ERROR'; }[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]`\n - `payment_account_reference_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst tokenization = await client.tokenizations.simulate({\n cvv: '776',\n expiration_date: '08/29',\n pan: '4111111289144142',\n tokenization_source: 'APPLE_PAY',\n});\n\nconsole.log(tokenization);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Tokenizations.Simulate',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\ttokenization, err := client.Tokenizations.Simulate(context.TODO(), lithic.TokenizationSimulateParams{\n\t\tCvv: lithic.F("776"),\n\t\tExpirationDate: lithic.F("08/29"),\n\t\tPan: lithic.F("4111111289144142"),\n\t\tTokenizationSource: lithic.F(lithic.TokenizationSimulateParamsTokenizationSourceApplePay),\n\t\tAccountScore: lithic.F(int64(5)),\n\t\tDeviceScore: lithic.F(int64(5)),\n\t\tWalletRecommendedDecision: lithic.F(lithic.TokenizationSimulateParamsWalletRecommendedDecisionApproved),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", tokenization.DeviceID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/simulate/tokenizations \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "cvv": "776",\n "expiration_date": "08/29",\n "pan": "4111111289144142",\n "tokenization_source": "APPLE_PAY"\n }\'',
+ },
+ java: {
+ method: 'tokenizations().simulate',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Tokenization;\nimport com.lithic.api.models.TokenizationSimulateParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n TokenizationSimulateParams params = TokenizationSimulateParams.builder()\n .cvv("776")\n .expirationDate("08/29")\n .pan("4111111289144142")\n .tokenizationSource(TokenizationSimulateParams.TokenizationSource.APPLE_PAY)\n .build();\n Tokenization tokenization = client.tokenizations().simulate(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'tokenizations().simulate',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Tokenization\nimport com.lithic.api.models.TokenizationSimulateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: TokenizationSimulateParams = TokenizationSimulateParams.builder()\n .cvv("776")\n .expirationDate("08/29")\n .pan("4111111289144142")\n .tokenizationSource(TokenizationSimulateParams.TokenizationSource.APPLE_PAY)\n .build()\n val tokenization: Tokenization = client.tokenizations().simulate(params)\n}',
+ },
+ python: {
+ method: 'tokenizations.simulate',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ntokenization = client.tokenizations.simulate(\n cvv="776",\n expiration_date="08/29",\n pan="4111111289144142",\n tokenization_source="APPLE_PAY",\n account_score=5,\n device_score=5,\n wallet_recommended_decision="APPROVED",\n)\nprint(tokenization.device_id)',
+ },
+ ruby: {
+ method: 'tokenizations.simulate',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ntokenization = lithic.tokenizations.simulate(\n cvv: "776",\n expiration_date: "08/29",\n pan: "4111111289144142",\n tokenization_source: :APPLE_PAY\n)\n\nputs(tokenization)',
+ },
+ typescript: {
+ method: 'client.tokenizations.simulate',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst tokenization = await client.tokenizations.simulate({\n cvv: '776',\n expiration_date: '08/29',\n pan: '4111111289144142',\n tokenization_source: 'APPLE_PAY',\n account_score: 5,\n device_score: 5,\n wallet_recommended_decision: 'APPROVED',\n});\n\nconsole.log(tokenization.device_id);",
+ },
+ },
},
{
name: 'list',
@@ -627,19 +1857,189 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: { token?: string; created_at?: string; result?: string; rule_results?: object[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]; payment_account_reference_id?: string; }",
markdown:
"## list\n\n`client.tokenizations.list(account_token?: string, begin?: string, card_token?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string, tokenization_channel?: 'DIGITAL_WALLET' | 'MERCHANT' | 'ALL'): { token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: object[]; payment_account_reference_id?: string; }`\n\n**get** `/v1/tokenizations`\n\nList card tokenizations\n\n### Parameters\n\n- `account_token?: string`\n Filters for tokenizations associated with a specific account.\n\n- `begin?: string`\n Filter for tokenizations created after this date.\n\n- `card_token?: string`\n Filters for tokenizations associated with a specific card.\n\n- `end?: string`\n Filter for tokenizations created before this date.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `tokenization_channel?: 'DIGITAL_WALLET' | 'MERCHANT' | 'ALL'`\n Filter for tokenizations by tokenization channel. If this is not specified, only DIGITAL_WALLET tokenizations will be returned.\n\n### Returns\n\n- `{ token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: { token?: string; created_at?: string; result?: string; rule_results?: object[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]; payment_account_reference_id?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `card_token: string`\n - `created_at: string`\n - `dpan: string`\n - `status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'`\n - `token_requestor_name: string | string`\n - `token_unique_reference: string`\n - `tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'`\n - `updated_at: string`\n - `device_id?: string`\n - `digital_card_art_token?: string`\n - `events?: { token?: string; created_at?: string; result?: string; rule_results?: { auth_rule_token: string; explanation: string; name: string; result: 'APPROVED' | 'DECLINED' | 'REQUIRE_TFA' | 'ERROR'; }[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]`\n - `payment_account_reference_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const tokenization of client.tokenizations.list()) {\n console.log(tokenization);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Tokenizations.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Tokenizations.List(context.TODO(), lithic.TokenizationListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example: 'curl https://api.lithic.com/v1/tokenizations \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'tokenizations().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.TokenizationListPage;\nimport com.lithic.api.models.TokenizationListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n TokenizationListPage page = client.tokenizations().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'tokenizations().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TokenizationListPage\nimport com.lithic.api.models.TokenizationListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: TokenizationListPage = client.tokenizations().list()\n}',
+ },
+ python: {
+ method: 'tokenizations.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.tokenizations.list()\npage = page.data[0]\nprint(page.device_id)',
+ },
+ ruby: {
+ method: 'tokenizations.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.tokenizations.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.tokenizations.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const tokenization of client.tokenizations.list()) {\n console.log(tokenization.device_id);\n}",
+ },
+ },
},
{
- name: 'activate',
- endpoint: '/v1/tokenizations/{tokenization_token}/activate',
+ name: 'retrieve',
+ endpoint: '/v1/tokenizations/{tokenization_token}',
+ httpMethod: 'get',
+ summary: 'Get a single card tokenization',
+ description: 'Get tokenization',
+ stainlessPath: '(resource) tokenizations > (method) retrieve',
+ qualified: 'client.tokenizations.retrieve',
+ params: ['tokenization_token: string;'],
+ response:
+ "{ token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: { token?: string; created_at?: string; result?: string; rule_results?: object[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]; payment_account_reference_id?: string; }",
+ markdown:
+ "## retrieve\n\n`client.tokenizations.retrieve(tokenization_token: string): { token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: object[]; payment_account_reference_id?: string; }`\n\n**get** `/v1/tokenizations/{tokenization_token}`\n\nGet tokenization\n\n### Parameters\n\n- `tokenization_token: string`\n\n### Returns\n\n- `{ token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: { token?: string; created_at?: string; result?: string; rule_results?: object[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]; payment_account_reference_id?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `card_token: string`\n - `created_at: string`\n - `dpan: string`\n - `status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'`\n - `token_requestor_name: string | string`\n - `token_unique_reference: string`\n - `tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'`\n - `updated_at: string`\n - `device_id?: string`\n - `digital_card_art_token?: string`\n - `events?: { token?: string; created_at?: string; result?: string; rule_results?: { auth_rule_token: string; explanation: string; name: string; result: 'APPROVED' | 'DECLINED' | 'REQUIRE_TFA' | 'ERROR'; }[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]`\n - `payment_account_reference_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst tokenization = await client.tokenizations.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(tokenization);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Tokenizations.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\ttokenization, err := client.Tokenizations.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", tokenization.DeviceID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/tokenizations/$TOKENIZATION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'tokenizations().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Tokenization;\nimport com.lithic.api.models.TokenizationRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n Tokenization tokenization = client.tokenizations().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'tokenizations().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Tokenization\nimport com.lithic.api.models.TokenizationRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val tokenization: Tokenization = client.tokenizations().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'tokenizations.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ntokenization = client.tokenizations.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(tokenization.device_id)',
+ },
+ ruby: {
+ method: 'tokenizations.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ntokenization = lithic.tokenizations.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(tokenization)',
+ },
+ typescript: {
+ method: 'client.tokenizations.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst tokenization = await client.tokenizations.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(tokenization.device_id);",
+ },
+ },
+ },
+ {
+ name: 'pause',
+ endpoint: '/v1/tokenizations/{tokenization_token}/pause',
httpMethod: 'post',
- summary: 'Activate a card tokenization',
+ summary: 'Pause a card tokenization',
description:
- 'This endpoint is used to ask the card network to activate a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network activates the tokenization, the state will be updated and a tokenization.updated event will be sent. The endpoint may only be used on digital wallet tokenizations with status `INACTIVE`, `PENDING_ACTIVATION`, or `PENDING_2FA`.\nThis will put the tokenization in an active state, and transactions will be allowed.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.',
- stainlessPath: '(resource) tokenizations > (method) activate',
- qualified: 'client.tokenizations.activate',
+ 'This endpoint is used to ask the card network to pause a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network pauses the tokenization, the state will be updated and a tokenization.updated event will be sent. The endpoint may only be used on tokenizations with status `ACTIVE`.\nA paused token will prevent merchants from sending authorizations, and is a temporary status that can be changed.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.',
+ stainlessPath: '(resource) tokenizations > (method) pause',
+ qualified: 'client.tokenizations.pause',
params: ['tokenization_token: string;'],
markdown:
- "## activate\n\n`client.tokenizations.activate(tokenization_token: string): void`\n\n**post** `/v1/tokenizations/{tokenization_token}/activate`\n\nThis endpoint is used to ask the card network to activate a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network activates the tokenization, the state will be updated and a tokenization.updated event will be sent. The endpoint may only be used on digital wallet tokenizations with status `INACTIVE`, `PENDING_ACTIVATION`, or `PENDING_2FA`.\nThis will put the tokenization in an active state, and transactions will be allowed.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n\n### Parameters\n\n- `tokenization_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.tokenizations.activate('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')\n```",
+ "## pause\n\n`client.tokenizations.pause(tokenization_token: string): void`\n\n**post** `/v1/tokenizations/{tokenization_token}/pause`\n\nThis endpoint is used to ask the card network to pause a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network pauses the tokenization, the state will be updated and a tokenization.updated event will be sent. The endpoint may only be used on tokenizations with status `ACTIVE`.\nA paused token will prevent merchants from sending authorizations, and is a temporary status that can be changed.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n\n### Parameters\n\n- `tokenization_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.tokenizations.pause('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Tokenizations.Pause',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Tokenizations.Pause(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/tokenizations/$TOKENIZATION_TOKEN/pause \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'tokenizations().pause',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.TokenizationPauseParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n client.tokenizations().pause("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'tokenizations().pause',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TokenizationPauseParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.tokenizations().pause("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'tokenizations.pause',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.tokenizations.pause(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)',
+ },
+ ruby: {
+ method: 'tokenizations.pause',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.tokenizations.pause("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(result)',
+ },
+ typescript: {
+ method: 'client.tokenizations.pause',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.tokenizations.pause('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');",
+ },
+ },
+ },
+ {
+ name: 'unpause',
+ endpoint: '/v1/tokenizations/{tokenization_token}/unpause',
+ httpMethod: 'post',
+ summary: 'Unpause a card tokenization',
+ description:
+ 'This endpoint is used to ask the card network to unpause a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network unpauses the tokenization, the state will be updated and a tokenization.updated event will be sent. The endpoint may only be used on tokenizations with status `PAUSED`.\nThis will put the tokenization in an active state, and transactions may resume.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.',
+ stainlessPath: '(resource) tokenizations > (method) unpause',
+ qualified: 'client.tokenizations.unpause',
+ params: ['tokenization_token: string;'],
+ markdown:
+ "## unpause\n\n`client.tokenizations.unpause(tokenization_token: string): void`\n\n**post** `/v1/tokenizations/{tokenization_token}/unpause`\n\nThis endpoint is used to ask the card network to unpause a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network unpauses the tokenization, the state will be updated and a tokenization.updated event will be sent. The endpoint may only be used on tokenizations with status `PAUSED`.\nThis will put the tokenization in an active state, and transactions may resume.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n\n### Parameters\n\n- `tokenization_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.tokenizations.unpause('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Tokenizations.Unpause',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Tokenizations.Unpause(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/tokenizations/$TOKENIZATION_TOKEN/unpause \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'tokenizations().unpause',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.TokenizationUnpauseParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n client.tokenizations().unpause("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'tokenizations().unpause',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TokenizationUnpauseParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.tokenizations().unpause("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'tokenizations.unpause',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.tokenizations.unpause(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)',
+ },
+ ruby: {
+ method: 'tokenizations.unpause',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.tokenizations.unpause("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(result)',
+ },
+ typescript: {
+ method: 'client.tokenizations.unpause',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.tokenizations.unpause('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');",
+ },
+ },
},
{
name: 'deactivate',
@@ -653,19 +2053,91 @@ const EMBEDDED_METHODS: MethodEntry[] = [
params: ['tokenization_token: string;'],
markdown:
"## deactivate\n\n`client.tokenizations.deactivate(tokenization_token: string): void`\n\n**post** `/v1/tokenizations/{tokenization_token}/deactivate`\n\nThis endpoint is used to ask the card network to deactivate a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network deactivates the tokenization, the state will be updated and a tokenization.updated event will be sent.\nAuthorizations attempted with a deactivated tokenization will be blocked and will not be forwarded to Lithic from the network. Deactivating the token is a permanent operation. If the target is a digital wallet tokenization, it will be removed from its device.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n\n### Parameters\n\n- `tokenization_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.tokenizations.deactivate('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Tokenizations.Deactivate',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Tokenizations.Deactivate(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/tokenizations/$TOKENIZATION_TOKEN/deactivate \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'tokenizations().deactivate',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.TokenizationDeactivateParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n client.tokenizations().deactivate("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'tokenizations().deactivate',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TokenizationDeactivateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.tokenizations().deactivate("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'tokenizations.deactivate',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.tokenizations.deactivate(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)',
+ },
+ ruby: {
+ method: 'tokenizations.deactivate',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.tokenizations.deactivate("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(result)',
+ },
+ typescript: {
+ method: 'client.tokenizations.deactivate',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.tokenizations.deactivate('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');",
+ },
+ },
},
{
- name: 'pause',
- endpoint: '/v1/tokenizations/{tokenization_token}/pause',
+ name: 'activate',
+ endpoint: '/v1/tokenizations/{tokenization_token}/activate',
httpMethod: 'post',
- summary: 'Pause a card tokenization',
+ summary: 'Activate a card tokenization',
description:
- 'This endpoint is used to ask the card network to pause a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network pauses the tokenization, the state will be updated and a tokenization.updated event will be sent. The endpoint may only be used on tokenizations with status `ACTIVE`.\nA paused token will prevent merchants from sending authorizations, and is a temporary status that can be changed.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.',
- stainlessPath: '(resource) tokenizations > (method) pause',
- qualified: 'client.tokenizations.pause',
+ 'This endpoint is used to ask the card network to activate a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network activates the tokenization, the state will be updated and a tokenization.updated event will be sent. The endpoint may only be used on digital wallet tokenizations with status `INACTIVE`, `PENDING_ACTIVATION`, or `PENDING_2FA`.\nThis will put the tokenization in an active state, and transactions will be allowed.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.',
+ stainlessPath: '(resource) tokenizations > (method) activate',
+ qualified: 'client.tokenizations.activate',
params: ['tokenization_token: string;'],
markdown:
- "## pause\n\n`client.tokenizations.pause(tokenization_token: string): void`\n\n**post** `/v1/tokenizations/{tokenization_token}/pause`\n\nThis endpoint is used to ask the card network to pause a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network pauses the tokenization, the state will be updated and a tokenization.updated event will be sent. The endpoint may only be used on tokenizations with status `ACTIVE`.\nA paused token will prevent merchants from sending authorizations, and is a temporary status that can be changed.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n\n### Parameters\n\n- `tokenization_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.tokenizations.pause('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')\n```",
+ "## activate\n\n`client.tokenizations.activate(tokenization_token: string): void`\n\n**post** `/v1/tokenizations/{tokenization_token}/activate`\n\nThis endpoint is used to ask the card network to activate a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network activates the tokenization, the state will be updated and a tokenization.updated event will be sent. The endpoint may only be used on digital wallet tokenizations with status `INACTIVE`, `PENDING_ACTIVATION`, or `PENDING_2FA`.\nThis will put the tokenization in an active state, and transactions will be allowed.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n\n### Parameters\n\n- `tokenization_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.tokenizations.activate('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Tokenizations.Activate',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Tokenizations.Activate(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/tokenizations/$TOKENIZATION_TOKEN/activate \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'tokenizations().activate',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.TokenizationActivateParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n client.tokenizations().activate("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'tokenizations().activate',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TokenizationActivateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.tokenizations().activate("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'tokenizations.activate',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.tokenizations.activate(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)',
+ },
+ ruby: {
+ method: 'tokenizations.activate',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.tokenizations.activate("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(result)',
+ },
+ typescript: {
+ method: 'client.tokenizations.activate',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.tokenizations.activate('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');",
+ },
+ },
},
{
name: 'resend_activation_code',
@@ -682,43 +2154,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
],
markdown:
"## resend_activation_code\n\n`client.tokenizations.resendActivationCode(tokenization_token: string, activation_method_type?: 'EMAIL_TO_CARDHOLDER_ADDRESS' | 'TEXT_TO_CARDHOLDER_NUMBER'): void`\n\n**post** `/v1/tokenizations/{tokenization_token}/resend_activation_code`\n\nThis endpoint is used to ask the card network to send another activation code to a cardholder that has already tried tokenizing a card. A successful response indicates that the request was successfully delivered to the card network.\nThe endpoint may only be used on Mastercard digital wallet tokenizations with status `INACTIVE`, `PENDING_ACTIVATION`, or `PENDING_2FA`. The network will send a new activation code to the one of the contact methods provided in the initial tokenization flow. If a user fails to enter the code correctly 3 times, the contact method will not be eligible for resending the activation code, and the cardholder must restart the provision process.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n\n### Parameters\n\n- `tokenization_token: string`\n\n- `activation_method_type?: 'EMAIL_TO_CARDHOLDER_ADDRESS' | 'TEXT_TO_CARDHOLDER_NUMBER'`\n The communication method that the user has selected to use to receive the authentication code.\nSupported Values: Sms = \"TEXT_TO_CARDHOLDER_NUMBER\". Email = \"EMAIL_TO_CARDHOLDER_ADDRESS\"\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.tokenizations.resendActivationCode('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')\n```",
- },
- {
- name: 'simulate',
- endpoint: '/v1/simulate/tokenizations',
- httpMethod: 'post',
- summary: "Simulate a card's tokenization",
- description:
- "This endpoint is used to simulate a card's tokenization in the Digital Wallet and merchant tokenization ecosystem.\n",
- stainlessPath: '(resource) tokenizations > (method) simulate',
- qualified: 'client.tokenizations.simulate',
- params: [
- 'cvv: string;',
- 'expiration_date: string;',
- 'pan: string;',
- "tokenization_source: 'APPLE_PAY' | 'GOOGLE' | 'SAMSUNG_PAY' | 'MERCHANT';",
- 'account_score?: number;',
- 'device_score?: number;',
- 'entity?: string;',
- "wallet_recommended_decision?: 'APPROVED' | 'DECLINED' | 'REQUIRE_ADDITIONAL_AUTHENTICATION';",
- ],
- response:
- "{ token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: { token?: string; created_at?: string; result?: string; rule_results?: object[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]; payment_account_reference_id?: string; }",
- markdown:
- "## simulate\n\n`client.tokenizations.simulate(cvv: string, expiration_date: string, pan: string, tokenization_source: 'APPLE_PAY' | 'GOOGLE' | 'SAMSUNG_PAY' | 'MERCHANT', account_score?: number, device_score?: number, entity?: string, wallet_recommended_decision?: 'APPROVED' | 'DECLINED' | 'REQUIRE_ADDITIONAL_AUTHENTICATION'): { token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: object[]; payment_account_reference_id?: string; }`\n\n**post** `/v1/simulate/tokenizations`\n\nThis endpoint is used to simulate a card's tokenization in the Digital Wallet and merchant tokenization ecosystem.\n\n\n### Parameters\n\n- `cvv: string`\n The three digit cvv for the card.\n\n- `expiration_date: string`\n The expiration date of the card in 'MM/YY' format.\n\n- `pan: string`\n The sixteen digit card number.\n\n- `tokenization_source: 'APPLE_PAY' | 'GOOGLE' | 'SAMSUNG_PAY' | 'MERCHANT'`\n The source of the tokenization request.\n\n- `account_score?: number`\n The account score (1-5) that represents how the Digital Wallet's view on how reputable an end user's account is.\n\n- `device_score?: number`\n The device score (1-5) that represents how the Digital Wallet's view on how reputable an end user's device is.\n\n- `entity?: string`\n Optional field to specify the token requestor name for a merchant token simulation. Ignored when tokenization_source is not MERCHANT.\n\n- `wallet_recommended_decision?: 'APPROVED' | 'DECLINED' | 'REQUIRE_ADDITIONAL_AUTHENTICATION'`\n The decision that the Digital Wallet's recommend\n\n### Returns\n\n- `{ token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: { token?: string; created_at?: string; result?: string; rule_results?: object[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]; payment_account_reference_id?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `card_token: string`\n - `created_at: string`\n - `dpan: string`\n - `status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'`\n - `token_requestor_name: string | string`\n - `token_unique_reference: string`\n - `tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'`\n - `updated_at: string`\n - `device_id?: string`\n - `digital_card_art_token?: string`\n - `events?: { token?: string; created_at?: string; result?: string; rule_results?: { auth_rule_token: string; explanation: string; name: string; result: 'APPROVED' | 'DECLINED' | 'REQUIRE_TFA' | 'ERROR'; }[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]`\n - `payment_account_reference_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst tokenization = await client.tokenizations.simulate({\n cvv: '776',\n expiration_date: '08/29',\n pan: '4111111289144142',\n tokenization_source: 'APPLE_PAY',\n});\n\nconsole.log(tokenization);\n```",
- },
- {
- name: 'unpause',
- endpoint: '/v1/tokenizations/{tokenization_token}/unpause',
- httpMethod: 'post',
- summary: 'Unpause a card tokenization',
- description:
- 'This endpoint is used to ask the card network to unpause a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network unpauses the tokenization, the state will be updated and a tokenization.updated event will be sent. The endpoint may only be used on tokenizations with status `PAUSED`.\nThis will put the tokenization in an active state, and transactions may resume.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.',
- stainlessPath: '(resource) tokenizations > (method) unpause',
- qualified: 'client.tokenizations.unpause',
- params: ['tokenization_token: string;'],
- markdown:
- "## unpause\n\n`client.tokenizations.unpause(tokenization_token: string): void`\n\n**post** `/v1/tokenizations/{tokenization_token}/unpause`\n\nThis endpoint is used to ask the card network to unpause a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network unpauses the tokenization, the state will be updated and a tokenization.updated event will be sent. The endpoint may only be used on tokenizations with status `PAUSED`.\nThis will put the tokenization in an active state, and transactions may resume.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n\n### Parameters\n\n- `tokenization_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.tokenizations.unpause('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Tokenizations.ResendActivationCode',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Tokenizations.ResendActivationCode(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.TokenizationResendActivationCodeParams{\n\t\t\tActivationMethodType: lithic.F(lithic.TokenizationResendActivationCodeParamsActivationMethodTypeTextToCardholderNumber),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/tokenizations/$TOKENIZATION_TOKEN/resend_activation_code \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'tokenizations().resendActivationCode',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.TokenizationResendActivationCodeParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n client.tokenizations().resendActivationCode("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'tokenizations().resendActivationCode',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TokenizationResendActivationCodeParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.tokenizations().resendActivationCode("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'tokenizations.resend_activation_code',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.tokenizations.resend_activation_code(\n tokenization_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n activation_method_type="TEXT_TO_CARDHOLDER_NUMBER",\n)',
+ },
+ ruby: {
+ method: 'tokenizations.resend_activation_code',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.tokenizations.resend_activation_code("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(result)',
+ },
+ typescript: {
+ method: 'client.tokenizations.resendActivationCode',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.tokenizations.resendActivationCode('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n activation_method_type: 'TEXT_TO_CARDHOLDER_NUMBER',\n});",
+ },
+ },
},
{
name: 'update_digital_card_art',
@@ -734,6 +2205,100 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: { token?: string; created_at?: string; result?: string; rule_results?: object[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]; payment_account_reference_id?: string; }",
markdown:
"## update_digital_card_art\n\n`client.tokenizations.updateDigitalCardArt(tokenization_token: string, digital_card_art_token?: string): { token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: object[]; payment_account_reference_id?: string; }`\n\n**post** `/v1/tokenizations/{tokenization_token}/update_digital_card_art`\n\nThis endpoint is used update the digital card art for a digital wallet tokenization. A successful response indicates that the card network has updated the tokenization's art, and the tokenization's `digital_cart_art_token` field was updated.\nThe endpoint may not be used on tokenizations with status `DEACTIVATED`.\nNote that this updates the art for one specific tokenization, not all tokenizations for a card. New tokenizations for a card will be created with the art referenced in the card object's `digital_card_art_token` field.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n\n### Parameters\n\n- `tokenization_token: string`\n\n- `digital_card_art_token?: string`\n Specifies the digital card art to be displayed in the user’s digital wallet for a tokenization. This artwork must be approved by the network and configured by Lithic to use. See [Flexible Card Art Guide](https://docs.lithic.com/docs/about-digital-wallets#flexible-card-art).\n\n### Returns\n\n- `{ token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: { token?: string; created_at?: string; result?: string; rule_results?: object[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]; payment_account_reference_id?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `card_token: string`\n - `created_at: string`\n - `dpan: string`\n - `status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'`\n - `token_requestor_name: string | string`\n - `token_unique_reference: string`\n - `tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'`\n - `updated_at: string`\n - `device_id?: string`\n - `digital_card_art_token?: string`\n - `events?: { token?: string; created_at?: string; result?: string; rule_results?: { auth_rule_token: string; explanation: string; name: string; result: 'APPROVED' | 'DECLINED' | 'REQUIRE_TFA' | 'ERROR'; }[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]`\n - `payment_account_reference_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst tokenization = await client.tokenizations.updateDigitalCardArt('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(tokenization);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Tokenizations.UpdateDigitalCardArt',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\ttokenization, err := client.Tokenizations.UpdateDigitalCardArt(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.TokenizationUpdateDigitalCardArtParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", tokenization.DeviceID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/tokenizations/$TOKENIZATION_TOKEN/update_digital_card_art \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'tokenizations().updateDigitalCardArt',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Tokenization;\nimport com.lithic.api.models.TokenizationUpdateDigitalCardArtParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n Tokenization tokenization = client.tokenizations().updateDigitalCardArt("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'tokenizations().updateDigitalCardArt',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Tokenization\nimport com.lithic.api.models.TokenizationUpdateDigitalCardArtParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val tokenization: Tokenization = client.tokenizations().updateDigitalCardArt("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'tokenizations.update_digital_card_art',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ntokenization = client.tokenizations.update_digital_card_art(\n tokenization_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(tokenization.device_id)',
+ },
+ ruby: {
+ method: 'tokenizations.update_digital_card_art',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ntokenization = lithic.tokenizations.update_digital_card_art("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(tokenization)',
+ },
+ typescript: {
+ method: 'client.tokenizations.updateDigitalCardArt',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst tokenization = await client.tokenizations.updateDigitalCardArt(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(tokenization.device_id);",
+ },
+ },
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/cards',
+ httpMethod: 'get',
+ summary: 'List cards',
+ description: 'List cards.',
+ stainlessPath: '(resource) cards > (method) list',
+ qualified: 'client.cards.list',
+ params: [
+ 'account_token?: string;',
+ 'begin?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'memo?: string;',
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ "state?: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT';",
+ ],
+ response:
+ "{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }",
+ markdown:
+ "## list\n\n`client.cards.list(account_token?: string, begin?: string, end?: string, ending_before?: string, memo?: string, page_size?: number, starting_after?: string, state?: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'): { token: string; account_token: string; card_program_token: string; created: string; funding: object; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: spend_limit_duration; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n\n**get** `/v1/cards`\n\nList cards.\n\n### Parameters\n\n- `account_token?: string`\n Returns cards associated with the specified account.\n\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `memo?: string`\n Returns cards containing the specified partial or full memo text.\n\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `state?: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'`\n Returns cards with the specified state.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details without PCI information\n\n - `token: string`\n - `account_token: string`\n - `card_program_token: string`\n - `created: string`\n - `funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }`\n - `last_four: string`\n - `pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'`\n - `spend_limit: number`\n - `spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'`\n - `state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'`\n - `type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'`\n - `auth_rule_tokens?: string[]`\n - `bulk_order_token?: string`\n - `cardholder_currency?: string`\n - `comment?: string`\n - `digital_card_art_token?: string`\n - `exp_month?: string`\n - `exp_year?: string`\n - `hostname?: string`\n - `memo?: string`\n - `network_program_token?: string`\n - `pending_commands?: string[]`\n - `product_id?: string`\n - `replacement_for?: string`\n - `substatus?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const nonPCICard of client.cards.list()) {\n console.log(nonPCICard);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Cards.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Cards.List(context.TODO(), lithic.CardListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example: 'curl https://api.lithic.com/v1/cards \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'cards().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.CardListPage;\nimport com.lithic.api.models.CardListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n CardListPage page = client.cards().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'cards().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardListPage\nimport com.lithic.api.models.CardListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: CardListPage = client.cards().list()\n}',
+ },
+ python: {
+ method: 'cards.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.cards.list()\npage = page.data[0]\nprint(page.product_id)',
+ },
+ ruby: {
+ method: 'cards.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.cards.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.cards.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const nonPCICard of client.cards.list()) {\n console.log(nonPCICard.product_id);\n}",
+ },
+ },
},
{
name: 'create',
@@ -771,6 +2336,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }",
markdown:
"## create\n\n`client.cards.create(type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET', account_token?: string, bulk_order_token?: string, card_program_token?: string, carrier?: { qr_code_url?: string; }, digital_card_art_token?: string, exp_month?: string, exp_year?: string, memo?: string, pin?: string, product_id?: string, replacement_account_token?: string, replacement_comment?: string, replacement_for?: string, replacement_substatus?: string, shipping_address?: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }, shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING', spend_limit?: number, spend_limit_duration?: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION', state?: 'OPEN' | 'PAUSED', Idempotency-Key?: string): object`\n\n**post** `/v1/cards`\n\nCreate a new virtual or physical card. Parameters `shipping_address` and `product_id` only apply to physical cards.\n\n\n### Parameters\n\n- `type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'`\n Card types:\n* `VIRTUAL` - Card will authorize at any merchant and can be added to a digital wallet like Apple Pay or Google Pay (if the card program is digital wallet-enabled).\n* `PHYSICAL` - Manufactured and sent to the cardholder. We offer white label branding, credit, ATM, PIN debit, chip/EMV, NFC and magstripe functionality. Reach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n* `SINGLE_USE` - Card is closed upon first successful authorization.\n* `MERCHANT_LOCKED` - Card is locked to the first merchant that successfully authorizes the card.\n* `UNLOCKED` - *[Deprecated]* Similar behavior to VIRTUAL cards, please use VIRTUAL instead.\n* `DIGITAL_WALLET` - *[Deprecated]* Similar behavior to VIRTUAL cards, please use VIRTUAL instead.\n\n- `account_token?: string`\n Globally unique identifier for the account that the card will be associated with. Required for programs enrolling users using the [/account\\_holders endpoint](https://docs.lithic.com/docs/account-holders-kyc). See [Managing Your Program](doc:managing-your-program) for more information.\n\n\n- `bulk_order_token?: string`\n Globally unique identifier for an existing bulk order to associate this card with. When specified, the card will be added to the bulk order for batch shipment. Only applicable to cards of type PHYSICAL\n\n- `card_program_token?: string`\n For card programs with more than one BIN range. This must be configured with Lithic before use. Identifies the card program/BIN range under which to create the card. If omitted, will utilize the program's default `card_program_token`. In Sandbox, use 00000000-0000-0000-1000-000000000000 and 00000000-0000-0000-2000-000000000000 to test creating cards on specific card programs.\n\n- `carrier?: { qr_code_url?: string; }`\n - `qr_code_url?: string`\n QR code URL to display on the card carrier. The `qr_code_url` field requires your domain to be allowlisted by Lithic before use. Contact Support to configure your QR code domain\n\n- `digital_card_art_token?: string`\n Specifies the digital card art to be displayed in the user’s digital wallet after tokenization. This artwork must be approved by Mastercard and configured by Lithic to use. See [Flexible Card Art Guide](https://docs.lithic.com/docs/about-digital-wallets#flexible-card-art).\n\n- `exp_month?: string`\n Two digit (MM) expiry month. If neither `exp_month` nor `exp_year` is provided, an expiration date will be generated.\n\n- `exp_year?: string`\n Four digit (yyyy) expiry year. If neither `exp_month` nor `exp_year` is provided, an expiration date will be generated.\n\n- `memo?: string`\n Friendly name to identify the card.\n\n- `pin?: string`\n Encrypted PIN block (in base64). Applies to cards of type `PHYSICAL` and `VIRTUAL`. See [Encrypted PIN Block](https://docs.lithic.com/docs/cards#encrypted-pin-block).\n\n- `product_id?: string`\n Only applicable to cards of type `PHYSICAL`. This must be configured with Lithic before use. Specifies the configuration (i.e., physical card art) that the card should be manufactured with.\n\n- `replacement_account_token?: string`\n Restricted field limited to select use cases. Lithic will reach out directly if this field should be used. Globally unique identifier for the replacement card's account. If this field is specified, `replacement_for` must also be specified. If `replacement_for` is specified and this field is omitted, the replacement card's account will be inferred from the card being replaced.\n\n- `replacement_comment?: string`\n Additional context or information related to the card that this card will replace.\n\n- `replacement_for?: string`\n Globally unique identifier for the card that this card will replace. If the card type is `PHYSICAL` it will be replaced by a `PHYSICAL` card. If the card type is `VIRTUAL` it will be replaced by a `VIRTUAL` card.\n\n- `replacement_substatus?: string`\n Card state substatus values for the card that this card will replace:\n* `LOST` - The physical card is no longer in the cardholder's possession due to being lost or never received by the cardholder.\n* `COMPROMISED` - Card information has been exposed, potentially leading to unauthorized access. This may involve physical card theft, cloning, or online data breaches.\n* `DAMAGED` - The physical card is not functioning properly, such as having chip failures or a demagnetized magnetic stripe.\n* `END_USER_REQUEST` - The cardholder requested the closure of the card for reasons unrelated to fraud or damage, such as switching to a different product or closing the account.\n* `ISSUER_REQUEST` - The issuer closed the card for reasons unrelated to fraud or damage, such as account inactivity, product or policy changes, or technology upgrades.\n* `NOT_ACTIVE` - The card hasn’t had any transaction activity for a specified period, applicable to statuses like `PAUSED` or `CLOSED`.\n* `SUSPICIOUS_ACTIVITY` - The card has one or more suspicious transactions or activities that require review. This can involve prompting the cardholder to confirm legitimate use or report confirmed fraud.\n* `INTERNAL_REVIEW` - The card is temporarily paused pending further internal review.\n* `EXPIRED` - The card has expired and has been closed without being reissued.\n* `UNDELIVERABLE` - The card cannot be delivered to the cardholder and has been returned.\n* `OTHER` - The reason for the status does not fall into any of the above categories. A comment should be provided to specify the reason.\n\n- `shipping_address?: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }`\n - `address1: string`\n Valid USPS routable address.\n - `city: string`\n City\n - `country: string`\n Uppercase ISO 3166-1 alpha-3 three character abbreviation.\n - `first_name: string`\n Customer's first name. This will be the first name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `last_name: string`\n Customer's surname (family name). This will be the last name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `postal_code: string`\n Postal code (formerly zipcode). For US addresses, either five-digit postal code or nine-digit postal code (ZIP+4) using the format 12345-1234.\n - `state: string`\n Uppercase ISO 3166-2 two character abbreviation for US and CA. Optional with a limit of 24 characters for other countries.\n - `address2?: string`\n Unit number (if applicable).\n - `email?: string`\n Email address to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n - `line2_text?: string`\n Text to be printed on line two of the physical card. Use of this field requires additional permissions.\n - `phone_number?: string`\n Cardholder's phone number in E.164 format to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n\n- `shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING'`\n Shipping method for the card. Only applies to cards of type PHYSICAL.\nUse of options besides `STANDARD` require additional permissions.\n\n* `STANDARD` - USPS regular mail or similar international option, with no tracking\n* `STANDARD_WITH_TRACKING` - USPS regular mail or similar international option, with tracking\n* `PRIORITY` - USPS Priority, 1-3 day shipping, with tracking\n* `EXPRESS` - FedEx or UPS depending on card manufacturer, Express, 3-day shipping, with tracking\n* `2_DAY` - FedEx or UPS depending on card manufacturer, 2-day shipping, with tracking\n* `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking\n* `BULK` - Card will be shipped as part of a bulk fulfillment order. The shipping method and timeline are inherited from the parent bulk order.\n\n- `spend_limit?: number`\n Amount (in cents) to limit approved authorizations (e.g. 100000 would be a $1,000 limit). Transaction requests above the spend limit will be declined. Note that a spend limit of 0 is effectively no limit, and should only be used to reset or remove a prior limit. Only a limit of 1 or above will result in declined transactions due to checks against the card limit.\n\n- `spend_limit_duration?: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'`\n Spend limit duration values:\n\n* `ANNUALLY` - Card will authorize transactions up to spend limit for the trailing year.\n* `FOREVER` - Card will authorize only up to spend limit for the entire lifetime of the card.\n* `MONTHLY` - Card will authorize transactions up to spend limit for the trailing month. To support recurring monthly payments, which can occur on different day every month, the time window we consider for monthly velocity starts 6 days after the current calendar date one month prior.\n* `TRANSACTION` - Card will authorize multiple transactions if each individual transaction is under the spend limit.\n\n- `state?: 'OPEN' | 'PAUSED'`\n Card state values:\n* `OPEN` - Card will approve authorizations (if they match card and account parameters).\n* `PAUSED` - Card will decline authorizations, but can be resumed at a later time.\n\n- `Idempotency-Key?: string`\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details with potentially PCI sensitive information for Enterprise customers\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst card = await client.cards.create({ type: 'VIRTUAL' });\n\nconsole.log(card);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Cards.New',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcard, err := client.Cards.New(context.TODO(), lithic.CardNewParams{\n\t\tType: lithic.F(lithic.CardNewParamsTypeVirtual),\n\t\tMemo: lithic.F("New Card"),\n\t\tSpendLimit: lithic.F(int64(1000)),\n\t\tSpendLimitDuration: lithic.F(lithic.SpendLimitDurationTransaction),\n\t\tState: lithic.F(lithic.CardNewParamsStateOpen),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/cards \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "type": "VIRTUAL",\n "bulk_order_token": "5e9483eb-8103-4e16-9794-2106111b2eca",\n "card_program_token": "5e9483eb-8103-4e16-9794-2106111b2eca",\n "digital_card_art_token": "5e9483eb-8103-4e16-9794-2106111b2eca",\n "exp_month": "06",\n "exp_year": "2027",\n "memo": "New Card",\n "product_id": "1",\n "replacement_account_token": "5e9483eb-8103-4e16-9794-2106111b2eca",\n "replacement_for": "5e9483eb-8103-4e16-9794-2106111b2eca"\n }\'',
+ },
+ java: {
+ method: 'cards().create',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Card;\nimport com.lithic.api.models.CardCreateParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n CardCreateParams params = CardCreateParams.builder()\n .type(CardCreateParams.Type.VIRTUAL)\n .build();\n Card card = client.cards().create(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'cards().create',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardCreateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: CardCreateParams = CardCreateParams.builder()\n .type(CardCreateParams.Type.VIRTUAL)\n .build()\n val card: Card = client.cards().create(params)\n}',
+ },
+ python: {
+ method: 'cards.create',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard = client.cards.create(\n type="VIRTUAL",\n memo="New Card",\n spend_limit=1000,\n spend_limit_duration="TRANSACTION",\n state="OPEN",\n)\nprint(card)',
+ },
+ ruby: {
+ method: 'cards.create',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard = lithic.cards.create(type: :VIRTUAL)\n\nputs(card)',
+ },
+ typescript: {
+ method: 'client.cards.create',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst card = await client.cards.create({\n type: 'VIRTUAL',\n memo: 'New Card',\n spend_limit: 1000,\n spend_limit_duration: 'TRANSACTION',\n state: 'OPEN',\n});\n\nconsole.log(card);",
+ },
+ },
},
{
name: 'retrieve',
@@ -785,6 +2386,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }",
markdown:
"## retrieve\n\n`client.cards.retrieve(card_token: string): object`\n\n**get** `/v1/cards/{card_token}`\n\nGet card configuration such as spend limit and state.\n\n### Parameters\n\n- `card_token: string`\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details with potentially PCI sensitive information for Enterprise customers\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst card = await client.cards.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(card);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Cards.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcard, err := client.Cards.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'cards().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Card;\nimport com.lithic.api.models.CardRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n Card card = client.cards().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'cards().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val card: Card = client.cards().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'cards.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard = client.cards.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(card)',
+ },
+ ruby: {
+ method: 'cards.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard = lithic.cards.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(card)',
+ },
+ typescript: {
+ method: 'client.cards.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst card = await client.cards.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(card);",
+ },
+ },
},
{
name: 'update',
@@ -812,64 +2449,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }",
markdown:
"## update\n\n`client.cards.update(card_token: string, comment?: string, digital_card_art_token?: string, memo?: string, network_program_token?: string, pin?: string, pin_status?: 'OK', spend_limit?: number, spend_limit_duration?: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION', state?: 'CLOSED' | 'OPEN' | 'PAUSED', substatus?: string): object`\n\n**patch** `/v1/cards/{card_token}`\n\nUpdate the specified properties of the card. Unsupplied properties will remain unchanged.\n\n*Note: setting a card to a `CLOSED` state is a final action that cannot be undone.*\n\n\n### Parameters\n\n- `card_token: string`\n\n- `comment?: string`\n Additional context or information related to the card.\n\n- `digital_card_art_token?: string`\n Specifies the digital card art to be displayed in the user’s digital wallet after tokenization. This artwork must be approved by Mastercard and configured by Lithic to use. See [Flexible Card Art Guide](https://docs.lithic.com/docs/about-digital-wallets#flexible-card-art).\n\n- `memo?: string`\n Friendly name to identify the card.\n\n- `network_program_token?: string`\n Globally unique identifier for the card's network program. Currently applicable to Visa cards participating in Account Level Management only.\n\n- `pin?: string`\n Encrypted PIN block (in base64). Only applies to cards of type `PHYSICAL` and `VIRTUAL`. Changing PIN also resets PIN status to `OK`. See [Encrypted PIN Block](https://docs.lithic.com/docs/cards#encrypted-pin-block).\n\n- `pin_status?: 'OK'`\n Indicates if a card is blocked due a PIN status issue (e.g. excessive incorrect attempts). Can only be set to `OK` to unblock a card.\n\n- `spend_limit?: number`\n Amount (in cents) to limit approved authorizations (e.g. 100000 would be a $1,000 limit). Transaction requests above the spend limit will be declined. Note that a spend limit of 0 is effectively no limit, and should only be used to reset or remove a prior limit. Only a limit of 1 or above will result in declined transactions due to checks against the card limit.\n\n- `spend_limit_duration?: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'`\n Spend limit duration values:\n\n* `ANNUALLY` - Card will authorize transactions up to spend limit for the trailing year.\n* `FOREVER` - Card will authorize only up to spend limit for the entire lifetime of the card.\n* `MONTHLY` - Card will authorize transactions up to spend limit for the trailing month. To support recurring monthly payments, which can occur on different day every month, the time window we consider for monthly velocity starts 6 days after the current calendar date one month prior.\n* `TRANSACTION` - Card will authorize multiple transactions if each individual transaction is under the spend limit.\n\n- `state?: 'CLOSED' | 'OPEN' | 'PAUSED'`\n Card state values:\n* `CLOSED` - Card will no longer approve authorizations. Closing a card cannot be undone.\n* `OPEN` - Card will approve authorizations (if they match card and account parameters).\n* `PAUSED` - Card will decline authorizations, but can be resumed at a later time.\n\n- `substatus?: string`\n Card state substatus values:\n* `LOST` - The physical card is no longer in the cardholder's possession due to being lost or never received by the cardholder.\n* `COMPROMISED` - Card information has been exposed, potentially leading to unauthorized access. This may involve physical card theft, cloning, or online data breaches.\n* `DAMAGED` - The physical card is not functioning properly, such as having chip failures or a demagnetized magnetic stripe.\n* `END_USER_REQUEST` - The cardholder requested the closure of the card for reasons unrelated to fraud or damage, such as switching to a different product or closing the account.\n* `ISSUER_REQUEST` - The issuer closed the card for reasons unrelated to fraud or damage, such as account inactivity, product or policy changes, or technology upgrades.\n* `NOT_ACTIVE` - The card hasn’t had any transaction activity for a specified period, applicable to statuses like `PAUSED` or `CLOSED`.\n* `SUSPICIOUS_ACTIVITY` - The card has one or more suspicious transactions or activities that require review. This can involve prompting the cardholder to confirm legitimate use or report confirmed fraud.\n* `INTERNAL_REVIEW` - The card is temporarily paused pending further internal review.\n* `EXPIRED` - The card has expired and has been closed without being reissued.\n* `UNDELIVERABLE` - The card cannot be delivered to the cardholder and has been returned.\n* `OTHER` - The reason for the status does not fall into any of the above categories. A comment should be provided to specify the reason.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details with potentially PCI sensitive information for Enterprise customers\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst card = await client.cards.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(card);\n```",
- },
- {
- name: 'list',
- endpoint: '/v1/cards',
- httpMethod: 'get',
- summary: 'List cards',
- description: 'List cards.',
- stainlessPath: '(resource) cards > (method) list',
- qualified: 'client.cards.list',
- params: [
- 'account_token?: string;',
- 'begin?: string;',
- 'end?: string;',
- 'ending_before?: string;',
- 'memo?: string;',
- 'page_size?: number;',
- 'starting_after?: string;',
- "state?: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT';",
- ],
- response:
- "{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }",
- markdown:
- "## list\n\n`client.cards.list(account_token?: string, begin?: string, end?: string, ending_before?: string, memo?: string, page_size?: number, starting_after?: string, state?: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'): { token: string; account_token: string; card_program_token: string; created: string; funding: object; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: spend_limit_duration; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n\n**get** `/v1/cards`\n\nList cards.\n\n### Parameters\n\n- `account_token?: string`\n Returns cards associated with the specified account.\n\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `memo?: string`\n Returns cards containing the specified partial or full memo text.\n\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `state?: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'`\n Returns cards with the specified state.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details without PCI information\n\n - `token: string`\n - `account_token: string`\n - `card_program_token: string`\n - `created: string`\n - `funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }`\n - `last_four: string`\n - `pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'`\n - `spend_limit: number`\n - `spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'`\n - `state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'`\n - `type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'`\n - `auth_rule_tokens?: string[]`\n - `bulk_order_token?: string`\n - `cardholder_currency?: string`\n - `comment?: string`\n - `digital_card_art_token?: string`\n - `exp_month?: string`\n - `exp_year?: string`\n - `hostname?: string`\n - `memo?: string`\n - `network_program_token?: string`\n - `pending_commands?: string[]`\n - `product_id?: string`\n - `replacement_for?: string`\n - `substatus?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const nonPCICard of client.cards.list()) {\n console.log(nonPCICard);\n}\n```",
- },
- {
- name: 'convert_physical',
- endpoint: '/v1/cards/{card_token}/convert_physical',
- httpMethod: 'post',
- summary: 'Convert virtual to physical card',
- description:
- "Convert a virtual card into a physical card and manufacture it.\nCustomer must supply relevant fields for physical card creation including `product_id`, `carrier`, `shipping_method`, and `shipping_address`.\nThe card token will be unchanged. The card's type will be altered to `PHYSICAL`.\nThe card will be set to state `PENDING_FULFILLMENT` and fulfilled at next fulfillment cycle.\nVirtual cards created on card programs which do not support physical cards cannot be converted. The card program cannot be changed as part of the conversion. Cards must be in an `OPEN` state to be converted.\nOnly applies to cards of type `VIRTUAL` (or existing cards with deprecated types of `DIGITAL_WALLET` and `UNLOCKED`).",
- stainlessPath: '(resource) cards > (method) convert_physical',
- qualified: 'client.cards.convertPhysical',
- params: [
- 'card_token: string;',
- 'shipping_address: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; };',
- 'carrier?: { qr_code_url?: string; };',
- 'product_id?: string;',
- "shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING';",
- ],
- response:
- "{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }",
- markdown:
- "## convert_physical\n\n`client.cards.convertPhysical(card_token: string, shipping_address: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }, carrier?: { qr_code_url?: string; }, product_id?: string, shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING'): object`\n\n**post** `/v1/cards/{card_token}/convert_physical`\n\nConvert a virtual card into a physical card and manufacture it.\nCustomer must supply relevant fields for physical card creation including `product_id`, `carrier`, `shipping_method`, and `shipping_address`.\nThe card token will be unchanged. The card's type will be altered to `PHYSICAL`.\nThe card will be set to state `PENDING_FULFILLMENT` and fulfilled at next fulfillment cycle.\nVirtual cards created on card programs which do not support physical cards cannot be converted. The card program cannot be changed as part of the conversion. Cards must be in an `OPEN` state to be converted.\nOnly applies to cards of type `VIRTUAL` (or existing cards with deprecated types of `DIGITAL_WALLET` and `UNLOCKED`).\n\n### Parameters\n\n- `card_token: string`\n\n- `shipping_address: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }`\n The shipping address this card will be sent to.\n - `address1: string`\n Valid USPS routable address.\n - `city: string`\n City\n - `country: string`\n Uppercase ISO 3166-1 alpha-3 three character abbreviation.\n - `first_name: string`\n Customer's first name. This will be the first name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `last_name: string`\n Customer's surname (family name). This will be the last name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `postal_code: string`\n Postal code (formerly zipcode). For US addresses, either five-digit postal code or nine-digit postal code (ZIP+4) using the format 12345-1234.\n - `state: string`\n Uppercase ISO 3166-2 two character abbreviation for US and CA. Optional with a limit of 24 characters for other countries.\n - `address2?: string`\n Unit number (if applicable).\n - `email?: string`\n Email address to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n - `line2_text?: string`\n Text to be printed on line two of the physical card. Use of this field requires additional permissions.\n - `phone_number?: string`\n Cardholder's phone number in E.164 format to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n\n- `carrier?: { qr_code_url?: string; }`\n If omitted, the previous carrier will be used.\n - `qr_code_url?: string`\n QR code URL to display on the card carrier. The `qr_code_url` field requires your domain to be allowlisted by Lithic before use. Contact Support to configure your QR code domain\n\n- `product_id?: string`\n Specifies the configuration (e.g. physical card art) that the card should be manufactured with, and only applies to cards of type `PHYSICAL`. This must be configured with Lithic before use.\n\n\n- `shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING'`\n Shipping method for the card. Only applies to cards of type PHYSICAL.\nUse of options besides `STANDARD` require additional permissions.\n\n* `STANDARD` - USPS regular mail or similar international option, with no tracking\n* `STANDARD_WITH_TRACKING` - USPS regular mail or similar international option, with tracking\n* `PRIORITY` - USPS Priority, 1-3 day shipping, with tracking\n* `EXPRESS` - FedEx or UPS depending on card manufacturer, Express, 3-day shipping, with tracking\n* `2_DAY` - FedEx or UPS depending on card manufacturer, 2-day shipping, with tracking\n* `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking\n* `BULK` - Card will be shipped as part of a bulk fulfillment order. The shipping method and timeline are inherited from the parent bulk order.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details with potentially PCI sensitive information for Enterprise customers\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst card = await client.cards.convertPhysical('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { shipping_address: {\n address1: '5 Broad Street',\n city: 'NEW YORK',\n country: 'USA',\n first_name: 'Janet',\n last_name: 'Yellen',\n postal_code: '10001',\n state: 'NY',\n} });\n\nconsole.log(card);\n```",
- },
- {
- name: 'embed',
- endpoint: '/v1/embed/card',
- httpMethod: 'get',
- summary: 'Embedded card UI',
- description:
- 'Handling full card PANs and CVV codes requires that you comply with the Payment Card Industry Data Security Standards (PCI DSS). Some clients choose to reduce their compliance obligations by leveraging our embedded card UI solution documented below.\n\nIn this setup, PANs and CVV codes are presented to the end-user via a card UI that we provide, optionally styled in the customer\'s branding using a specified css stylesheet. A user\'s browser makes the request directly to api.lithic.com, so card PANs and CVVs never touch the API customer\'s servers while full card data is displayed to their end-users. The response contains an HTML document (see Embedded Card UI or Changelog for upcoming changes in January). This means that the url for the request can be inserted straight into the `src` attribute of an iframe.\n\n```html\n\n```\n\nYou should compute the request payload on the server side. You can render it (or the whole iframe) on the server or make an ajax call from your front end code, but **do not ever embed your API key into front end code, as doing so introduces a serious security vulnerability**.\n',
- stainlessPath: '(resource) cards > (method) embed',
- qualified: 'client.cards.embed',
- params: ['embed_request: string;', 'hmac: string;'],
- response: 'string',
- markdown:
- "## embed\n\n`client.cards.embed(embed_request: string, hmac: string): string`\n\n**get** `/v1/embed/card`\n\nHandling full card PANs and CVV codes requires that you comply with the Payment Card Industry Data Security Standards (PCI DSS). Some clients choose to reduce their compliance obligations by leveraging our embedded card UI solution documented below.\n\nIn this setup, PANs and CVV codes are presented to the end-user via a card UI that we provide, optionally styled in the customer's branding using a specified css stylesheet. A user's browser makes the request directly to api.lithic.com, so card PANs and CVVs never touch the API customer's servers while full card data is displayed to their end-users. The response contains an HTML document (see Embedded Card UI or Changelog for upcoming changes in January). This means that the url for the request can be inserted straight into the `src` attribute of an iframe.\n\n```html\n\n```\n\nYou should compute the request payload on the server side. You can render it (or the whole iframe) on the server or make an ajax call from your front end code, but **do not ever embed your API key into front end code, as doing so introduces a serious security vulnerability**.\n\n\n### Parameters\n\n- `embed_request: string`\n A base64 encoded JSON string of an EmbedRequest to specify which card to load.\n\n- `hmac: string`\n SHA256 HMAC of the embed_request JSON string with base64 digest.\n\n### Returns\n\n- `string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.cards.embed({ embed_request: 'embed_request', hmac: 'hmac' });\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Cards.Update',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcard, err := client.Cards.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardUpdateParams{\n\t\t\tMemo: lithic.F("Updated Name"),\n\t\t\tSpendLimit: lithic.F(int64(100)),\n\t\t\tSpendLimitDuration: lithic.F(lithic.SpendLimitDurationForever),\n\t\t\tState: lithic.F(lithic.CardUpdateParamsStateOpen),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "digital_card_art_token": "00000000-0000-0000-1000-000000000000",\n "memo": "Updated Name",\n "network_program_token": "00000000-0000-0000-1000-000000000000"\n }\'',
+ },
+ java: {
+ method: 'cards().update',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Card;\nimport com.lithic.api.models.CardUpdateParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n Card card = client.cards().update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'cards().update',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardUpdateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val card: Card = client.cards().update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'cards.update',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard = client.cards.update(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n memo="Updated Name",\n spend_limit=100,\n spend_limit_duration="FOREVER",\n state="OPEN",\n)\nprint(card)',
+ },
+ ruby: {
+ method: 'cards.update',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard = lithic.cards.update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(card)',
+ },
+ typescript: {
+ method: 'client.cards.update',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst card = await client.cards.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n memo: 'Updated Name',\n spend_limit: 100,\n spend_limit_duration: 'FOREVER',\n state: 'OPEN',\n});\n\nconsole.log(card);",
+ },
+ },
},
{
name: 'provision',
@@ -893,6 +2508,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'{ provisioning_payload?: string | { activationData?: string; encryptedData?: string; ephemeralPublicKey?: string; }; }',
markdown:
"## provision\n\n`client.cards.provision(card_token: string, certificate?: string, client_device_id?: string, client_wallet_account_id?: string, digital_wallet?: 'APPLE_PAY' | 'GOOGLE_PAY' | 'SAMSUNG_PAY', nonce?: string, nonce_signature?: string): { provisioning_payload?: string | provision_response; }`\n\n**post** `/v1/cards/{card_token}/provision`\n\nAllow your cardholders to directly add payment cards to the device's digital wallet (e.g. Apple Pay) with one touch from your app.\n\nThis requires some additional setup and configuration. Please [Contact Us](https://lithic.com/contact) or your Customer Success representative for more information.\n\n\n### Parameters\n\n- `card_token: string`\n\n- `certificate?: string`\n Only applicable if `digital_wallet` is `APPLE_PAY`. Omit to receive only `activationData` in the response. Apple's public leaf certificate. Base64 encoded in PEM format with headers `(-----BEGIN CERTIFICATE-----)` and trailers omitted. Provided by the device's wallet.\n\n- `client_device_id?: string`\n Only applicable if `digital_wallet` is `GOOGLE_PAY` or `SAMSUNG_PAY` and the card is on the Visa network. Stable device identification set by the wallet provider.\n\n- `client_wallet_account_id?: string`\n Only applicable if `digital_wallet` is `GOOGLE_PAY` or `SAMSUNG_PAY` and the card is on the Visa network. Consumer ID that identifies the wallet account holder entity.\n\n- `digital_wallet?: 'APPLE_PAY' | 'GOOGLE_PAY' | 'SAMSUNG_PAY'`\n Name of digital wallet provider.\n\n- `nonce?: string`\n Only applicable if `digital_wallet` is `APPLE_PAY`. Omit to receive only `activationData` in the response. Base64 cryptographic nonce provided by the device's wallet.\n\n- `nonce_signature?: string`\n Only applicable if `digital_wallet` is `APPLE_PAY`. Omit to receive only `activationData` in the response. Base64 cryptographic nonce provided by the device's wallet.\n\n### Returns\n\n- `{ provisioning_payload?: string | { activationData?: string; encryptedData?: string; ephemeralPublicKey?: string; }; }`\n\n - `provisioning_payload?: string | { activationData?: string; encryptedData?: string; ephemeralPublicKey?: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.cards.provision('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Cards.Provision',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Cards.Provision(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardProvisionParams{\n\t\t\tDigitalWallet: lithic.F(lithic.CardProvisionParamsDigitalWalletGooglePay),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.ProvisioningPayload)\n}\n',
+ },
+ http: {
+ example:
+ "curl https://api.lithic.com/v1/cards/$CARD_TOKEN/provision \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ },
+ java: {
+ method: 'cards().provision',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.CardProvisionParams;\nimport com.lithic.api.models.CardProvisionResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n CardProvisionResponse response = client.cards().provision("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'cards().provision',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardProvisionParams\nimport com.lithic.api.models.CardProvisionResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: CardProvisionResponse = client.cards().provision("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'cards.provision',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.cards.provision(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n digital_wallet="GOOGLE_PAY",\n)\nprint(response.provisioning_payload)',
+ },
+ ruby: {
+ method: 'cards.provision',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.cards.provision("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.cards.provision',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.cards.provision('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n digital_wallet: 'GOOGLE_PAY',\n});\n\nconsole.log(response.provisioning_payload);",
+ },
+ },
},
{
name: 'reissue',
@@ -914,6 +2565,142 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }",
markdown:
"## reissue\n\n`client.cards.reissue(card_token: string, carrier?: { qr_code_url?: string; }, product_id?: string, shipping_address?: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }, shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING'): object`\n\n**post** `/v1/cards/{card_token}/reissue`\n\nInitiate print and shipment of a duplicate physical card (e.g. card is physically damaged). The PAN, expiry, and CVC2 will remain the same and the original card can continue to be used until the new card is activated.\nOnly applies to cards of type `PHYSICAL`. A card can be reissued or renewed a total of 8 times.\n\n### Parameters\n\n- `card_token: string`\n\n- `carrier?: { qr_code_url?: string; }`\n If omitted, the previous carrier will be used.\n - `qr_code_url?: string`\n QR code URL to display on the card carrier. The `qr_code_url` field requires your domain to be allowlisted by Lithic before use. Contact Support to configure your QR code domain\n\n- `product_id?: string`\n Specifies the configuration (e.g. physical card art) that the card should be manufactured with, and only applies to cards of type `PHYSICAL`. This must be configured with Lithic before use.\n\n\n- `shipping_address?: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }`\n If omitted, the previous shipping address will be used.\n - `address1: string`\n Valid USPS routable address.\n - `city: string`\n City\n - `country: string`\n Uppercase ISO 3166-1 alpha-3 three character abbreviation.\n - `first_name: string`\n Customer's first name. This will be the first name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `last_name: string`\n Customer's surname (family name). This will be the last name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `postal_code: string`\n Postal code (formerly zipcode). For US addresses, either five-digit postal code or nine-digit postal code (ZIP+4) using the format 12345-1234.\n - `state: string`\n Uppercase ISO 3166-2 two character abbreviation for US and CA. Optional with a limit of 24 characters for other countries.\n - `address2?: string`\n Unit number (if applicable).\n - `email?: string`\n Email address to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n - `line2_text?: string`\n Text to be printed on line two of the physical card. Use of this field requires additional permissions.\n - `phone_number?: string`\n Cardholder's phone number in E.164 format to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n\n- `shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING'`\n Shipping method for the card. Only applies to cards of type PHYSICAL.\nUse of options besides `STANDARD` require additional permissions.\n\n* `STANDARD` - USPS regular mail or similar international option, with no tracking\n* `STANDARD_WITH_TRACKING` - USPS regular mail or similar international option, with tracking\n* `PRIORITY` - USPS Priority, 1-3 day shipping, with tracking\n* `EXPRESS` - FedEx or UPS depending on card manufacturer, Express, 3-day shipping, with tracking\n* `2_DAY` - FedEx or UPS depending on card manufacturer, 2-day shipping, with tracking\n* `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking\n* `BULK` - Card will be shipped as part of a bulk fulfillment order. The shipping method and timeline are inherited from the parent bulk order.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details with potentially PCI sensitive information for Enterprise customers\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst card = await client.cards.reissue('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(card);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Cards.Reissue',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n\t"github.com/lithic-com/lithic-go/shared"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcard, err := client.Cards.Reissue(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardReissueParams{\n\t\t\tCarrier: lithic.F(shared.CarrierParam{\n\t\t\t\tQrCodeURL: lithic.F("https://lithic.com/activate-card/1"),\n\t\t\t}),\n\t\t\tProductID: lithic.F("100"),\n\t\t\tShippingAddress: lithic.F(shared.ShippingAddressParam{\n\t\t\t\tAddress1: lithic.F("5 Broad Street"),\n\t\t\t\tAddress2: lithic.F("Unit 5A"),\n\t\t\t\tCity: lithic.F("NEW YORK"),\n\t\t\t\tCountry: lithic.F("USA"),\n\t\t\t\tFirstName: lithic.F("Janet"),\n\t\t\t\tLastName: lithic.F("Yellen"),\n\t\t\t\tPostalCode: lithic.F("10001"),\n\t\t\t\tState: lithic.F("NY"),\n\t\t\t}),\n\t\t\tShippingMethod: lithic.F(lithic.CardReissueParamsShippingMethodStandard),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card)\n}\n',
+ },
+ http: {
+ example:
+ "curl https://api.lithic.com/v1/cards/$CARD_TOKEN/reissue \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ },
+ java: {
+ method: 'cards().reissue',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Card;\nimport com.lithic.api.models.CardReissueParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n Card card = client.cards().reissue("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'cards().reissue',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardReissueParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val card: Card = client.cards().reissue("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'cards.reissue',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard = client.cards.reissue(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n carrier={\n "qr_code_url": "https://lithic.com/activate-card/1"\n },\n product_id="100",\n shipping_address={\n "address1": "5 Broad Street",\n "address2": "Unit 5A",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Janet",\n "last_name": "Yellen",\n "postal_code": "10001",\n "state": "NY",\n },\n shipping_method="STANDARD",\n)\nprint(card)',
+ },
+ ruby: {
+ method: 'cards.reissue',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard = lithic.cards.reissue("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(card)',
+ },
+ typescript: {
+ method: 'client.cards.reissue',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst card = await client.cards.reissue('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n carrier: { qr_code_url: 'https://lithic.com/activate-card/1' },\n product_id: '100',\n shipping_address: {\n address1: '5 Broad Street',\n address2: 'Unit 5A',\n city: 'NEW YORK',\n country: 'USA',\n first_name: 'Janet',\n last_name: 'Yellen',\n postal_code: '10001',\n state: 'NY',\n },\n shipping_method: 'STANDARD',\n});\n\nconsole.log(card);",
+ },
+ },
+ },
+ {
+ name: 'embed',
+ endpoint: '/v1/embed/card',
+ httpMethod: 'get',
+ summary: 'Embedded card UI',
+ description:
+ 'Handling full card PANs and CVV codes requires that you comply with the Payment Card Industry Data Security Standards (PCI DSS). Some clients choose to reduce their compliance obligations by leveraging our embedded card UI solution documented below.\n\nIn this setup, PANs and CVV codes are presented to the end-user via a card UI that we provide, optionally styled in the customer\'s branding using a specified css stylesheet. A user\'s browser makes the request directly to api.lithic.com, so card PANs and CVVs never touch the API customer\'s servers while full card data is displayed to their end-users. The response contains an HTML document (see Embedded Card UI or Changelog for upcoming changes in January). This means that the url for the request can be inserted straight into the `src` attribute of an iframe.\n\n```html\n\n```\n\nYou should compute the request payload on the server side. You can render it (or the whole iframe) on the server or make an ajax call from your front end code, but **do not ever embed your API key into front end code, as doing so introduces a serious security vulnerability**.\n',
+ stainlessPath: '(resource) cards > (method) embed',
+ qualified: 'client.cards.embed',
+ params: ['embed_request: string;', 'hmac: string;'],
+ response: 'string',
+ markdown:
+ "## embed\n\n`client.cards.embed(embed_request: string, hmac: string): string`\n\n**get** `/v1/embed/card`\n\nHandling full card PANs and CVV codes requires that you comply with the Payment Card Industry Data Security Standards (PCI DSS). Some clients choose to reduce their compliance obligations by leveraging our embedded card UI solution documented below.\n\nIn this setup, PANs and CVV codes are presented to the end-user via a card UI that we provide, optionally styled in the customer's branding using a specified css stylesheet. A user's browser makes the request directly to api.lithic.com, so card PANs and CVVs never touch the API customer's servers while full card data is displayed to their end-users. The response contains an HTML document (see Embedded Card UI or Changelog for upcoming changes in January). This means that the url for the request can be inserted straight into the `src` attribute of an iframe.\n\n```html\n\n```\n\nYou should compute the request payload on the server side. You can render it (or the whole iframe) on the server or make an ajax call from your front end code, but **do not ever embed your API key into front end code, as doing so introduces a serious security vulnerability**.\n\n\n### Parameters\n\n- `embed_request: string`\n A base64 encoded JSON string of an EmbedRequest to specify which card to load.\n\n- `hmac: string`\n SHA256 HMAC of the embed_request JSON string with base64 digest.\n\n### Returns\n\n- `string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.cards.embed({ embed_request: 'embed_request', hmac: 'hmac' });\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Cards.Embed',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Cards.Embed(context.TODO(), lithic.CardEmbedParams{\n\t\tEmbedRequest: lithic.F("embed_request"),\n\t\tHmac: lithic.F("hmac"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response)\n}\n',
+ },
+ http: {
+ example: 'curl https://api.lithic.com/v1/embed/card \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'cards().embed',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.CardEmbedParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n CardEmbedParams params = CardEmbedParams.builder()\n .embedRequest("embed_request")\n .hmac("hmac")\n .build();\n String response = client.cards().embed(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'cards().embed',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardEmbedParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: CardEmbedParams = CardEmbedParams.builder()\n .embedRequest("embed_request")\n .hmac("hmac")\n .build()\n val response: String = client.cards().embed(params)\n}',
+ },
+ python: {
+ method: 'cards.embed',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.cards.embed(\n embed_request="embed_request",\n hmac="hmac",\n)\nprint(response)',
+ },
+ ruby: {
+ method: 'cards.embed',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.cards.embed(embed_request: "embed_request", hmac: "hmac")\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.cards.embed',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.cards.embed({ embed_request: 'embed_request', hmac: 'hmac' });\n\nconsole.log(response);",
+ },
+ },
+ },
+ {
+ name: 'retrieve_spend_limits',
+ endpoint: '/v1/cards/{card_token}/spend_limits',
+ httpMethod: 'get',
+ summary: "Get card's available spend limit",
+ description:
+ "Get a Card's available spend limit, which is based on the spend limit configured on the Card and the amount already spent over the spend limit's duration. For example, if the Card has a monthly spend limit of $1000 configured, and has spent $600 in the last month, the available spend limit returned would be $400.",
+ stainlessPath: '(resource) cards > (method) retrieve_spend_limits',
+ qualified: 'client.cards.retrieveSpendLimits',
+ params: ['card_token: string;'],
+ response:
+ '{ available_spend_limit: { annually?: number; forever?: number; monthly?: number; }; spend_limit?: { annually?: number; forever?: number; monthly?: number; }; spend_velocity?: { annually?: number; forever?: number; monthly?: number; }; }',
+ markdown:
+ "## retrieve_spend_limits\n\n`client.cards.retrieveSpendLimits(card_token: string): { available_spend_limit: object; spend_limit?: object; spend_velocity?: object; }`\n\n**get** `/v1/cards/{card_token}/spend_limits`\n\nGet a Card's available spend limit, which is based on the spend limit configured on the Card and the amount already spent over the spend limit's duration. For example, if the Card has a monthly spend limit of $1000 configured, and has spent $600 in the last month, the available spend limit returned would be $400.\n\n### Parameters\n\n- `card_token: string`\n\n### Returns\n\n- `{ available_spend_limit: { annually?: number; forever?: number; monthly?: number; }; spend_limit?: { annually?: number; forever?: number; monthly?: number; }; spend_velocity?: { annually?: number; forever?: number; monthly?: number; }; }`\n\n - `available_spend_limit: { annually?: number; forever?: number; monthly?: number; }`\n - `spend_limit?: { annually?: number; forever?: number; monthly?: number; }`\n - `spend_velocity?: { annually?: number; forever?: number; monthly?: number; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst cardSpendLimits = await client.cards.retrieveSpendLimits('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(cardSpendLimits);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Cards.GetSpendLimits',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcardSpendLimits, err := client.Cards.GetSpendLimits(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", cardSpendLimits.AvailableSpendLimit)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN/spend_limits \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'cards().retrieveSpendLimits',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.CardRetrieveSpendLimitsParams;\nimport com.lithic.api.models.CardSpendLimits;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n CardSpendLimits cardSpendLimits = client.cards().retrieveSpendLimits("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'cards().retrieveSpendLimits',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardRetrieveSpendLimitsParams\nimport com.lithic.api.models.CardSpendLimits\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val cardSpendLimits: CardSpendLimits = client.cards().retrieveSpendLimits("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'cards.retrieve_spend_limits',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard_spend_limits = client.cards.retrieve_spend_limits(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(card_spend_limits.available_spend_limit)',
+ },
+ ruby: {
+ method: 'cards.retrieve_spend_limits',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard_spend_limits = lithic.cards.retrieve_spend_limits("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(card_spend_limits)',
+ },
+ typescript: {
+ method: 'client.cards.retrieveSpendLimits',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst cardSpendLimits = await client.cards.retrieveSpendLimits(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(cardSpendLimits.available_spend_limit);",
+ },
+ },
},
{
name: 'renew',
@@ -937,36 +2724,150 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }",
markdown:
"## renew\n\n`client.cards.renew(card_token: string, shipping_address: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }, carrier?: { qr_code_url?: string; }, exp_month?: string, exp_year?: string, product_id?: string, shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING'): object`\n\n**post** `/v1/cards/{card_token}/renew`\n\nApplies to card types `PHYSICAL` and `VIRTUAL`.\nFor `PHYSICAL`, creates a new card with the same card token and PAN, but updated expiry and CVC2 code. The original card will keep working for card-present transactions until the new card is activated. For card-not-present transactions, the original card details (expiry, CVC2) will also keep working until the new card is activated.\nA `PHYSICAL` card can be reissued or renewed a total of 8 times.\nFor `VIRTUAL`, the card will retain the same card token and PAN and receive an updated expiry and CVC2 code.\n`product_id`, `shipping_method`, `shipping_address`, `carrier` are only relevant for renewing `PHYSICAL` cards.\n\n### Parameters\n\n- `card_token: string`\n\n- `shipping_address: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }`\n The shipping address this card will be sent to.\n - `address1: string`\n Valid USPS routable address.\n - `city: string`\n City\n - `country: string`\n Uppercase ISO 3166-1 alpha-3 three character abbreviation.\n - `first_name: string`\n Customer's first name. This will be the first name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `last_name: string`\n Customer's surname (family name). This will be the last name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `postal_code: string`\n Postal code (formerly zipcode). For US addresses, either five-digit postal code or nine-digit postal code (ZIP+4) using the format 12345-1234.\n - `state: string`\n Uppercase ISO 3166-2 two character abbreviation for US and CA. Optional with a limit of 24 characters for other countries.\n - `address2?: string`\n Unit number (if applicable).\n - `email?: string`\n Email address to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n - `line2_text?: string`\n Text to be printed on line two of the physical card. Use of this field requires additional permissions.\n - `phone_number?: string`\n Cardholder's phone number in E.164 format to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n\n- `carrier?: { qr_code_url?: string; }`\n If omitted, the previous carrier will be used.\n - `qr_code_url?: string`\n QR code URL to display on the card carrier. The `qr_code_url` field requires your domain to be allowlisted by Lithic before use. Contact Support to configure your QR code domain\n\n- `exp_month?: string`\n Two digit (MM) expiry month. If neither `exp_month` nor `exp_year` is provided, an expiration date six years in the future will be generated.\n\n- `exp_year?: string`\n Four digit (yyyy) expiry year. If neither `exp_month` nor `exp_year` is provided, an expiration date six years in the future will be generated.\n\n- `product_id?: string`\n Specifies the configuration (e.g. physical card art) that the card should be manufactured with, and only applies to cards of type `PHYSICAL`. This must be configured with Lithic before use.\n\n\n- `shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING'`\n Shipping method for the card. Only applies to cards of type PHYSICAL.\nUse of options besides `STANDARD` require additional permissions.\n\n* `STANDARD` - USPS regular mail or similar international option, with no tracking\n* `STANDARD_WITH_TRACKING` - USPS regular mail or similar international option, with tracking\n* `PRIORITY` - USPS Priority, 1-3 day shipping, with tracking\n* `EXPRESS` - FedEx or UPS depending on card manufacturer, Express, 3-day shipping, with tracking\n* `2_DAY` - FedEx or UPS depending on card manufacturer, 2-day shipping, with tracking\n* `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking\n* `BULK` - Card will be shipped as part of a bulk fulfillment order. The shipping method and timeline are inherited from the parent bulk order.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details with potentially PCI sensitive information for Enterprise customers\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst card = await client.cards.renew('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { shipping_address: {\n address1: '5 Broad Street',\n city: 'NEW YORK',\n country: 'USA',\n first_name: 'Janet',\n last_name: 'Yellen',\n postal_code: '10001',\n state: 'NY',\n} });\n\nconsole.log(card);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Cards.Renew',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n\t"github.com/lithic-com/lithic-go/shared"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcard, err := client.Cards.Renew(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardRenewParams{\n\t\t\tShippingAddress: lithic.F(shared.ShippingAddressParam{\n\t\t\t\tAddress1: lithic.F("5 Broad Street"),\n\t\t\t\tAddress2: lithic.F("Unit 5A"),\n\t\t\t\tCity: lithic.F("NEW YORK"),\n\t\t\t\tCountry: lithic.F("USA"),\n\t\t\t\tFirstName: lithic.F("Janet"),\n\t\t\t\tLastName: lithic.F("Yellen"),\n\t\t\t\tPostalCode: lithic.F("10001"),\n\t\t\t\tState: lithic.F("NY"),\n\t\t\t}),\n\t\t\tCarrier: lithic.F(shared.CarrierParam{\n\t\t\t\tQrCodeURL: lithic.F("https://lithic.com/activate-card/1"),\n\t\t\t}),\n\t\t\tProductID: lithic.F("100"),\n\t\t\tShippingMethod: lithic.F(lithic.CardRenewParamsShippingMethodStandard),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN/renew \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "shipping_address": {\n "address1": "5 Broad Street",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Janet",\n "last_name": "Yellen",\n "postal_code": "10001",\n "state": "NY",\n "address2": "Unit 5A"\n },\n "exp_month": "06",\n "exp_year": "2027"\n }\'',
+ },
+ java: {
+ method: 'cards().renew',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Card;\nimport com.lithic.api.models.CardRenewParams;\nimport com.lithic.api.models.ShippingAddress;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n CardRenewParams params = CardRenewParams.builder()\n .cardToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .shippingAddress(ShippingAddress.builder()\n .address1("5 Broad Street")\n .city("NEW YORK")\n .country("USA")\n .firstName("Janet")\n .lastName("Yellen")\n .postalCode("10001")\n .state("NY")\n .build())\n .build();\n Card card = client.cards().renew(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'cards().renew',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardRenewParams\nimport com.lithic.api.models.ShippingAddress\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: CardRenewParams = CardRenewParams.builder()\n .cardToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .shippingAddress(ShippingAddress.builder()\n .address1("5 Broad Street")\n .city("NEW YORK")\n .country("USA")\n .firstName("Janet")\n .lastName("Yellen")\n .postalCode("10001")\n .state("NY")\n .build())\n .build()\n val card: Card = client.cards().renew(params)\n}',
+ },
+ python: {
+ method: 'cards.renew',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard = client.cards.renew(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n shipping_address={\n "address1": "5 Broad Street",\n "address2": "Unit 5A",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Janet",\n "last_name": "Yellen",\n "postal_code": "10001",\n "state": "NY",\n },\n carrier={\n "qr_code_url": "https://lithic.com/activate-card/1"\n },\n product_id="100",\n shipping_method="STANDARD",\n)\nprint(card)',
+ },
+ ruby: {
+ method: 'cards.renew',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard = lithic.cards.renew(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n shipping_address: {\n address1: "5 Broad Street",\n city: "NEW YORK",\n country: "USA",\n first_name: "Janet",\n last_name: "Yellen",\n postal_code: "10001",\n state: "NY"\n }\n)\n\nputs(card)',
+ },
+ typescript: {
+ method: 'client.cards.renew',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst card = await client.cards.renew('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n shipping_address: {\n address1: '5 Broad Street',\n address2: 'Unit 5A',\n city: 'NEW YORK',\n country: 'USA',\n first_name: 'Janet',\n last_name: 'Yellen',\n postal_code: '10001',\n state: 'NY',\n },\n carrier: { qr_code_url: 'https://lithic.com/activate-card/1' },\n product_id: '100',\n shipping_method: 'STANDARD',\n});\n\nconsole.log(card);",
+ },
+ },
},
{
- name: 'retrieve_spend_limits',
- endpoint: '/v1/cards/{card_token}/spend_limits',
- httpMethod: 'get',
- summary: "Get card's available spend limit",
+ name: 'search_by_pan',
+ endpoint: '/v1/cards/search_by_pan',
+ httpMethod: 'post',
+ summary: 'Search for card by PAN',
description:
- "Get a Card's available spend limit, which is based on the spend limit configured on the Card and the amount already spent over the spend limit's duration. For example, if the Card has a monthly spend limit of $1000 configured, and has spent $600 in the last month, the available spend limit returned would be $400.",
- stainlessPath: '(resource) cards > (method) retrieve_spend_limits',
- qualified: 'client.cards.retrieveSpendLimits',
- params: ['card_token: string;'],
+ 'Get card configuration such as spend limit and state. Customers must be PCI compliant to use this endpoint. Please contact [support@lithic.com](mailto:support@lithic.com) for questions.\n*Note: this is a `POST` endpoint because it is more secure to send sensitive data in a request body than in a URL.*',
+ stainlessPath: '(resource) cards > (method) search_by_pan',
+ qualified: 'client.cards.searchByPan',
+ params: ['pan: string;'],
response:
- '{ available_spend_limit: { annually?: number; forever?: number; monthly?: number; }; spend_limit?: { annually?: number; forever?: number; monthly?: number; }; spend_velocity?: { annually?: number; forever?: number; monthly?: number; }; }',
+ "{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }",
markdown:
- "## retrieve_spend_limits\n\n`client.cards.retrieveSpendLimits(card_token: string): { available_spend_limit: object; spend_limit?: object; spend_velocity?: object; }`\n\n**get** `/v1/cards/{card_token}/spend_limits`\n\nGet a Card's available spend limit, which is based on the spend limit configured on the Card and the amount already spent over the spend limit's duration. For example, if the Card has a monthly spend limit of $1000 configured, and has spent $600 in the last month, the available spend limit returned would be $400.\n\n### Parameters\n\n- `card_token: string`\n\n### Returns\n\n- `{ available_spend_limit: { annually?: number; forever?: number; monthly?: number; }; spend_limit?: { annually?: number; forever?: number; monthly?: number; }; spend_velocity?: { annually?: number; forever?: number; monthly?: number; }; }`\n\n - `available_spend_limit: { annually?: number; forever?: number; monthly?: number; }`\n - `spend_limit?: { annually?: number; forever?: number; monthly?: number; }`\n - `spend_velocity?: { annually?: number; forever?: number; monthly?: number; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst cardSpendLimits = await client.cards.retrieveSpendLimits('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(cardSpendLimits);\n```",
+ "## search_by_pan\n\n`client.cards.searchByPan(pan: string): object`\n\n**post** `/v1/cards/search_by_pan`\n\nGet card configuration such as spend limit and state. Customers must be PCI compliant to use this endpoint. Please contact [support@lithic.com](mailto:support@lithic.com) for questions.\n*Note: this is a `POST` endpoint because it is more secure to send sensitive data in a request body than in a URL.*\n\n### Parameters\n\n- `pan: string`\n The PAN for the card being retrieved.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details with potentially PCI sensitive information for Enterprise customers\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst card = await client.cards.searchByPan({ pan: '4111111289144142' });\n\nconsole.log(card);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Cards.SearchByPan',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcard, err := client.Cards.SearchByPan(context.TODO(), lithic.CardSearchByPanParams{\n\t\tPan: lithic.F("4111111289144142"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/cards/search_by_pan \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "pan": "4111111289144142"\n }\'',
+ },
+ java: {
+ method: 'cards().searchByPan',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Card;\nimport com.lithic.api.models.CardSearchByPanParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n CardSearchByPanParams params = CardSearchByPanParams.builder()\n .pan("4111111289144142")\n .build();\n Card card = client.cards().searchByPan(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'cards().searchByPan',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardSearchByPanParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: CardSearchByPanParams = CardSearchByPanParams.builder()\n .pan("4111111289144142")\n .build()\n val card: Card = client.cards().searchByPan(params)\n}',
+ },
+ python: {
+ method: 'cards.search_by_pan',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard = client.cards.search_by_pan(\n pan="4111111289144142",\n)\nprint(card)',
+ },
+ ruby: {
+ method: 'cards.search_by_pan',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard = lithic.cards.search_by_pan(pan: "4111111289144142")\n\nputs(card)',
+ },
+ typescript: {
+ method: 'client.cards.searchByPan',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst card = await client.cards.searchByPan({ pan: '4111111289144142' });\n\nconsole.log(card);",
+ },
+ },
},
{
- name: 'search_by_pan',
- endpoint: '/v1/cards/search_by_pan',
+ name: 'convert_physical',
+ endpoint: '/v1/cards/{card_token}/convert_physical',
httpMethod: 'post',
- summary: 'Search for card by PAN',
+ summary: 'Convert virtual to physical card',
description:
- 'Get card configuration such as spend limit and state. Customers must be PCI compliant to use this endpoint. Please contact [support@lithic.com](mailto:support@lithic.com) for questions.\n*Note: this is a `POST` endpoint because it is more secure to send sensitive data in a request body than in a URL.*',
- stainlessPath: '(resource) cards > (method) search_by_pan',
- qualified: 'client.cards.searchByPan',
- params: ['pan: string;'],
+ "Convert a virtual card into a physical card and manufacture it.\nCustomer must supply relevant fields for physical card creation including `product_id`, `carrier`, `shipping_method`, and `shipping_address`.\nThe card token will be unchanged. The card's type will be altered to `PHYSICAL`.\nThe card will be set to state `PENDING_FULFILLMENT` and fulfilled at next fulfillment cycle.\nVirtual cards created on card programs which do not support physical cards cannot be converted. The card program cannot be changed as part of the conversion. Cards must be in an `OPEN` state to be converted.\nOnly applies to cards of type `VIRTUAL` (or existing cards with deprecated types of `DIGITAL_WALLET` and `UNLOCKED`).",
+ stainlessPath: '(resource) cards > (method) convert_physical',
+ qualified: 'client.cards.convertPhysical',
+ params: [
+ 'card_token: string;',
+ 'shipping_address: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; };',
+ 'carrier?: { qr_code_url?: string; };',
+ 'product_id?: string;',
+ "shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING';",
+ ],
response:
"{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }",
markdown:
- "## search_by_pan\n\n`client.cards.searchByPan(pan: string): object`\n\n**post** `/v1/cards/search_by_pan`\n\nGet card configuration such as spend limit and state. Customers must be PCI compliant to use this endpoint. Please contact [support@lithic.com](mailto:support@lithic.com) for questions.\n*Note: this is a `POST` endpoint because it is more secure to send sensitive data in a request body than in a URL.*\n\n### Parameters\n\n- `pan: string`\n The PAN for the card being retrieved.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details with potentially PCI sensitive information for Enterprise customers\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst card = await client.cards.searchByPan({ pan: '4111111289144142' });\n\nconsole.log(card);\n```",
+ "## convert_physical\n\n`client.cards.convertPhysical(card_token: string, shipping_address: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }, carrier?: { qr_code_url?: string; }, product_id?: string, shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING'): object`\n\n**post** `/v1/cards/{card_token}/convert_physical`\n\nConvert a virtual card into a physical card and manufacture it.\nCustomer must supply relevant fields for physical card creation including `product_id`, `carrier`, `shipping_method`, and `shipping_address`.\nThe card token will be unchanged. The card's type will be altered to `PHYSICAL`.\nThe card will be set to state `PENDING_FULFILLMENT` and fulfilled at next fulfillment cycle.\nVirtual cards created on card programs which do not support physical cards cannot be converted. The card program cannot be changed as part of the conversion. Cards must be in an `OPEN` state to be converted.\nOnly applies to cards of type `VIRTUAL` (or existing cards with deprecated types of `DIGITAL_WALLET` and `UNLOCKED`).\n\n### Parameters\n\n- `card_token: string`\n\n- `shipping_address: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }`\n The shipping address this card will be sent to.\n - `address1: string`\n Valid USPS routable address.\n - `city: string`\n City\n - `country: string`\n Uppercase ISO 3166-1 alpha-3 three character abbreviation.\n - `first_name: string`\n Customer's first name. This will be the first name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `last_name: string`\n Customer's surname (family name). This will be the last name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `postal_code: string`\n Postal code (formerly zipcode). For US addresses, either five-digit postal code or nine-digit postal code (ZIP+4) using the format 12345-1234.\n - `state: string`\n Uppercase ISO 3166-2 two character abbreviation for US and CA. Optional with a limit of 24 characters for other countries.\n - `address2?: string`\n Unit number (if applicable).\n - `email?: string`\n Email address to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n - `line2_text?: string`\n Text to be printed on line two of the physical card. Use of this field requires additional permissions.\n - `phone_number?: string`\n Cardholder's phone number in E.164 format to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n\n- `carrier?: { qr_code_url?: string; }`\n If omitted, the previous carrier will be used.\n - `qr_code_url?: string`\n QR code URL to display on the card carrier. The `qr_code_url` field requires your domain to be allowlisted by Lithic before use. Contact Support to configure your QR code domain\n\n- `product_id?: string`\n Specifies the configuration (e.g. physical card art) that the card should be manufactured with, and only applies to cards of type `PHYSICAL`. This must be configured with Lithic before use.\n\n\n- `shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING'`\n Shipping method for the card. Only applies to cards of type PHYSICAL.\nUse of options besides `STANDARD` require additional permissions.\n\n* `STANDARD` - USPS regular mail or similar international option, with no tracking\n* `STANDARD_WITH_TRACKING` - USPS regular mail or similar international option, with tracking\n* `PRIORITY` - USPS Priority, 1-3 day shipping, with tracking\n* `EXPRESS` - FedEx or UPS depending on card manufacturer, Express, 3-day shipping, with tracking\n* `2_DAY` - FedEx or UPS depending on card manufacturer, 2-day shipping, with tracking\n* `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking\n* `BULK` - Card will be shipped as part of a bulk fulfillment order. The shipping method and timeline are inherited from the parent bulk order.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details with potentially PCI sensitive information for Enterprise customers\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst card = await client.cards.convertPhysical('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { shipping_address: {\n address1: '5 Broad Street',\n city: 'NEW YORK',\n country: 'USA',\n first_name: 'Janet',\n last_name: 'Yellen',\n postal_code: '10001',\n state: 'NY',\n} });\n\nconsole.log(card);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Cards.ConvertPhysical',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n\t"github.com/lithic-com/lithic-go/shared"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcard, err := client.Cards.ConvertPhysical(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardConvertPhysicalParams{\n\t\t\tShippingAddress: lithic.F(shared.ShippingAddressParam{\n\t\t\t\tAddress1: lithic.F("5 Broad Street"),\n\t\t\t\tAddress2: lithic.F("Unit 5A"),\n\t\t\t\tCity: lithic.F("NEW YORK"),\n\t\t\t\tCountry: lithic.F("USA"),\n\t\t\t\tFirstName: lithic.F("Janet"),\n\t\t\t\tLastName: lithic.F("Yellen"),\n\t\t\t\tPostalCode: lithic.F("10001"),\n\t\t\t\tState: lithic.F("NY"),\n\t\t\t}),\n\t\t\tCarrier: lithic.F(shared.CarrierParam{\n\t\t\t\tQrCodeURL: lithic.F("https://lithic.com/activate-card/1"),\n\t\t\t}),\n\t\t\tProductID: lithic.F("100"),\n\t\t\tShippingMethod: lithic.F(lithic.CardConvertPhysicalParamsShippingMethodStandard),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN/convert_physical \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "shipping_address": {\n "address1": "5 Broad Street",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Janet",\n "last_name": "Yellen",\n "postal_code": "10001",\n "state": "NY",\n "address2": "Unit 5A"\n }\n }\'',
+ },
+ java: {
+ method: 'cards().convertPhysical',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Card;\nimport com.lithic.api.models.CardConvertPhysicalParams;\nimport com.lithic.api.models.ShippingAddress;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n CardConvertPhysicalParams params = CardConvertPhysicalParams.builder()\n .cardToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .shippingAddress(ShippingAddress.builder()\n .address1("5 Broad Street")\n .city("NEW YORK")\n .country("USA")\n .firstName("Janet")\n .lastName("Yellen")\n .postalCode("10001")\n .state("NY")\n .build())\n .build();\n Card card = client.cards().convertPhysical(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'cards().convertPhysical',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardConvertPhysicalParams\nimport com.lithic.api.models.ShippingAddress\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: CardConvertPhysicalParams = CardConvertPhysicalParams.builder()\n .cardToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .shippingAddress(ShippingAddress.builder()\n .address1("5 Broad Street")\n .city("NEW YORK")\n .country("USA")\n .firstName("Janet")\n .lastName("Yellen")\n .postalCode("10001")\n .state("NY")\n .build())\n .build()\n val card: Card = client.cards().convertPhysical(params)\n}',
+ },
+ python: {
+ method: 'cards.convert_physical',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard = client.cards.convert_physical(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n shipping_address={\n "address1": "5 Broad Street",\n "address2": "Unit 5A",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Janet",\n "last_name": "Yellen",\n "postal_code": "10001",\n "state": "NY",\n },\n carrier={\n "qr_code_url": "https://lithic.com/activate-card/1"\n },\n product_id="100",\n shipping_method="STANDARD",\n)\nprint(card)',
+ },
+ ruby: {
+ method: 'cards.convert_physical',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard = lithic.cards.convert_physical(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n shipping_address: {\n address1: "5 Broad Street",\n city: "NEW YORK",\n country: "USA",\n first_name: "Janet",\n last_name: "Yellen",\n postal_code: "10001",\n state: "NY"\n }\n)\n\nputs(card)',
+ },
+ typescript: {
+ method: 'client.cards.convertPhysical',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst card = await client.cards.convertPhysical('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n shipping_address: {\n address1: '5 Broad Street',\n address2: 'Unit 5A',\n city: 'NEW YORK',\n country: 'USA',\n first_name: 'Janet',\n last_name: 'Yellen',\n postal_code: '10001',\n state: 'NY',\n },\n carrier: { qr_code_url: 'https://lithic.com/activate-card/1' },\n product_id: '100',\n shipping_method: 'STANDARD',\n});\n\nconsole.log(card);",
+ },
+ },
},
{
name: 'web_provision',
@@ -988,6 +2889,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'{ jws: { header?: { kid?: string; }; payload?: string; protected?: string; signature?: string; }; state: string; } | { google_opc?: string; tsp_opc?: string; }',
markdown:
"## web_provision\n\n`client.cards.webProvision(card_token: string, client_device_id?: string, client_wallet_account_id?: string, digital_wallet?: 'APPLE_PAY' | 'GOOGLE_PAY', server_session_id?: string): { jws: object; state: string; } | { google_opc?: string; tsp_opc?: string; }`\n\n**post** `/v1/cards/{card_token}/web_provision`\n\nAllow your cardholders to directly add payment cards to the device's digital wallet from a browser on the web.\n\nThis requires some additional setup and configuration. Please [Contact Us](https://lithic.com/contact) or your Customer Success representative for more information.\n\n\n### Parameters\n\n- `card_token: string`\n\n- `client_device_id?: string`\n Only applicable if `digital_wallet` is GOOGLE_PAY. Google Pay Web Push Provisioning device identifier required for the tokenization flow\n\n- `client_wallet_account_id?: string`\n Only applicable if `digital_wallet` is GOOGLE_PAY. Google Pay Web Push Provisioning wallet account identifier required for the tokenization flow\n\n- `digital_wallet?: 'APPLE_PAY' | 'GOOGLE_PAY'`\n Name of digital wallet provider.\n\n- `server_session_id?: string`\n Only applicable if `digital_wallet` is GOOGLE_PAY. Google Pay Web Push Provisioning session identifier required for the FPAN flow.\n\n### Returns\n\n- `{ jws: { header?: { kid?: string; }; payload?: string; protected?: string; signature?: string; }; state: string; } | { google_opc?: string; tsp_opc?: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.cards.webProvision('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Cards.WebProvision',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Cards.WebProvision(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardWebProvisionParams{\n\t\t\tDigitalWallet: lithic.F(lithic.CardWebProvisionParamsDigitalWalletApplePay),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response)\n}\n',
+ },
+ http: {
+ example:
+ "curl https://api.lithic.com/v1/cards/$CARD_TOKEN/web_provision \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ },
+ java: {
+ method: 'cards().webProvision',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.CardWebProvisionParams;\nimport com.lithic.api.models.CardWebProvisionResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n CardWebProvisionResponse response = client.cards().webProvision("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'cards().webProvision',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardWebProvisionParams\nimport com.lithic.api.models.CardWebProvisionResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: CardWebProvisionResponse = client.cards().webProvision("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'cards.web_provision',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.cards.web_provision(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n digital_wallet="APPLE_PAY",\n)\nprint(response)',
+ },
+ ruby: {
+ method: 'cards.web_provision',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.cards.web_provision("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.cards.webProvision',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.cards.webProvision('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n digital_wallet: 'APPLE_PAY',\n});\n\nconsole.log(response);",
+ },
+ },
},
{
name: 'list',
@@ -1002,6 +2939,101 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; available_amount: number; created: string; currency: string; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; updated: string; }",
markdown:
"## list\n\n`client.cards.balances.list(card_token: string, balance_date?: string, last_transaction_event_token?: string): { token: string; available_amount: number; created: string; currency: string; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; updated: string; }`\n\n**get** `/v1/cards/{card_token}/balances`\n\nGet the balances for a given card.\n\n### Parameters\n\n- `card_token: string`\n\n- `balance_date?: string`\n UTC date of the balance to retrieve. Defaults to latest available balance\n\n- `last_transaction_event_token?: string`\n Balance after a given financial event occured.\nFor example, passing the event_token of a $5 CARD_CLEARING financial event will return a balance decreased by $5\n\n\n### Returns\n\n- `{ token: string; available_amount: number; created: string; currency: string; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; updated: string; }`\n Balance of a Financial Account\n\n - `token: string`\n - `available_amount: number`\n - `created: string`\n - `currency: string`\n - `last_transaction_event_token: string`\n - `last_transaction_token: string`\n - `pending_amount: number`\n - `total_amount: number`\n - `type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const financialAccountBalance of client.cards.balances.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(financialAccountBalance);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Cards.Balances.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Cards.Balances.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardBalanceListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN/balances \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'cards().balances().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.CardBalanceListPage;\nimport com.lithic.api.models.CardBalanceListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n CardBalanceListPage page = client.cards().balances().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'cards().balances().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardBalanceListPage\nimport com.lithic.api.models.CardBalanceListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: CardBalanceListPage = client.cards().balances().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'cards.balances.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.cards.balances.list(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
+ },
+ ruby: {
+ method: 'cards.balances.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.cards.balances.list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.cards.balances.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const financialAccountBalance of client.cards.balances.list(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(financialAccountBalance.token);\n}",
+ },
+ },
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/cards/{card_token}/financial_transactions',
+ httpMethod: 'get',
+ summary: 'List card financial transactions',
+ description: 'List the financial transactions for a given card.',
+ stainlessPath: '(resource) cards.financial_transactions > (method) list',
+ qualified: 'client.cards.financialTransactions.list',
+ params: [
+ 'card_token: string;',
+ 'begin?: string;',
+ "category?: 'CARD' | 'TRANSFER';",
+ 'end?: string;',
+ 'ending_before?: string;',
+ "result?: 'APPROVED' | 'DECLINED';",
+ 'starting_after?: string;',
+ "status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED';",
+ ],
+ response:
+ "{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }",
+ markdown:
+ "## list\n\n`client.cards.financialTransactions.list(card_token: string, begin?: string, category?: 'CARD' | 'TRANSFER', end?: string, ending_before?: string, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'): { token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: financial_event[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n**get** `/v1/cards/{card_token}/financial_transactions`\n\nList the financial transactions for a given card.\n\n### Parameters\n\n- `card_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `category?: 'CARD' | 'TRANSFER'`\n Financial Transaction category to be returned.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `result?: 'APPROVED' | 'DECLINED'`\n Financial Transaction result to be returned.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'`\n Financial Transaction status to be returned.\n\n### Returns\n\n- `{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n - `token: string`\n - `category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'`\n - `created: string`\n - `currency: string`\n - `descriptor: string`\n - `events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const financialTransaction of client.cards.financialTransactions.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(financialTransaction);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Cards.FinancialTransactions.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Cards.FinancialTransactions.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardFinancialTransactionListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN/financial_transactions \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'cards().financialTransactions().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.CardFinancialTransactionListPage;\nimport com.lithic.api.models.CardFinancialTransactionListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n CardFinancialTransactionListPage page = client.cards().financialTransactions().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'cards().financialTransactions().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardFinancialTransactionListPage\nimport com.lithic.api.models.CardFinancialTransactionListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: CardFinancialTransactionListPage = client.cards().financialTransactions().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'cards.financial_transactions.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.cards.financial_transactions.list(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
+ },
+ ruby: {
+ method: 'cards.financial_transactions.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.cards.financial_transactions.list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.cards.financialTransactions.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const financialTransaction of client.cards.financialTransactions.list(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(financialTransaction.token);\n}",
+ },
+ },
},
{
name: 'retrieve',
@@ -1016,29 +3048,98 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }",
markdown:
"## retrieve\n\n`client.cards.financialTransactions.retrieve(card_token: string, financial_transaction_token: string): { token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: financial_event[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n**get** `/v1/cards/{card_token}/financial_transactions/{financial_transaction_token}`\n\nGet the card financial transaction for the provided token.\n\n### Parameters\n\n- `card_token: string`\n\n- `financial_transaction_token: string`\n\n### Returns\n\n- `{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n - `token: string`\n - `category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'`\n - `created: string`\n - `currency: string`\n - `descriptor: string`\n - `events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialTransaction = await client.cards.financialTransactions.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { card_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(financialTransaction);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Cards.FinancialTransactions.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialTransaction, err := client.Cards.FinancialTransactions.Get(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialTransaction.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN/financial_transactions/$FINANCIAL_TRANSACTION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'cards().financialTransactions().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.CardFinancialTransactionRetrieveParams;\nimport com.lithic.api.models.FinancialTransaction;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n CardFinancialTransactionRetrieveParams params = CardFinancialTransactionRetrieveParams.builder()\n .cardToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .financialTransactionToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build();\n FinancialTransaction financialTransaction = client.cards().financialTransactions().retrieve(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'cards().financialTransactions().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardFinancialTransactionRetrieveParams\nimport com.lithic.api.models.FinancialTransaction\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: CardFinancialTransactionRetrieveParams = CardFinancialTransactionRetrieveParams.builder()\n .cardToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .financialTransactionToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val financialTransaction: FinancialTransaction = client.cards().financialTransactions().retrieve(params)\n}',
+ },
+ python: {
+ method: 'cards.financial_transactions.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_transaction = client.cards.financial_transactions.retrieve(\n financial_transaction_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(financial_transaction.token)',
+ },
+ ruby: {
+ method: 'cards.financial_transactions.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nfinancial_transaction = lithic.cards.financial_transactions.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n card_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(financial_transaction)',
+ },
+ typescript: {
+ method: 'client.cards.financialTransactions.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialTransaction = await client.cards.financialTransactions.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { card_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(financialTransaction.token);",
+ },
+ },
},
{
name: 'list',
- endpoint: '/v1/cards/{card_token}/financial_transactions',
+ endpoint: '/v1/card_bulk_orders',
httpMethod: 'get',
- summary: 'List card financial transactions',
- description: 'List the financial transactions for a given card.',
- stainlessPath: '(resource) cards.financial_transactions > (method) list',
- qualified: 'client.cards.financialTransactions.list',
+ summary: 'List bulk orders',
+ description: 'List bulk orders for physical card shipments',
+ stainlessPath: '(resource) card_bulk_orders > (method) list',
+ qualified: 'client.cardBulkOrders.list',
params: [
- 'card_token: string;',
'begin?: string;',
- "category?: 'CARD' | 'TRANSFER';",
'end?: string;',
'ending_before?: string;',
- "result?: 'APPROVED' | 'DECLINED';",
+ 'page_size?: number;',
'starting_after?: string;',
- "status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED';",
],
response:
- "{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }",
+ "{ token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }",
markdown:
- "## list\n\n`client.cards.financialTransactions.list(card_token: string, begin?: string, category?: 'CARD' | 'TRANSFER', end?: string, ending_before?: string, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'): { token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: financial_event[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n**get** `/v1/cards/{card_token}/financial_transactions`\n\nList the financial transactions for a given card.\n\n### Parameters\n\n- `card_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `category?: 'CARD' | 'TRANSFER'`\n Financial Transaction category to be returned.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `result?: 'APPROVED' | 'DECLINED'`\n Financial Transaction result to be returned.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'`\n Financial Transaction status to be returned.\n\n### Returns\n\n- `{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n - `token: string`\n - `category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'`\n - `created: string`\n - `currency: string`\n - `descriptor: string`\n - `events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const financialTransaction of client.cards.financialTransactions.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(financialTransaction);\n}\n```",
+ "## list\n\n`client.cardBulkOrders.list(begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n\n**get** `/v1/card_bulk_orders`\n\nList bulk orders for physical card shipments\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n Represents a bulk order for physical card shipments\n\n - `token: string`\n - `card_tokens: string[]`\n - `created: string`\n - `customer_product_id: string`\n - `shipping_address: object`\n - `shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'`\n - `status: 'OPEN' | 'LOCKED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const cardBulkOrder of client.cardBulkOrders.list()) {\n console.log(cardBulkOrder);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.CardBulkOrders.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.CardBulkOrders.List(context.TODO(), lithic.CardBulkOrderListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/card_bulk_orders \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'cardBulkOrders().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.CardBulkOrderListPage;\nimport com.lithic.api.models.CardBulkOrderListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n CardBulkOrderListPage page = client.cardBulkOrders().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'cardBulkOrders().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardBulkOrderListPage\nimport com.lithic.api.models.CardBulkOrderListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: CardBulkOrderListPage = client.cardBulkOrders().list()\n}',
+ },
+ python: {
+ method: 'card_bulk_orders.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.card_bulk_orders.list()\npage = page.data[0]\nprint(page.customer_product_id)',
+ },
+ ruby: {
+ method: 'card_bulk_orders.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.card_bulk_orders.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.cardBulkOrders.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const cardBulkOrder of client.cardBulkOrders.list()) {\n console.log(cardBulkOrder.customer_product_id);\n}",
+ },
+ },
},
{
name: 'create',
@@ -1058,6 +3159,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }",
markdown:
"## create\n\n`client.cardBulkOrders.create(customer_product_id: string, shipping_address: object, shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'): { token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n\n**post** `/v1/card_bulk_orders`\n\nCreate a new bulk order for physical card shipments. Cards can be added to the order via the POST /v1/cards endpoint by specifying the bulk_order_token. Lock the order via PATCH /v1/card_bulk_orders/{bulk_order_token} to prepare for shipment. Please work with your Customer Success Manager and card personalization bureau to ensure bulk shipping is supported for your program.\n\n### Parameters\n\n- `customer_product_id: string`\n Customer-specified product configuration for physical card manufacturing. This must be configured with Lithic before use\n\n- `shipping_address: object`\n Shipping address for all cards in this bulk order\n\n- `shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'`\n Shipping method for all cards in this bulk order. BULK_PRIORITY, BULK_2_DAY, and BULK_EXPRESS are only available with Perfect Plastic Printing\n\n### Returns\n\n- `{ token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n Represents a bulk order for physical card shipments\n\n - `token: string`\n - `card_tokens: string[]`\n - `created: string`\n - `customer_product_id: string`\n - `shipping_address: object`\n - `shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'`\n - `status: 'OPEN' | 'LOCKED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst cardBulkOrder = await client.cardBulkOrders.create({\n customer_product_id: 'custom-card-design-123',\n shipping_address: {\n address1: '123 Main Street',\n city: 'NEW YORK',\n country: 'USA',\n first_name: 'Johnny',\n last_name: 'Appleseed',\n postal_code: '10001',\n state: 'NY',\n},\n shipping_method: 'BULK_EXPEDITED',\n});\n\nconsole.log(cardBulkOrder);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.CardBulkOrders.New',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcardBulkOrder, err := client.CardBulkOrders.New(context.TODO(), lithic.CardBulkOrderNewParams{\n\t\tCustomerProductID: lithic.F("custom-card-design-123"),\n\t\tShippingAddress: lithic.F[any](map[string]interface{}{\n\t\t\t"address1": "123 Main Street",\n\t\t\t"city": "NEW YORK",\n\t\t\t"country": "USA",\n\t\t\t"first_name": "Johnny",\n\t\t\t"last_name": "Appleseed",\n\t\t\t"postal_code": "10001",\n\t\t\t"state": "NY",\n\t\t}),\n\t\tShippingMethod: lithic.F(lithic.CardBulkOrderNewParamsShippingMethodBulkExpedited),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", cardBulkOrder.CustomerProductID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/card_bulk_orders \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "customer_product_id": "custom-card-design-123",\n "shipping_address": {\n "address1": "123 Main Street",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Johnny",\n "last_name": "Appleseed",\n "postal_code": "10001",\n "state": "NY"\n },\n "shipping_method": "BULK_EXPEDITED"\n }\'',
+ },
+ java: {
+ method: 'cardBulkOrders().create',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.core.JsonValue;\nimport com.lithic.api.models.CardBulkOrder;\nimport com.lithic.api.models.CardBulkOrderCreateParams;\nimport java.util.Map;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n CardBulkOrderCreateParams params = CardBulkOrderCreateParams.builder()\n .customerProductId("custom-card-design-123")\n .shippingAddress(JsonValue.from(Map.of(\n "address1",\n "123 Main Street",\n "city",\n "NEW YORK",\n "country",\n "USA",\n "first_name",\n "Johnny",\n "last_name",\n "Appleseed",\n "postal_code",\n "10001",\n "state",\n "NY"\n )))\n .shippingMethod(CardBulkOrderCreateParams.ShippingMethod.BULK_EXPEDITED)\n .build();\n CardBulkOrder cardBulkOrder = client.cardBulkOrders().create(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'cardBulkOrders().create',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.core.JsonValue\nimport com.lithic.api.models.CardBulkOrder\nimport com.lithic.api.models.CardBulkOrderCreateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: CardBulkOrderCreateParams = CardBulkOrderCreateParams.builder()\n .customerProductId("custom-card-design-123")\n .shippingAddress(JsonValue.from(mapOf(\n "address1" to "123 Main Street",\n "city" to "NEW YORK",\n "country" to "USA",\n "first_name" to "Johnny",\n "last_name" to "Appleseed",\n "postal_code" to "10001",\n "state" to "NY",\n )))\n .shippingMethod(CardBulkOrderCreateParams.ShippingMethod.BULK_EXPEDITED)\n .build()\n val cardBulkOrder: CardBulkOrder = client.cardBulkOrders().create(params)\n}',
+ },
+ python: {
+ method: 'card_bulk_orders.create',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard_bulk_order = client.card_bulk_orders.create(\n customer_product_id="custom-card-design-123",\n shipping_address={\n "address1": "123 Main Street",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Johnny",\n "last_name": "Appleseed",\n "postal_code": "10001",\n "state": "NY",\n },\n shipping_method="BULK_EXPEDITED",\n)\nprint(card_bulk_order.customer_product_id)',
+ },
+ ruby: {
+ method: 'card_bulk_orders.create',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard_bulk_order = lithic.card_bulk_orders.create(\n customer_product_id: "custom-card-design-123",\n shipping_address: {\n address1: "123 Main Street",\n city: "NEW YORK",\n country: "USA",\n first_name: "Johnny",\n last_name: "Appleseed",\n postal_code: "10001",\n state: "NY"\n },\n shipping_method: :BULK_EXPEDITED\n)\n\nputs(card_bulk_order)',
+ },
+ typescript: {
+ method: 'client.cardBulkOrders.create',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst cardBulkOrder = await client.cardBulkOrders.create({\n customer_product_id: 'custom-card-design-123',\n shipping_address: {\n address1: '123 Main Street',\n city: 'NEW YORK',\n country: 'USA',\n first_name: 'Johnny',\n last_name: 'Appleseed',\n postal_code: '10001',\n state: 'NY',\n },\n shipping_method: 'BULK_EXPEDITED',\n});\n\nconsole.log(cardBulkOrder.customer_product_id);",
+ },
+ },
},
{
name: 'retrieve',
@@ -1072,6 +3209,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }",
markdown:
"## retrieve\n\n`client.cardBulkOrders.retrieve(bulk_order_token: string): { token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n\n**get** `/v1/card_bulk_orders/{bulk_order_token}`\n\nRetrieve a specific bulk order by token\n\n### Parameters\n\n- `bulk_order_token: string`\n\n### Returns\n\n- `{ token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n Represents a bulk order for physical card shipments\n\n - `token: string`\n - `card_tokens: string[]`\n - `created: string`\n - `customer_product_id: string`\n - `shipping_address: object`\n - `shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'`\n - `status: 'OPEN' | 'LOCKED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst cardBulkOrder = await client.cardBulkOrders.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(cardBulkOrder);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.CardBulkOrders.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcardBulkOrder, err := client.CardBulkOrders.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", cardBulkOrder.CustomerProductID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/card_bulk_orders/$BULK_ORDER_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'cardBulkOrders().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.CardBulkOrder;\nimport com.lithic.api.models.CardBulkOrderRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n CardBulkOrder cardBulkOrder = client.cardBulkOrders().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'cardBulkOrders().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardBulkOrder\nimport com.lithic.api.models.CardBulkOrderRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val cardBulkOrder: CardBulkOrder = client.cardBulkOrders().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'card_bulk_orders.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard_bulk_order = client.card_bulk_orders.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(card_bulk_order.customer_product_id)',
+ },
+ ruby: {
+ method: 'card_bulk_orders.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard_bulk_order = lithic.card_bulk_orders.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(card_bulk_order)',
+ },
+ typescript: {
+ method: 'client.cardBulkOrders.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst cardBulkOrder = await client.cardBulkOrders.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(cardBulkOrder.customer_product_id);",
+ },
+ },
},
{
name: 'update',
@@ -1087,26 +3260,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }",
markdown:
"## update\n\n`client.cardBulkOrders.update(bulk_order_token: string, status: 'LOCKED'): { token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n\n**patch** `/v1/card_bulk_orders/{bulk_order_token}`\n\nUpdate a bulk order. Primarily used to lock the order, preventing additional cards from being added\n\n### Parameters\n\n- `bulk_order_token: string`\n\n- `status: 'LOCKED'`\n Status to update the bulk order to. Use LOCKED to finalize the order\n\n### Returns\n\n- `{ token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n Represents a bulk order for physical card shipments\n\n - `token: string`\n - `card_tokens: string[]`\n - `created: string`\n - `customer_product_id: string`\n - `shipping_address: object`\n - `shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'`\n - `status: 'OPEN' | 'LOCKED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst cardBulkOrder = await client.cardBulkOrders.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { status: 'LOCKED' });\n\nconsole.log(cardBulkOrder);\n```",
- },
- {
- name: 'list',
- endpoint: '/v1/card_bulk_orders',
- httpMethod: 'get',
- summary: 'List bulk orders',
- description: 'List bulk orders for physical card shipments',
- stainlessPath: '(resource) card_bulk_orders > (method) list',
- qualified: 'client.cardBulkOrders.list',
- params: [
- 'begin?: string;',
- 'end?: string;',
- 'ending_before?: string;',
- 'page_size?: number;',
- 'starting_after?: string;',
- ],
- response:
- "{ token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }",
- markdown:
- "## list\n\n`client.cardBulkOrders.list(begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n\n**get** `/v1/card_bulk_orders`\n\nList bulk orders for physical card shipments\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n Represents a bulk order for physical card shipments\n\n - `token: string`\n - `card_tokens: string[]`\n - `created: string`\n - `customer_product_id: string`\n - `shipping_address: object`\n - `shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'`\n - `status: 'OPEN' | 'LOCKED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const cardBulkOrder of client.cardBulkOrders.list()) {\n console.log(cardBulkOrder);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.CardBulkOrders.Update',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcardBulkOrder, err := client.CardBulkOrders.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardBulkOrderUpdateParams{\n\t\t\tStatus: lithic.F(lithic.CardBulkOrderUpdateParamsStatusLocked),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", cardBulkOrder.CustomerProductID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/card_bulk_orders/$BULK_ORDER_TOKEN \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "status": "LOCKED"\n }\'',
+ },
+ java: {
+ method: 'cardBulkOrders().update',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.CardBulkOrder;\nimport com.lithic.api.models.CardBulkOrderUpdateParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n CardBulkOrderUpdateParams params = CardBulkOrderUpdateParams.builder()\n .bulkOrderToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .status(CardBulkOrderUpdateParams.Status.LOCKED)\n .build();\n CardBulkOrder cardBulkOrder = client.cardBulkOrders().update(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'cardBulkOrders().update',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardBulkOrder\nimport com.lithic.api.models.CardBulkOrderUpdateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: CardBulkOrderUpdateParams = CardBulkOrderUpdateParams.builder()\n .bulkOrderToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .status(CardBulkOrderUpdateParams.Status.LOCKED)\n .build()\n val cardBulkOrder: CardBulkOrder = client.cardBulkOrders().update(params)\n}',
+ },
+ python: {
+ method: 'card_bulk_orders.update',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard_bulk_order = client.card_bulk_orders.update(\n bulk_order_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n status="LOCKED",\n)\nprint(card_bulk_order.customer_product_id)',
+ },
+ ruby: {
+ method: 'card_bulk_orders.update',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard_bulk_order = lithic.card_bulk_orders.update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", status: :LOCKED)\n\nputs(card_bulk_order)',
+ },
+ typescript: {
+ method: 'client.cardBulkOrders.update',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst cardBulkOrder = await client.cardBulkOrders.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n status: 'LOCKED',\n});\n\nconsole.log(cardBulkOrder.customer_product_id);",
+ },
+ },
},
{
name: 'list',
@@ -1126,6 +3315,98 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }",
markdown:
"## list\n\n`client.balances.list(account_token?: string, balance_date?: string, business_account_token?: string, financial_account_type?: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'): { available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }`\n\n**get** `/v1/balances`\n\nGet the balances for a program, business, or a given end-user account\n\n### Parameters\n\n- `account_token?: string`\n List balances for all financial accounts of a given account_token.\n\n- `balance_date?: string`\n UTC date and time of the balances to retrieve. Defaults to latest available balances\n\n- `business_account_token?: string`\n List balances for all financial accounts of a given business_account_token.\n\n- `financial_account_type?: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'`\n List balances for a given Financial Account type.\n\n### Returns\n\n- `{ available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }`\n Balance\n\n - `available_amount: number`\n - `created: string`\n - `currency: string`\n - `financial_account_token: string`\n - `financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'`\n - `last_transaction_event_token: string`\n - `last_transaction_token: string`\n - `pending_amount: number`\n - `total_amount: number`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const balance of client.balances.list()) {\n console.log(balance);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Balances.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Balances.List(context.TODO(), lithic.BalanceListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example: 'curl https://api.lithic.com/v1/balances \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'balances().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.BalanceListPage;\nimport com.lithic.api.models.BalanceListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n BalanceListPage page = client.balances().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'balances().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.BalanceListPage\nimport com.lithic.api.models.BalanceListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: BalanceListPage = client.balances().list()\n}',
+ },
+ python: {
+ method: 'balances.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.balances.list()\npage = page.data[0]\nprint(page.available_amount)',
+ },
+ ruby: {
+ method: 'balances.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.balances.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.balances.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const balance of client.balances.list()) {\n console.log(balance.available_amount);\n}",
+ },
+ },
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/disputes',
+ httpMethod: 'get',
+ summary: 'List chargeback requests',
+ description: 'List chargeback requests.',
+ stainlessPath: '(resource) disputes > (method) list',
+ qualified: 'client.disputes.list',
+ params: [
+ 'begin?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ 'status?: string;',
+ 'transaction_tokens?: string[];',
+ ],
+ response:
+ '{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }',
+ markdown:
+ "## list\n\n`client.disputes.list(begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string, status?: string, transaction_tokens?: string[]): { token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n\n**get** `/v1/disputes`\n\nList chargeback requests.\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: string`\n Filter by status.\n\n- `transaction_tokens?: string[]`\n Transaction tokens to filter by.\n\n### Returns\n\n- `{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n Dispute.\n\n - `token: string`\n - `amount: number`\n - `arbitration_date: string`\n - `created: string`\n - `customer_filed_date: string`\n - `customer_note: string`\n - `network_claim_ids: string[]`\n - `network_filed_date: string`\n - `network_reason_code: string`\n - `prearbitration_date: string`\n - `primary_claim_id: string`\n - `reason: string`\n - `representment_date: string`\n - `resolution_date: string`\n - `resolution_note: string`\n - `resolution_reason: string`\n - `status: string`\n - `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const dispute of client.disputes.list()) {\n console.log(dispute);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Disputes.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Disputes.List(context.TODO(), lithic.DisputeListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example: 'curl https://api.lithic.com/v1/disputes \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'disputes().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.DisputeListPage;\nimport com.lithic.api.models.DisputeListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n DisputeListPage page = client.disputes().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'disputes().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.DisputeListPage\nimport com.lithic.api.models.DisputeListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: DisputeListPage = client.disputes().list()\n}',
+ },
+ python: {
+ method: 'disputes.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.disputes.list()\npage = page.data[0]\nprint(page.network_claim_ids)',
+ },
+ ruby: {
+ method: 'disputes.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.disputes.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.disputes.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const dispute of client.disputes.list()) {\n console.log(dispute.network_claim_ids);\n}",
+ },
+ },
},
{
name: 'create',
@@ -1146,6 +3427,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }',
markdown:
"## create\n\n`client.disputes.create(amount: number, reason: string, transaction_token: string, customer_filed_date?: string, customer_note?: string): { token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n\n**post** `/v1/disputes`\n\nRequest a chargeback.\n\n### Parameters\n\n- `amount: number`\n Amount for chargeback\n\n- `reason: string`\n Reason for chargeback\n\n- `transaction_token: string`\n Transaction for chargeback\n\n- `customer_filed_date?: string`\n Date the customer filed the chargeback request\n\n- `customer_note?: string`\n Customer description\n\n### Returns\n\n- `{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n Dispute.\n\n - `token: string`\n - `amount: number`\n - `arbitration_date: string`\n - `created: string`\n - `customer_filed_date: string`\n - `customer_note: string`\n - `network_claim_ids: string[]`\n - `network_filed_date: string`\n - `network_reason_code: string`\n - `prearbitration_date: string`\n - `primary_claim_id: string`\n - `reason: string`\n - `representment_date: string`\n - `resolution_date: string`\n - `resolution_note: string`\n - `resolution_reason: string`\n - `status: string`\n - `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst dispute = await client.disputes.create({\n amount: 10000,\n reason: 'FRAUD_CARD_PRESENT',\n transaction_token: '12345624-aa69-4cbc-a946-30d90181b621',\n});\n\nconsole.log(dispute);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Disputes.New',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdispute, err := client.Disputes.New(context.TODO(), lithic.DisputeNewParams{\n\t\tAmount: lithic.F(int64(10000)),\n\t\tReason: lithic.F(lithic.DisputeNewParamsReasonFraudCardPresent),\n\t\tTransactionToken: lithic.F("12345624-aa69-4cbc-a946-30d90181b621"),\n\t\tCustomerFiledDate: lithic.F(time.Now()),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", dispute.NetworkClaimIDs)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/disputes \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 10000,\n "reason": "FRAUD_CARD_PRESENT",\n "transaction_token": "12345624-aa69-4cbc-a946-30d90181b621"\n }\'',
+ },
+ java: {
+ method: 'disputes().create',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Dispute;\nimport com.lithic.api.models.DisputeCreateParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n DisputeCreateParams params = DisputeCreateParams.builder()\n .amount(10000L)\n .reason(DisputeCreateParams.Reason.FRAUD_CARD_PRESENT)\n .transactionToken("12345624-aa69-4cbc-a946-30d90181b621")\n .build();\n Dispute dispute = client.disputes().create(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'disputes().create',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Dispute\nimport com.lithic.api.models.DisputeCreateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: DisputeCreateParams = DisputeCreateParams.builder()\n .amount(10000L)\n .reason(DisputeCreateParams.Reason.FRAUD_CARD_PRESENT)\n .transactionToken("12345624-aa69-4cbc-a946-30d90181b621")\n .build()\n val dispute: Dispute = client.disputes().create(params)\n}',
+ },
+ python: {
+ method: 'disputes.create',
+ example:
+ 'import os\nfrom datetime import datetime\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute = client.disputes.create(\n amount=10000,\n reason="FRAUD_CARD_PRESENT",\n transaction_token="12345624-aa69-4cbc-a946-30d90181b621",\n customer_filed_date=datetime.fromisoformat("2021-06-28T22:53:15"),\n)\nprint(dispute.network_claim_ids)',
+ },
+ ruby: {
+ method: 'disputes.create',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndispute = lithic.disputes.create(\n amount: 10000,\n reason: :FRAUD_CARD_PRESENT,\n transaction_token: "12345624-aa69-4cbc-a946-30d90181b621"\n)\n\nputs(dispute)',
+ },
+ typescript: {
+ method: 'client.disputes.create',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst dispute = await client.disputes.create({\n amount: 10000,\n reason: 'FRAUD_CARD_PRESENT',\n transaction_token: '12345624-aa69-4cbc-a946-30d90181b621',\n customer_filed_date: '2021-06-28T22:53:15Z',\n});\n\nconsole.log(dispute.network_claim_ids);",
+ },
+ },
},
{
name: 'retrieve',
@@ -1160,6 +3477,92 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }',
markdown:
"## retrieve\n\n`client.disputes.retrieve(dispute_token: string): { token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n\n**get** `/v1/disputes/{dispute_token}`\n\nGet chargeback request.\n\n### Parameters\n\n- `dispute_token: string`\n\n### Returns\n\n- `{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n Dispute.\n\n - `token: string`\n - `amount: number`\n - `arbitration_date: string`\n - `created: string`\n - `customer_filed_date: string`\n - `customer_note: string`\n - `network_claim_ids: string[]`\n - `network_filed_date: string`\n - `network_reason_code: string`\n - `prearbitration_date: string`\n - `primary_claim_id: string`\n - `reason: string`\n - `representment_date: string`\n - `resolution_date: string`\n - `resolution_note: string`\n - `resolution_reason: string`\n - `status: string`\n - `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst dispute = await client.disputes.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(dispute);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Disputes.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdispute, err := client.Disputes.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", dispute.NetworkClaimIDs)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/disputes/$DISPUTE_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'disputes().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Dispute;\nimport com.lithic.api.models.DisputeRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n Dispute dispute = client.disputes().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'disputes().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Dispute\nimport com.lithic.api.models.DisputeRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val dispute: Dispute = client.disputes().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'disputes.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute = client.disputes.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(dispute.network_claim_ids)',
+ },
+ ruby: {
+ method: 'disputes.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndispute = lithic.disputes.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(dispute)',
+ },
+ typescript: {
+ method: 'client.disputes.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst dispute = await client.disputes.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(dispute.network_claim_ids);",
+ },
+ },
+ },
+ {
+ name: 'delete',
+ endpoint: '/v1/disputes/{dispute_token}',
+ httpMethod: 'delete',
+ summary: 'Withdraw chargeback request',
+ description: 'Withdraw chargeback request.',
+ stainlessPath: '(resource) disputes > (method) delete',
+ qualified: 'client.disputes.delete',
+ params: ['dispute_token: string;'],
+ response:
+ '{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }',
+ markdown:
+ "## delete\n\n`client.disputes.delete(dispute_token: string): { token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n\n**delete** `/v1/disputes/{dispute_token}`\n\nWithdraw chargeback request.\n\n### Parameters\n\n- `dispute_token: string`\n\n### Returns\n\n- `{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n Dispute.\n\n - `token: string`\n - `amount: number`\n - `arbitration_date: string`\n - `created: string`\n - `customer_filed_date: string`\n - `customer_note: string`\n - `network_claim_ids: string[]`\n - `network_filed_date: string`\n - `network_reason_code: string`\n - `prearbitration_date: string`\n - `primary_claim_id: string`\n - `reason: string`\n - `representment_date: string`\n - `resolution_date: string`\n - `resolution_note: string`\n - `resolution_reason: string`\n - `status: string`\n - `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst dispute = await client.disputes.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(dispute);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Disputes.Delete',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdispute, err := client.Disputes.Delete(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", dispute.NetworkClaimIDs)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/disputes/$DISPUTE_TOKEN \\\n -X DELETE \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'disputes().delete',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Dispute;\nimport com.lithic.api.models.DisputeDeleteParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n Dispute dispute = client.disputes().delete("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'disputes().delete',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Dispute\nimport com.lithic.api.models.DisputeDeleteParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val dispute: Dispute = client.disputes().delete("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'disputes.delete',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute = client.disputes.delete(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(dispute.network_claim_ids)',
+ },
+ ruby: {
+ method: 'disputes.delete',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndispute = lithic.disputes.delete("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(dispute)',
+ },
+ typescript: {
+ method: 'client.disputes.delete',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst dispute = await client.disputes.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(dispute.network_claim_ids);",
+ },
+ },
},
{
name: 'update',
@@ -1180,57 +3583,99 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }',
markdown:
"## update\n\n`client.disputes.update(dispute_token: string, amount?: number, customer_filed_date?: string, customer_note?: string, reason?: string): { token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n\n**patch** `/v1/disputes/{dispute_token}`\n\nUpdate chargeback request. Can only be modified if status is `NEW`.\n\n### Parameters\n\n- `dispute_token: string`\n\n- `amount?: number`\n Amount for chargeback\n\n- `customer_filed_date?: string`\n Date the customer filed the chargeback request\n\n- `customer_note?: string`\n Customer description\n\n- `reason?: string`\n Reason for chargeback\n\n### Returns\n\n- `{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n Dispute.\n\n - `token: string`\n - `amount: number`\n - `arbitration_date: string`\n - `created: string`\n - `customer_filed_date: string`\n - `customer_note: string`\n - `network_claim_ids: string[]`\n - `network_filed_date: string`\n - `network_reason_code: string`\n - `prearbitration_date: string`\n - `primary_claim_id: string`\n - `reason: string`\n - `representment_date: string`\n - `resolution_date: string`\n - `resolution_note: string`\n - `resolution_reason: string`\n - `status: string`\n - `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst dispute = await client.disputes.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(dispute);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Disputes.Update',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdispute, err := client.Disputes.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.DisputeUpdateParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", dispute.NetworkClaimIDs)\n}\n',
+ },
+ http: {
+ example:
+ "curl https://api.lithic.com/v1/disputes/$DISPUTE_TOKEN \\\n -X PATCH \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ },
+ java: {
+ method: 'disputes().update',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Dispute;\nimport com.lithic.api.models.DisputeUpdateParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n Dispute dispute = client.disputes().update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'disputes().update',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Dispute\nimport com.lithic.api.models.DisputeUpdateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val dispute: Dispute = client.disputes().update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'disputes.update',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute = client.disputes.update(\n dispute_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(dispute.network_claim_ids)',
+ },
+ ruby: {
+ method: 'disputes.update',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndispute = lithic.disputes.update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(dispute)',
+ },
+ typescript: {
+ method: 'client.disputes.update',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst dispute = await client.disputes.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(dispute.network_claim_ids);",
+ },
+ },
},
{
- name: 'list',
- endpoint: '/v1/disputes',
+ name: 'list_evidences',
+ endpoint: '/v1/disputes/{dispute_token}/evidences',
httpMethod: 'get',
- summary: 'List chargeback requests',
- description: 'List chargeback requests.',
- stainlessPath: '(resource) disputes > (method) list',
- qualified: 'client.disputes.list',
+ summary: 'List evidence',
+ description: 'List evidence for a chargeback request.',
+ stainlessPath: '(resource) disputes > (method) list_evidences',
+ qualified: 'client.disputes.listEvidences',
params: [
+ 'dispute_token: string;',
'begin?: string;',
'end?: string;',
'ending_before?: string;',
'page_size?: number;',
'starting_after?: string;',
- 'status?: string;',
- 'transaction_tokens?: string[];',
],
- response:
- '{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }',
- markdown:
- "## list\n\n`client.disputes.list(begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string, status?: string, transaction_tokens?: string[]): { token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n\n**get** `/v1/disputes`\n\nList chargeback requests.\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: string`\n Filter by status.\n\n- `transaction_tokens?: string[]`\n Transaction tokens to filter by.\n\n### Returns\n\n- `{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n Dispute.\n\n - `token: string`\n - `amount: number`\n - `arbitration_date: string`\n - `created: string`\n - `customer_filed_date: string`\n - `customer_note: string`\n - `network_claim_ids: string[]`\n - `network_filed_date: string`\n - `network_reason_code: string`\n - `prearbitration_date: string`\n - `primary_claim_id: string`\n - `reason: string`\n - `representment_date: string`\n - `resolution_date: string`\n - `resolution_note: string`\n - `resolution_reason: string`\n - `status: string`\n - `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const dispute of client.disputes.list()) {\n console.log(dispute);\n}\n```",
- },
- {
- name: 'delete',
- endpoint: '/v1/disputes/{dispute_token}',
- httpMethod: 'delete',
- summary: 'Withdraw chargeback request',
- description: 'Withdraw chargeback request.',
- stainlessPath: '(resource) disputes > (method) delete',
- qualified: 'client.disputes.delete',
- params: ['dispute_token: string;'],
- response:
- '{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }',
- markdown:
- "## delete\n\n`client.disputes.delete(dispute_token: string): { token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n\n**delete** `/v1/disputes/{dispute_token}`\n\nWithdraw chargeback request.\n\n### Parameters\n\n- `dispute_token: string`\n\n### Returns\n\n- `{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n Dispute.\n\n - `token: string`\n - `amount: number`\n - `arbitration_date: string`\n - `created: string`\n - `customer_filed_date: string`\n - `customer_note: string`\n - `network_claim_ids: string[]`\n - `network_filed_date: string`\n - `network_reason_code: string`\n - `prearbitration_date: string`\n - `primary_claim_id: string`\n - `reason: string`\n - `representment_date: string`\n - `resolution_date: string`\n - `resolution_note: string`\n - `resolution_reason: string`\n - `status: string`\n - `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst dispute = await client.disputes.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(dispute);\n```",
- },
- {
- name: 'delete_evidence',
- endpoint: '/v1/disputes/{dispute_token}/evidences/{evidence_token}',
- httpMethod: 'delete',
- summary: 'Delete evidence',
- description:
- 'Soft delete evidence for a chargeback request. Evidence will not be reviewed or submitted by Lithic after it is withdrawn.',
- stainlessPath: '(resource) disputes > (method) delete_evidence',
- qualified: 'client.disputes.deleteEvidence',
- params: ['dispute_token: string;', 'evidence_token: string;'],
response:
"{ token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }",
markdown:
- "## delete_evidence\n\n`client.disputes.deleteEvidence(dispute_token: string, evidence_token: string): { token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n\n**delete** `/v1/disputes/{dispute_token}/evidences/{evidence_token}`\n\nSoft delete evidence for a chargeback request. Evidence will not be reviewed or submitted by Lithic after it is withdrawn.\n\n### Parameters\n\n- `dispute_token: string`\n\n- `evidence_token: string`\n\n### Returns\n\n- `{ token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n Dispute evidence.\n\n - `token: string`\n - `created: string`\n - `dispute_token: string`\n - `upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'`\n - `download_url?: string`\n - `filename?: string`\n - `upload_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst disputeEvidence = await client.disputes.deleteEvidence('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { dispute_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(disputeEvidence);\n```",
+ "## list_evidences\n\n`client.disputes.listEvidences(dispute_token: string, begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n\n**get** `/v1/disputes/{dispute_token}/evidences`\n\nList evidence for a chargeback request.\n\n### Parameters\n\n- `dispute_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n Dispute evidence.\n\n - `token: string`\n - `created: string`\n - `dispute_token: string`\n - `upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'`\n - `download_url?: string`\n - `filename?: string`\n - `upload_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const disputeEvidence of client.disputes.listEvidences('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(disputeEvidence);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Disputes.ListEvidences',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Disputes.ListEvidences(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.DisputeListEvidencesParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/disputes/$DISPUTE_TOKEN/evidences \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'disputes().listEvidences',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.DisputeListEvidencesPage;\nimport com.lithic.api.models.DisputeListEvidencesParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n DisputeListEvidencesPage page = client.disputes().listEvidences("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'disputes().listEvidences',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.DisputeListEvidencesPage\nimport com.lithic.api.models.DisputeListEvidencesParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: DisputeListEvidencesPage = client.disputes().listEvidences("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'disputes.list_evidences',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.disputes.list_evidences(\n dispute_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
+ },
+ ruby: {
+ method: 'disputes.list_evidences',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.disputes.list_evidences("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.disputes.listEvidences',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const disputeEvidence of client.disputes.listEvidences(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(disputeEvidence.token);\n}",
+ },
+ },
},
{
name: 'initiate_evidence_upload',
@@ -1246,27 +3691,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }",
markdown:
"## initiate_evidence_upload\n\n`client.disputes.initiateEvidenceUpload(dispute_token: string, filename?: string): { token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n\n**post** `/v1/disputes/{dispute_token}/evidences`\n\nUse this endpoint to upload evidence for a chargeback request. It will return a URL to upload your documents to. The URL will expire in 30 minutes.\n\nUploaded documents must either be a `jpg`, `png` or `pdf` file, and each must be less than 5 GiB.\n\n\n### Parameters\n\n- `dispute_token: string`\n\n- `filename?: string`\n Filename of the evidence.\n\n### Returns\n\n- `{ token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n Dispute evidence.\n\n - `token: string`\n - `created: string`\n - `dispute_token: string`\n - `upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'`\n - `download_url?: string`\n - `filename?: string`\n - `upload_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst disputeEvidence = await client.disputes.initiateEvidenceUpload('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(disputeEvidence);\n```",
- },
- {
- name: 'list_evidences',
- endpoint: '/v1/disputes/{dispute_token}/evidences',
- httpMethod: 'get',
- summary: 'List evidence',
- description: 'List evidence for a chargeback request.',
- stainlessPath: '(resource) disputes > (method) list_evidences',
- qualified: 'client.disputes.listEvidences',
- params: [
- 'dispute_token: string;',
- 'begin?: string;',
- 'end?: string;',
- 'ending_before?: string;',
- 'page_size?: number;',
- 'starting_after?: string;',
- ],
- response:
- "{ token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }",
- markdown:
- "## list_evidences\n\n`client.disputes.listEvidences(dispute_token: string, begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n\n**get** `/v1/disputes/{dispute_token}/evidences`\n\nList evidence for a chargeback request.\n\n### Parameters\n\n- `dispute_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n Dispute evidence.\n\n - `token: string`\n - `created: string`\n - `dispute_token: string`\n - `upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'`\n - `download_url?: string`\n - `filename?: string`\n - `upload_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const disputeEvidence of client.disputes.listEvidences('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(disputeEvidence);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Disputes.InitiateEvidenceUpload',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdisputeEvidence, err := client.Disputes.InitiateEvidenceUpload(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.DisputeInitiateEvidenceUploadParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", disputeEvidence.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/disputes/$DISPUTE_TOKEN/evidences \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'disputes().initiateEvidenceUpload',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.DisputeEvidence;\nimport com.lithic.api.models.DisputeInitiateEvidenceUploadParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n DisputeEvidence disputeEvidence = client.disputes().initiateEvidenceUpload("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'disputes().initiateEvidenceUpload',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.DisputeEvidence\nimport com.lithic.api.models.DisputeInitiateEvidenceUploadParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val disputeEvidence: DisputeEvidence = client.disputes().initiateEvidenceUpload("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'disputes.initiate_evidence_upload',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute_evidence = client.disputes.initiate_evidence_upload(\n dispute_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(dispute_evidence.token)',
+ },
+ ruby: {
+ method: 'disputes.initiate_evidence_upload',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndispute_evidence = lithic.disputes.initiate_evidence_upload("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(dispute_evidence)',
+ },
+ typescript: {
+ method: 'client.disputes.initiateEvidenceUpload',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst disputeEvidence = await client.disputes.initiateEvidenceUpload(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(disputeEvidence.token);",
+ },
+ },
},
{
name: 'retrieve_evidence',
@@ -1281,20 +3741,93 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }",
markdown:
"## retrieve_evidence\n\n`client.disputes.retrieveEvidence(dispute_token: string, evidence_token: string): { token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n\n**get** `/v1/disputes/{dispute_token}/evidences/{evidence_token}`\n\nGet evidence for a chargeback request.\n\n### Parameters\n\n- `dispute_token: string`\n\n- `evidence_token: string`\n\n### Returns\n\n- `{ token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n Dispute evidence.\n\n - `token: string`\n - `created: string`\n - `dispute_token: string`\n - `upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'`\n - `download_url?: string`\n - `filename?: string`\n - `upload_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst disputeEvidence = await client.disputes.retrieveEvidence('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { dispute_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(disputeEvidence);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Disputes.GetEvidence',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdisputeEvidence, err := client.Disputes.GetEvidence(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", disputeEvidence.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/disputes/$DISPUTE_TOKEN/evidences/$EVIDENCE_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'disputes().retrieveEvidence',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.DisputeEvidence;\nimport com.lithic.api.models.DisputeRetrieveEvidenceParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n DisputeRetrieveEvidenceParams params = DisputeRetrieveEvidenceParams.builder()\n .disputeToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .evidenceToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build();\n DisputeEvidence disputeEvidence = client.disputes().retrieveEvidence(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'disputes().retrieveEvidence',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.DisputeEvidence\nimport com.lithic.api.models.DisputeRetrieveEvidenceParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: DisputeRetrieveEvidenceParams = DisputeRetrieveEvidenceParams.builder()\n .disputeToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .evidenceToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val disputeEvidence: DisputeEvidence = client.disputes().retrieveEvidence(params)\n}',
+ },
+ python: {
+ method: 'disputes.retrieve_evidence',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute_evidence = client.disputes.retrieve_evidence(\n evidence_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n dispute_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(dispute_evidence.token)',
+ },
+ ruby: {
+ method: 'disputes.retrieve_evidence',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndispute_evidence = lithic.disputes.retrieve_evidence(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n dispute_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(dispute_evidence)',
+ },
+ typescript: {
+ method: 'client.disputes.retrieveEvidence',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst disputeEvidence = await client.disputes.retrieveEvidence(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { dispute_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(disputeEvidence.token);",
+ },
+ },
},
{
- name: 'retrieve',
- endpoint: '/v2/disputes/{dispute_token}',
- httpMethod: 'get',
- summary: 'Retrieve a dispute',
- description: 'Retrieves a specific dispute by its token.',
- stainlessPath: '(resource) disputes_v2 > (method) retrieve',
- qualified: 'client.disputesV2.retrieve',
- params: ['dispute_token: string;'],
+ name: 'delete_evidence',
+ endpoint: '/v1/disputes/{dispute_token}/evidences/{evidence_token}',
+ httpMethod: 'delete',
+ summary: 'Delete evidence',
+ description:
+ 'Soft delete evidence for a chargeback request. Evidence will not be reviewed or submitted by Lithic after it is withdrawn.',
+ stainlessPath: '(resource) disputes > (method) delete_evidence',
+ qualified: 'client.disputes.deleteEvidence',
+ params: ['dispute_token: string;', 'evidence_token: string;'],
response:
- "{ token: string; account_token: string; card_token: string; case_id: string; created: string; currency: string; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; events: { token: string; created: string; data: object | object | object; type: 'WORKFLOW' | 'FINANCIAL' | 'CARDHOLDER_LIABILITY'; }[]; liability_allocation: { denied_amount: number; original_amount: number; recovered_amount: number; remaining_amount: number; written_off_amount: number; }; merchant: object; network: 'VISA' | 'MASTERCARD'; status: 'OPEN' | 'CLOSED'; transaction_series: { related_transaction_event_token: string; related_transaction_token: string; type: 'DISPUTE'; }; updated: string; }",
+ "{ token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }",
markdown:
- "## retrieve\n\n`client.disputesV2.retrieve(dispute_token: string): { token: string; account_token: string; card_token: string; case_id: string; created: string; currency: string; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; events: object[]; liability_allocation: object; merchant: merchant; network: 'VISA' | 'MASTERCARD'; status: 'OPEN' | 'CLOSED'; transaction_series: object; updated: string; }`\n\n**get** `/v2/disputes/{dispute_token}`\n\nRetrieves a specific dispute by its token.\n\n### Parameters\n\n- `dispute_token: string`\n\n### Returns\n\n- `{ token: string; account_token: string; card_token: string; case_id: string; created: string; currency: string; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; events: { token: string; created: string; data: { action: 'OPENED' | 'CLOSED' | 'REOPENED'; amount: number; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; reason: string; stage: 'CLAIM'; type: 'WORKFLOW'; } | { amount: number; polarity: 'CREDIT' | 'DEBIT'; stage: 'CHARGEBACK' | 'REPRESENTMENT' | 'PREARBITRATION' | 'ARBITRATION' | 'COLLABORATION'; type: 'FINANCIAL'; } | { action: 'PROVISIONAL_CREDIT_GRANTED' | 'PROVISIONAL_CREDIT_REVERSED' | 'WRITTEN_OFF'; amount: number; reason: string; type: 'CARDHOLDER_LIABILITY'; }; type: 'WORKFLOW' | 'FINANCIAL' | 'CARDHOLDER_LIABILITY'; }[]; liability_allocation: { denied_amount: number; original_amount: number; recovered_amount: number; remaining_amount: number; written_off_amount: number; }; merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }; network: 'VISA' | 'MASTERCARD'; status: 'OPEN' | 'CLOSED'; transaction_series: { related_transaction_event_token: string; related_transaction_token: string; type: 'DISPUTE'; }; updated: string; }`\n The Dispute object tracks the progression of a dispute throughout its lifecycle.\n\n - `token: string`\n - `account_token: string`\n - `card_token: string`\n - `case_id: string`\n - `created: string`\n - `currency: string`\n - `disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'`\n - `events: { token: string; created: string; data: { action: 'OPENED' | 'CLOSED' | 'REOPENED'; amount: number; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; reason: string; stage: 'CLAIM'; type: 'WORKFLOW'; } | { amount: number; polarity: 'CREDIT' | 'DEBIT'; stage: 'CHARGEBACK' | 'REPRESENTMENT' | 'PREARBITRATION' | 'ARBITRATION' | 'COLLABORATION'; type: 'FINANCIAL'; } | { action: 'PROVISIONAL_CREDIT_GRANTED' | 'PROVISIONAL_CREDIT_REVERSED' | 'WRITTEN_OFF'; amount: number; reason: string; type: 'CARDHOLDER_LIABILITY'; }; type: 'WORKFLOW' | 'FINANCIAL' | 'CARDHOLDER_LIABILITY'; }[]`\n - `liability_allocation: { denied_amount: number; original_amount: number; recovered_amount: number; remaining_amount: number; written_off_amount: number; }`\n - `merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }`\n - `network: 'VISA' | 'MASTERCARD'`\n - `status: 'OPEN' | 'CLOSED'`\n - `transaction_series: { related_transaction_event_token: string; related_transaction_token: string; type: 'DISPUTE'; }`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst disputeV2 = await client.disputesV2.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(disputeV2);\n```",
+ "## delete_evidence\n\n`client.disputes.deleteEvidence(dispute_token: string, evidence_token: string): { token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n\n**delete** `/v1/disputes/{dispute_token}/evidences/{evidence_token}`\n\nSoft delete evidence for a chargeback request. Evidence will not be reviewed or submitted by Lithic after it is withdrawn.\n\n### Parameters\n\n- `dispute_token: string`\n\n- `evidence_token: string`\n\n### Returns\n\n- `{ token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n Dispute evidence.\n\n - `token: string`\n - `created: string`\n - `dispute_token: string`\n - `upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'`\n - `download_url?: string`\n - `filename?: string`\n - `upload_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst disputeEvidence = await client.disputes.deleteEvidence('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { dispute_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(disputeEvidence);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Disputes.DeleteEvidence',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdisputeEvidence, err := client.Disputes.DeleteEvidence(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", disputeEvidence.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/disputes/$DISPUTE_TOKEN/evidences/$EVIDENCE_TOKEN \\\n -X DELETE \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'disputes().deleteEvidence',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.DisputeDeleteEvidenceParams;\nimport com.lithic.api.models.DisputeEvidence;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n DisputeDeleteEvidenceParams params = DisputeDeleteEvidenceParams.builder()\n .disputeToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .evidenceToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build();\n DisputeEvidence disputeEvidence = client.disputes().deleteEvidence(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'disputes().deleteEvidence',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.DisputeDeleteEvidenceParams\nimport com.lithic.api.models.DisputeEvidence\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: DisputeDeleteEvidenceParams = DisputeDeleteEvidenceParams.builder()\n .disputeToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .evidenceToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val disputeEvidence: DisputeEvidence = client.disputes().deleteEvidence(params)\n}',
+ },
+ python: {
+ method: 'disputes.delete_evidence',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute_evidence = client.disputes.delete_evidence(\n evidence_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n dispute_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(dispute_evidence.token)',
+ },
+ ruby: {
+ method: 'disputes.delete_evidence',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndispute_evidence = lithic.disputes.delete_evidence(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n dispute_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(dispute_evidence)',
+ },
+ typescript: {
+ method: 'client.disputes.deleteEvidence',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst disputeEvidence = await client.disputes.deleteEvidence(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { dispute_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(disputeEvidence.token);",
+ },
+ },
},
{
name: 'list',
@@ -1318,19 +3851,91 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; account_token: string; card_token: string; case_id: string; created: string; currency: string; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; events: { token: string; created: string; data: object | object | object; type: 'WORKFLOW' | 'FINANCIAL' | 'CARDHOLDER_LIABILITY'; }[]; liability_allocation: { denied_amount: number; original_amount: number; recovered_amount: number; remaining_amount: number; written_off_amount: number; }; merchant: object; network: 'VISA' | 'MASTERCARD'; status: 'OPEN' | 'CLOSED'; transaction_series: { related_transaction_event_token: string; related_transaction_token: string; type: 'DISPUTE'; }; updated: string; }",
markdown:
"## list\n\n`client.disputesV2.list(account_token?: string, begin?: string, card_token?: string, disputed_transaction_token?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; account_token: string; card_token: string; case_id: string; created: string; currency: string; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; events: object[]; liability_allocation: object; merchant: merchant; network: 'VISA' | 'MASTERCARD'; status: 'OPEN' | 'CLOSED'; transaction_series: object; updated: string; }`\n\n**get** `/v2/disputes`\n\nReturns a paginated list of disputes.\n\n### Parameters\n\n- `account_token?: string`\n Filter by account token.\n\n- `begin?: string`\n RFC 3339 timestamp for filtering by created date, inclusive.\n\n- `card_token?: string`\n Filter by card token.\n\n- `disputed_transaction_token?: string`\n Filter by the token of the transaction being disputed. Corresponds with transaction_series.related_transaction_token in the Dispute.\n\n- `end?: string`\n RFC 3339 timestamp for filtering by created date, inclusive.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Number of items to return.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_token: string; card_token: string; case_id: string; created: string; currency: string; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; events: { token: string; created: string; data: { action: 'OPENED' | 'CLOSED' | 'REOPENED'; amount: number; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; reason: string; stage: 'CLAIM'; type: 'WORKFLOW'; } | { amount: number; polarity: 'CREDIT' | 'DEBIT'; stage: 'CHARGEBACK' | 'REPRESENTMENT' | 'PREARBITRATION' | 'ARBITRATION' | 'COLLABORATION'; type: 'FINANCIAL'; } | { action: 'PROVISIONAL_CREDIT_GRANTED' | 'PROVISIONAL_CREDIT_REVERSED' | 'WRITTEN_OFF'; amount: number; reason: string; type: 'CARDHOLDER_LIABILITY'; }; type: 'WORKFLOW' | 'FINANCIAL' | 'CARDHOLDER_LIABILITY'; }[]; liability_allocation: { denied_amount: number; original_amount: number; recovered_amount: number; remaining_amount: number; written_off_amount: number; }; merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }; network: 'VISA' | 'MASTERCARD'; status: 'OPEN' | 'CLOSED'; transaction_series: { related_transaction_event_token: string; related_transaction_token: string; type: 'DISPUTE'; }; updated: string; }`\n The Dispute object tracks the progression of a dispute throughout its lifecycle.\n\n - `token: string`\n - `account_token: string`\n - `card_token: string`\n - `case_id: string`\n - `created: string`\n - `currency: string`\n - `disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'`\n - `events: { token: string; created: string; data: { action: 'OPENED' | 'CLOSED' | 'REOPENED'; amount: number; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; reason: string; stage: 'CLAIM'; type: 'WORKFLOW'; } | { amount: number; polarity: 'CREDIT' | 'DEBIT'; stage: 'CHARGEBACK' | 'REPRESENTMENT' | 'PREARBITRATION' | 'ARBITRATION' | 'COLLABORATION'; type: 'FINANCIAL'; } | { action: 'PROVISIONAL_CREDIT_GRANTED' | 'PROVISIONAL_CREDIT_REVERSED' | 'WRITTEN_OFF'; amount: number; reason: string; type: 'CARDHOLDER_LIABILITY'; }; type: 'WORKFLOW' | 'FINANCIAL' | 'CARDHOLDER_LIABILITY'; }[]`\n - `liability_allocation: { denied_amount: number; original_amount: number; recovered_amount: number; remaining_amount: number; written_off_amount: number; }`\n - `merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }`\n - `network: 'VISA' | 'MASTERCARD'`\n - `status: 'OPEN' | 'CLOSED'`\n - `transaction_series: { related_transaction_event_token: string; related_transaction_token: string; type: 'DISPUTE'; }`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const disputeV2 of client.disputesV2.list()) {\n console.log(disputeV2);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.DisputesV2.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.DisputesV2.List(context.TODO(), lithic.DisputesV2ListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example: 'curl https://api.lithic.com/v2/disputes \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'disputesV2().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.DisputesV2ListPage;\nimport com.lithic.api.models.DisputesV2ListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n DisputesV2ListPage page = client.disputesV2().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'disputesV2().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.DisputesV2ListPage\nimport com.lithic.api.models.DisputesV2ListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: DisputesV2ListPage = client.disputesV2().list()\n}',
+ },
+ python: {
+ method: 'disputes_v2.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.disputes_v2.list()\npage = page.data[0]\nprint(page.case_id)',
+ },
+ ruby: {
+ method: 'disputes_v2.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.disputes_v2.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.disputesV2.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const disputeV2 of client.disputesV2.list()) {\n console.log(disputeV2.case_id);\n}",
+ },
+ },
},
{
name: 'retrieve',
- endpoint: '/v1/events/{event_token}',
+ endpoint: '/v2/disputes/{dispute_token}',
httpMethod: 'get',
- summary: 'Get event',
- description: 'Get an event.',
- stainlessPath: '(resource) events > (method) retrieve',
- qualified: 'client.events.retrieve',
- params: ['event_token: string;'],
- response: '{ token: string; created: string; event_type: string; payload: object; }',
+ summary: 'Retrieve a dispute',
+ description: 'Retrieves a specific dispute by its token.',
+ stainlessPath: '(resource) disputes_v2 > (method) retrieve',
+ qualified: 'client.disputesV2.retrieve',
+ params: ['dispute_token: string;'],
+ response:
+ "{ token: string; account_token: string; card_token: string; case_id: string; created: string; currency: string; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; events: { token: string; created: string; data: object | object | object; type: 'WORKFLOW' | 'FINANCIAL' | 'CARDHOLDER_LIABILITY'; }[]; liability_allocation: { denied_amount: number; original_amount: number; recovered_amount: number; remaining_amount: number; written_off_amount: number; }; merchant: object; network: 'VISA' | 'MASTERCARD'; status: 'OPEN' | 'CLOSED'; transaction_series: { related_transaction_event_token: string; related_transaction_token: string; type: 'DISPUTE'; }; updated: string; }",
markdown:
- "## retrieve\n\n`client.events.retrieve(event_token: string): { token: string; created: string; event_type: string; payload: object; }`\n\n**get** `/v1/events/{event_token}`\n\nGet an event.\n\n### Parameters\n\n- `event_token: string`\n\n### Returns\n\n- `{ token: string; created: string; event_type: string; payload: object; }`\n A single event that affects the transaction state and lifecycle.\n\n - `token: string`\n - `created: string`\n - `event_type: string`\n - `payload: object`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst event = await client.events.retrieve('event_token');\n\nconsole.log(event);\n```",
+ "## retrieve\n\n`client.disputesV2.retrieve(dispute_token: string): { token: string; account_token: string; card_token: string; case_id: string; created: string; currency: string; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; events: object[]; liability_allocation: object; merchant: merchant; network: 'VISA' | 'MASTERCARD'; status: 'OPEN' | 'CLOSED'; transaction_series: object; updated: string; }`\n\n**get** `/v2/disputes/{dispute_token}`\n\nRetrieves a specific dispute by its token.\n\n### Parameters\n\n- `dispute_token: string`\n\n### Returns\n\n- `{ token: string; account_token: string; card_token: string; case_id: string; created: string; currency: string; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; events: { token: string; created: string; data: { action: 'OPENED' | 'CLOSED' | 'REOPENED'; amount: number; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; reason: string; stage: 'CLAIM'; type: 'WORKFLOW'; } | { amount: number; polarity: 'CREDIT' | 'DEBIT'; stage: 'CHARGEBACK' | 'REPRESENTMENT' | 'PREARBITRATION' | 'ARBITRATION' | 'COLLABORATION'; type: 'FINANCIAL'; } | { action: 'PROVISIONAL_CREDIT_GRANTED' | 'PROVISIONAL_CREDIT_REVERSED' | 'WRITTEN_OFF'; amount: number; reason: string; type: 'CARDHOLDER_LIABILITY'; }; type: 'WORKFLOW' | 'FINANCIAL' | 'CARDHOLDER_LIABILITY'; }[]; liability_allocation: { denied_amount: number; original_amount: number; recovered_amount: number; remaining_amount: number; written_off_amount: number; }; merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }; network: 'VISA' | 'MASTERCARD'; status: 'OPEN' | 'CLOSED'; transaction_series: { related_transaction_event_token: string; related_transaction_token: string; type: 'DISPUTE'; }; updated: string; }`\n The Dispute object tracks the progression of a dispute throughout its lifecycle.\n\n - `token: string`\n - `account_token: string`\n - `card_token: string`\n - `case_id: string`\n - `created: string`\n - `currency: string`\n - `disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'`\n - `events: { token: string; created: string; data: { action: 'OPENED' | 'CLOSED' | 'REOPENED'; amount: number; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; reason: string; stage: 'CLAIM'; type: 'WORKFLOW'; } | { amount: number; polarity: 'CREDIT' | 'DEBIT'; stage: 'CHARGEBACK' | 'REPRESENTMENT' | 'PREARBITRATION' | 'ARBITRATION' | 'COLLABORATION'; type: 'FINANCIAL'; } | { action: 'PROVISIONAL_CREDIT_GRANTED' | 'PROVISIONAL_CREDIT_REVERSED' | 'WRITTEN_OFF'; amount: number; reason: string; type: 'CARDHOLDER_LIABILITY'; }; type: 'WORKFLOW' | 'FINANCIAL' | 'CARDHOLDER_LIABILITY'; }[]`\n - `liability_allocation: { denied_amount: number; original_amount: number; recovered_amount: number; remaining_amount: number; written_off_amount: number; }`\n - `merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }`\n - `network: 'VISA' | 'MASTERCARD'`\n - `status: 'OPEN' | 'CLOSED'`\n - `transaction_series: { related_transaction_event_token: string; related_transaction_token: string; type: 'DISPUTE'; }`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst disputeV2 = await client.disputesV2.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(disputeV2);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.DisputesV2.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdisputeV2, err := client.DisputesV2.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", disputeV2.CaseID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v2/disputes/$DISPUTE_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'disputesV2().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.DisputeV2;\nimport com.lithic.api.models.DisputesV2RetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n DisputeV2 disputeV2 = client.disputesV2().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'disputesV2().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.DisputeV2\nimport com.lithic.api.models.DisputesV2RetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val disputeV2: DisputeV2 = client.disputesV2().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'disputes_v2.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute_v2 = client.disputes_v2.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(dispute_v2.case_id)',
+ },
+ ruby: {
+ method: 'disputes_v2.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndispute_v2 = lithic.disputes_v2.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(dispute_v2)',
+ },
+ typescript: {
+ method: 'client.disputesV2.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst disputeV2 = await client.disputesV2.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(disputeV2.case_id);",
+ },
+ },
},
{
name: 'list',
@@ -1352,6 +3957,90 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response: '{ token: string; created: string; event_type: string; payload: object; }',
markdown:
"## list\n\n`client.events.list(begin?: string, end?: string, ending_before?: string, event_types?: string[], page_size?: number, starting_after?: string, with_content?: boolean): { token: string; created: string; event_type: string; payload: object; }`\n\n**get** `/v1/events`\n\nList all events.\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `event_types?: string[]`\n Event types to filter events by.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `with_content?: boolean`\n Whether to include the event payload content in the response.\n\n### Returns\n\n- `{ token: string; created: string; event_type: string; payload: object; }`\n A single event that affects the transaction state and lifecycle.\n\n - `token: string`\n - `created: string`\n - `event_type: string`\n - `payload: object`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const event of client.events.list()) {\n console.log(event);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Events.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Events.List(context.TODO(), lithic.EventListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example: 'curl https://api.lithic.com/v1/events \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'events().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.EventListPage;\nimport com.lithic.api.models.EventListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n EventListPage page = client.events().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'events().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventListPage\nimport com.lithic.api.models.EventListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: EventListPage = client.events().list()\n}',
+ },
+ python: {
+ method: 'events.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.events.list()\npage = page.data[0]\nprint(page.token)',
+ },
+ ruby: {
+ method: 'events.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.events.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.events.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const event of client.events.list()) {\n console.log(event.token);\n}",
+ },
+ },
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/events/{event_token}',
+ httpMethod: 'get',
+ summary: 'Get event',
+ description: 'Get an event.',
+ stainlessPath: '(resource) events > (method) retrieve',
+ qualified: 'client.events.retrieve',
+ params: ['event_token: string;'],
+ response: '{ token: string; created: string; event_type: string; payload: object; }',
+ markdown:
+ "## retrieve\n\n`client.events.retrieve(event_token: string): { token: string; created: string; event_type: string; payload: object; }`\n\n**get** `/v1/events/{event_token}`\n\nGet an event.\n\n### Parameters\n\n- `event_token: string`\n\n### Returns\n\n- `{ token: string; created: string; event_type: string; payload: object; }`\n A single event that affects the transaction state and lifecycle.\n\n - `token: string`\n - `created: string`\n - `event_type: string`\n - `payload: object`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst event = await client.events.retrieve('event_token');\n\nconsole.log(event);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Events.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tevent, err := client.Events.Get(context.TODO(), "event_token")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", event.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/events/$EVENT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'events().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Event;\nimport com.lithic.api.models.EventRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n Event event = client.events().retrieve("event_token");\n }\n}',
+ },
+ kotlin: {
+ method: 'events().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Event\nimport com.lithic.api.models.EventRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val event: Event = client.events().retrieve("event_token")\n}',
+ },
+ python: {
+ method: 'events.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nevent = client.events.retrieve(\n "event_token",\n)\nprint(event.token)',
+ },
+ ruby: {
+ method: 'events.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nevent = lithic.events.retrieve("event_token")\n\nputs(event)',
+ },
+ typescript: {
+ method: 'client.events.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst event = await client.events.retrieve('event_token');\n\nconsole.log(event.token);",
+ },
+ },
},
{
name: 'list_attempts',
@@ -1374,20 +4063,142 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; created: string; event_subscription_token: string; event_token: string; response: string; response_status_code: number; status: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'; url: string; }",
markdown:
"## list_attempts\n\n`client.events.listAttempts(event_token: string, begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string, status?: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'): { token: string; created: string; event_subscription_token: string; event_token: string; response: string; response_status_code: number; status: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'; url: string; }`\n\n**get** `/v1/events/{event_token}/attempts`\n\nList all the message attempts for a given event.\n\n### Parameters\n\n- `event_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'`\n\n### Returns\n\n- `{ token: string; created: string; event_subscription_token: string; event_token: string; response: string; response_status_code: number; status: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'; url: string; }`\n A subscription to specific event types.\n\n - `token: string`\n - `created: string`\n - `event_subscription_token: string`\n - `event_token: string`\n - `response: string`\n - `response_status_code: number`\n - `status: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'`\n - `url: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const messageAttempt of client.events.listAttempts('event_token')) {\n console.log(messageAttempt);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Events.ListAttempts',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Events.ListAttempts(\n\t\tcontext.TODO(),\n\t\t"event_token",\n\t\tlithic.EventListAttemptsParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/events/$EVENT_TOKEN/attempts \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'events().listAttempts',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.EventListAttemptsPage;\nimport com.lithic.api.models.EventListAttemptsParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n EventListAttemptsPage page = client.events().listAttempts("event_token");\n }\n}',
+ },
+ kotlin: {
+ method: 'events().listAttempts',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventListAttemptsPage\nimport com.lithic.api.models.EventListAttemptsParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: EventListAttemptsPage = client.events().listAttempts("event_token")\n}',
+ },
+ python: {
+ method: 'events.list_attempts',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.events.list_attempts(\n event_token="event_token",\n)\npage = page.data[0]\nprint(page.token)',
+ },
+ ruby: {
+ method: 'events.list_attempts',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.events.list_attempts("event_token")\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.events.listAttempts',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const messageAttempt of client.events.listAttempts('event_token')) {\n console.log(messageAttempt.token);\n}",
+ },
+ },
},
{
- name: 'create',
+ name: 'list',
endpoint: '/v1/event_subscriptions',
- httpMethod: 'post',
- summary: 'Create event subscription',
- description: 'Create a new event subscription.',
- stainlessPath: '(resource) events.subscriptions > (method) create',
+ httpMethod: 'get',
+ summary: 'List event subscriptions',
+ description: 'List all the event subscriptions.',
+ stainlessPath: '(resource) events.subscriptions > (method) list',
+ qualified: 'client.events.subscriptions.list',
+ params: ['ending_before?: string;', 'page_size?: number;', 'starting_after?: string;'],
+ response:
+ '{ token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }',
+ markdown:
+ "## list\n\n`client.events.subscriptions.list(ending_before?: string, page_size?: number, starting_after?: string): { token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n\n**get** `/v1/event_subscriptions`\n\nList all the event subscriptions.\n\n### Parameters\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n A subscription to specific event types.\n\n - `token: string`\n - `description: string`\n - `disabled: boolean`\n - `url: string`\n - `event_types?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const eventSubscription of client.events.subscriptions.list()) {\n console.log(eventSubscription);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Events.Subscriptions.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Events.Subscriptions.List(context.TODO(), lithic.EventSubscriptionListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/event_subscriptions \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'events().subscriptions().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.EventSubscriptionListPage;\nimport com.lithic.api.models.EventSubscriptionListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n EventSubscriptionListPage page = client.events().subscriptions().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'events().subscriptions().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventSubscriptionListPage\nimport com.lithic.api.models.EventSubscriptionListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: EventSubscriptionListPage = client.events().subscriptions().list()\n}',
+ },
+ python: {
+ method: 'events.subscriptions.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.events.subscriptions.list()\npage = page.data[0]\nprint(page.token)',
+ },
+ ruby: {
+ method: 'events.subscriptions.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.events.subscriptions.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.events.subscriptions.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const eventSubscription of client.events.subscriptions.list()) {\n console.log(eventSubscription.token);\n}",
+ },
+ },
+ },
+ {
+ name: 'create',
+ endpoint: '/v1/event_subscriptions',
+ httpMethod: 'post',
+ summary: 'Create event subscription',
+ description: 'Create a new event subscription.',
+ stainlessPath: '(resource) events.subscriptions > (method) create',
qualified: 'client.events.subscriptions.create',
params: ['url: string;', 'description?: string;', 'disabled?: boolean;', 'event_types?: string[];'],
response:
'{ token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }',
markdown:
"## create\n\n`client.events.subscriptions.create(url: string, description?: string, disabled?: boolean, event_types?: string[]): { token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n\n**post** `/v1/event_subscriptions`\n\nCreate a new event subscription.\n\n### Parameters\n\n- `url: string`\n URL to which event webhooks will be sent. URL must be a valid HTTPS address.\n\n- `description?: string`\n Event subscription description.\n\n- `disabled?: boolean`\n Whether the event subscription is active (false) or inactive (true).\n\n- `event_types?: string[]`\n Indicates types of events that will be sent to this subscription. If left blank, all types will be sent.\n\n### Returns\n\n- `{ token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n A subscription to specific event types.\n\n - `token: string`\n - `description: string`\n - `disabled: boolean`\n - `url: string`\n - `event_types?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst eventSubscription = await client.events.subscriptions.create({ url: 'https://example.com' });\n\nconsole.log(eventSubscription);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Events.Subscriptions.New',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\teventSubscription, err := client.Events.Subscriptions.New(context.TODO(), lithic.EventSubscriptionNewParams{\n\t\tURL: lithic.F("https://example.com"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", eventSubscription.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/event_subscriptions \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "url": "https://example.com"\n }\'',
+ },
+ java: {
+ method: 'events().subscriptions().create',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.EventSubscription;\nimport com.lithic.api.models.EventSubscriptionCreateParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n EventSubscriptionCreateParams params = EventSubscriptionCreateParams.builder()\n .url("https://example.com")\n .build();\n EventSubscription eventSubscription = client.events().subscriptions().create(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'events().subscriptions().create',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventSubscription\nimport com.lithic.api.models.EventSubscriptionCreateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: EventSubscriptionCreateParams = EventSubscriptionCreateParams.builder()\n .url("https://example.com")\n .build()\n val eventSubscription: EventSubscription = client.events().subscriptions().create(params)\n}',
+ },
+ python: {
+ method: 'events.subscriptions.create',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nevent_subscription = client.events.subscriptions.create(\n url="https://example.com",\n)\nprint(event_subscription.token)',
+ },
+ ruby: {
+ method: 'events.subscriptions.create',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nevent_subscription = lithic.events.subscriptions.create(url: "https://example.com")\n\nputs(event_subscription)',
+ },
+ typescript: {
+ method: 'client.events.subscriptions.create',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst eventSubscription = await client.events.subscriptions.create({ url: 'https://example.com' });\n\nconsole.log(eventSubscription.token);",
+ },
+ },
},
{
name: 'retrieve',
@@ -1402,6 +4213,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'{ token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }',
markdown:
"## retrieve\n\n`client.events.subscriptions.retrieve(event_subscription_token: string): { token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n\n**get** `/v1/event_subscriptions/{event_subscription_token}`\n\nGet an event subscription.\n\n### Parameters\n\n- `event_subscription_token: string`\n\n### Returns\n\n- `{ token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n A subscription to specific event types.\n\n - `token: string`\n - `description: string`\n - `disabled: boolean`\n - `url: string`\n - `event_types?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst eventSubscription = await client.events.subscriptions.retrieve('event_subscription_token');\n\nconsole.log(eventSubscription);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Events.Subscriptions.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\teventSubscription, err := client.Events.Subscriptions.Get(context.TODO(), "event_subscription_token")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", eventSubscription.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'events().subscriptions().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.EventSubscription;\nimport com.lithic.api.models.EventSubscriptionRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n EventSubscription eventSubscription = client.events().subscriptions().retrieve("event_subscription_token");\n }\n}',
+ },
+ kotlin: {
+ method: 'events().subscriptions().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventSubscription\nimport com.lithic.api.models.EventSubscriptionRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val eventSubscription: EventSubscription = client.events().subscriptions().retrieve("event_subscription_token")\n}',
+ },
+ python: {
+ method: 'events.subscriptions.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nevent_subscription = client.events.subscriptions.retrieve(\n "event_subscription_token",\n)\nprint(event_subscription.token)',
+ },
+ ruby: {
+ method: 'events.subscriptions.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nevent_subscription = lithic.events.subscriptions.retrieve("event_subscription_token")\n\nputs(event_subscription)',
+ },
+ typescript: {
+ method: 'client.events.subscriptions.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst eventSubscription = await client.events.subscriptions.retrieve('event_subscription_token');\n\nconsole.log(eventSubscription.token);",
+ },
+ },
},
{
name: 'update',
@@ -1422,20 +4269,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'{ token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }',
markdown:
"## update\n\n`client.events.subscriptions.update(event_subscription_token: string, url: string, description?: string, disabled?: boolean, event_types?: string[]): { token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n\n**patch** `/v1/event_subscriptions/{event_subscription_token}`\n\nUpdate an event subscription.\n\n### Parameters\n\n- `event_subscription_token: string`\n\n- `url: string`\n URL to which event webhooks will be sent. URL must be a valid HTTPS address.\n\n- `description?: string`\n Event subscription description.\n\n- `disabled?: boolean`\n Whether the event subscription is active (false) or inactive (true).\n\n- `event_types?: string[]`\n Indicates types of events that will be sent to this subscription. If left blank, all types will be sent.\n\n### Returns\n\n- `{ token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n A subscription to specific event types.\n\n - `token: string`\n - `description: string`\n - `disabled: boolean`\n - `url: string`\n - `event_types?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst eventSubscription = await client.events.subscriptions.update('event_subscription_token', { url: 'https://example.com' });\n\nconsole.log(eventSubscription);\n```",
- },
- {
- name: 'list',
- endpoint: '/v1/event_subscriptions',
- httpMethod: 'get',
- summary: 'List event subscriptions',
- description: 'List all the event subscriptions.',
- stainlessPath: '(resource) events.subscriptions > (method) list',
- qualified: 'client.events.subscriptions.list',
- params: ['ending_before?: string;', 'page_size?: number;', 'starting_after?: string;'],
- response:
- '{ token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }',
- markdown:
- "## list\n\n`client.events.subscriptions.list(ending_before?: string, page_size?: number, starting_after?: string): { token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n\n**get** `/v1/event_subscriptions`\n\nList all the event subscriptions.\n\n### Parameters\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n A subscription to specific event types.\n\n - `token: string`\n - `description: string`\n - `disabled: boolean`\n - `url: string`\n - `event_types?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const eventSubscription of client.events.subscriptions.list()) {\n console.log(eventSubscription);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Events.Subscriptions.Update',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\teventSubscription, err := client.Events.Subscriptions.Update(\n\t\tcontext.TODO(),\n\t\t"event_subscription_token",\n\t\tlithic.EventSubscriptionUpdateParams{\n\t\t\tURL: lithic.F("https://example.com"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", eventSubscription.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "url": "https://example.com"\n }\'',
+ },
+ java: {
+ method: 'events().subscriptions().update',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.EventSubscription;\nimport com.lithic.api.models.EventSubscriptionUpdateParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n EventSubscriptionUpdateParams params = EventSubscriptionUpdateParams.builder()\n .eventSubscriptionToken("event_subscription_token")\n .url("https://example.com")\n .build();\n EventSubscription eventSubscription = client.events().subscriptions().update(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'events().subscriptions().update',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventSubscription\nimport com.lithic.api.models.EventSubscriptionUpdateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: EventSubscriptionUpdateParams = EventSubscriptionUpdateParams.builder()\n .eventSubscriptionToken("event_subscription_token")\n .url("https://example.com")\n .build()\n val eventSubscription: EventSubscription = client.events().subscriptions().update(params)\n}',
+ },
+ python: {
+ method: 'events.subscriptions.update',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nevent_subscription = client.events.subscriptions.update(\n event_subscription_token="event_subscription_token",\n url="https://example.com",\n)\nprint(event_subscription.token)',
+ },
+ ruby: {
+ method: 'events.subscriptions.update',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nevent_subscription = lithic.events.subscriptions.update("event_subscription_token", url: "https://example.com")\n\nputs(event_subscription)',
+ },
+ typescript: {
+ method: 'client.events.subscriptions.update',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst eventSubscription = await client.events.subscriptions.update('event_subscription_token', {\n url: 'https://example.com',\n});\n\nconsole.log(eventSubscription.token);",
+ },
+ },
},
{
name: 'delete',
@@ -1448,6 +4317,90 @@ const EMBEDDED_METHODS: MethodEntry[] = [
params: ['event_subscription_token: string;'],
markdown:
"## delete\n\n`client.events.subscriptions.delete(event_subscription_token: string): void`\n\n**delete** `/v1/event_subscriptions/{event_subscription_token}`\n\nDelete an event subscription.\n\n### Parameters\n\n- `event_subscription_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.events.subscriptions.delete('event_subscription_token')\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Events.Subscriptions.Delete',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Events.Subscriptions.Delete(context.TODO(), "event_subscription_token")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN \\\n -X DELETE \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'events().subscriptions().delete',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.EventSubscriptionDeleteParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n client.events().subscriptions().delete("event_subscription_token");\n }\n}',
+ },
+ kotlin: {
+ method: 'events().subscriptions().delete',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventSubscriptionDeleteParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.events().subscriptions().delete("event_subscription_token")\n}',
+ },
+ python: {
+ method: 'events.subscriptions.delete',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.events.subscriptions.delete(\n "event_subscription_token",\n)',
+ },
+ ruby: {
+ method: 'events.subscriptions.delete',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.events.subscriptions.delete("event_subscription_token")\n\nputs(result)',
+ },
+ typescript: {
+ method: 'client.events.subscriptions.delete',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.events.subscriptions.delete('event_subscription_token');",
+ },
+ },
+ },
+ {
+ name: 'recover',
+ endpoint: '/v1/event_subscriptions/{event_subscription_token}/recover',
+ httpMethod: 'post',
+ summary: 'Resend failed messages',
+ description: 'Resend all failed messages since a given time.',
+ stainlessPath: '(resource) events.subscriptions > (method) recover',
+ qualified: 'client.events.subscriptions.recover',
+ params: ['event_subscription_token: string;', 'begin?: string;', 'end?: string;'],
+ markdown:
+ "## recover\n\n`client.events.subscriptions.recover(event_subscription_token: string, begin?: string, end?: string): void`\n\n**post** `/v1/event_subscriptions/{event_subscription_token}/recover`\n\nResend all failed messages since a given time.\n\n### Parameters\n\n- `event_subscription_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.events.subscriptions.recover('event_subscription_token')\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Events.Subscriptions.Recover',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Events.Subscriptions.Recover(\n\t\tcontext.TODO(),\n\t\t"event_subscription_token",\n\t\tlithic.EventSubscriptionRecoverParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN/recover \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'events().subscriptions().recover',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.EventSubscriptionRecoverParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n client.events().subscriptions().recover("event_subscription_token");\n }\n}',
+ },
+ kotlin: {
+ method: 'events().subscriptions().recover',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventSubscriptionRecoverParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.events().subscriptions().recover("event_subscription_token")\n}',
+ },
+ python: {
+ method: 'events.subscriptions.recover',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.events.subscriptions.recover(\n event_subscription_token="event_subscription_token",\n)',
+ },
+ ruby: {
+ method: 'events.subscriptions.recover',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.events.subscriptions.recover("event_subscription_token")\n\nputs(result)',
+ },
+ typescript: {
+ method: 'client.events.subscriptions.recover',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.events.subscriptions.recover('event_subscription_token');",
+ },
+ },
},
{
name: 'list_attempts',
@@ -1470,18 +4423,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; created: string; event_subscription_token: string; event_token: string; response: string; response_status_code: number; status: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'; url: string; }",
markdown:
"## list_attempts\n\n`client.events.subscriptions.listAttempts(event_subscription_token: string, begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string, status?: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'): { token: string; created: string; event_subscription_token: string; event_token: string; response: string; response_status_code: number; status: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'; url: string; }`\n\n**get** `/v1/event_subscriptions/{event_subscription_token}/attempts`\n\nList all the message attempts for a given event subscription.\n\n### Parameters\n\n- `event_subscription_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'`\n\n### Returns\n\n- `{ token: string; created: string; event_subscription_token: string; event_token: string; response: string; response_status_code: number; status: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'; url: string; }`\n A subscription to specific event types.\n\n - `token: string`\n - `created: string`\n - `event_subscription_token: string`\n - `event_token: string`\n - `response: string`\n - `response_status_code: number`\n - `status: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'`\n - `url: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const messageAttempt of client.events.subscriptions.listAttempts('event_subscription_token')) {\n console.log(messageAttempt);\n}\n```",
- },
- {
- name: 'recover',
- endpoint: '/v1/event_subscriptions/{event_subscription_token}/recover',
- httpMethod: 'post',
- summary: 'Resend failed messages',
- description: 'Resend all failed messages since a given time.',
- stainlessPath: '(resource) events.subscriptions > (method) recover',
- qualified: 'client.events.subscriptions.recover',
- params: ['event_subscription_token: string;', 'begin?: string;', 'end?: string;'],
- markdown:
- "## recover\n\n`client.events.subscriptions.recover(event_subscription_token: string, begin?: string, end?: string): void`\n\n**post** `/v1/event_subscriptions/{event_subscription_token}/recover`\n\nResend all failed messages since a given time.\n\n### Parameters\n\n- `event_subscription_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.events.subscriptions.recover('event_subscription_token')\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Events.Subscriptions.ListAttempts',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Events.Subscriptions.ListAttempts(\n\t\tcontext.TODO(),\n\t\t"event_subscription_token",\n\t\tlithic.EventSubscriptionListAttemptsParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN/attempts \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'events().subscriptions().listAttempts',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.EventSubscriptionListAttemptsPage;\nimport com.lithic.api.models.EventSubscriptionListAttemptsParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n EventSubscriptionListAttemptsPage page = client.events().subscriptions().listAttempts("event_subscription_token");\n }\n}',
+ },
+ kotlin: {
+ method: 'events().subscriptions().listAttempts',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventSubscriptionListAttemptsPage\nimport com.lithic.api.models.EventSubscriptionListAttemptsParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: EventSubscriptionListAttemptsPage = client.events().subscriptions().listAttempts("event_subscription_token")\n}',
+ },
+ python: {
+ method: 'events.subscriptions.list_attempts',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.events.subscriptions.list_attempts(\n event_subscription_token="event_subscription_token",\n)\npage = page.data[0]\nprint(page.token)',
+ },
+ ruby: {
+ method: 'events.subscriptions.list_attempts',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.events.subscriptions.list_attempts("event_subscription_token")\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.events.subscriptions.listAttempts',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const messageAttempt of client.events.subscriptions.listAttempts(\n 'event_subscription_token',\n)) {\n console.log(messageAttempt.token);\n}",
+ },
+ },
},
{
name: 'replay_missing',
@@ -1495,6 +4472,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
params: ['event_subscription_token: string;', 'begin?: string;', 'end?: string;'],
markdown:
"## replay_missing\n\n`client.events.subscriptions.replayMissing(event_subscription_token: string, begin?: string, end?: string): void`\n\n**post** `/v1/event_subscriptions/{event_subscription_token}/replay_missing`\n\nReplays messages to the endpoint. Only messages that were created after `begin` will be sent. Messages that were previously sent to the endpoint are not resent.\nMessage will be retried if endpoint responds with a non-2xx status code. See [Retry Schedule](https://docs.lithic.com/docs/events-api#retry-schedule) for details.\n\n\n### Parameters\n\n- `event_subscription_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.events.subscriptions.replayMissing('event_subscription_token')\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Events.Subscriptions.ReplayMissing',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Events.Subscriptions.ReplayMissing(\n\t\tcontext.TODO(),\n\t\t"event_subscription_token",\n\t\tlithic.EventSubscriptionReplayMissingParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN/replay_missing \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'events().subscriptions().replayMissing',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.EventSubscriptionReplayMissingParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n client.events().subscriptions().replayMissing("event_subscription_token");\n }\n}',
+ },
+ kotlin: {
+ method: 'events().subscriptions().replayMissing',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventSubscriptionReplayMissingParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.events().subscriptions().replayMissing("event_subscription_token")\n}',
+ },
+ python: {
+ method: 'events.subscriptions.replay_missing',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.events.subscriptions.replay_missing(\n event_subscription_token="event_subscription_token",\n)',
+ },
+ ruby: {
+ method: 'events.subscriptions.replay_missing',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.events.subscriptions.replay_missing("event_subscription_token")\n\nputs(result)',
+ },
+ typescript: {
+ method: 'client.events.subscriptions.replayMissing',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.events.subscriptions.replayMissing('event_subscription_token');",
+ },
+ },
},
{
name: 'retrieve_secret',
@@ -1508,6 +4521,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response: '{ secret?: string; }',
markdown:
"## retrieve_secret\n\n`client.events.subscriptions.retrieveSecret(event_subscription_token: string): { secret?: string; }`\n\n**get** `/v1/event_subscriptions/{event_subscription_token}/secret`\n\nGet the secret for an event subscription.\n\n### Parameters\n\n- `event_subscription_token: string`\n\n### Returns\n\n- `{ secret?: string; }`\n\n - `secret?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.events.subscriptions.retrieveSecret('event_subscription_token');\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Events.Subscriptions.GetSecret',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Events.Subscriptions.GetSecret(context.TODO(), "event_subscription_token")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Secret)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN/secret \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'events().subscriptions().retrieveSecret',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.EventSubscriptionRetrieveSecretParams;\nimport com.lithic.api.models.SubscriptionRetrieveSecretResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n SubscriptionRetrieveSecretResponse response = client.events().subscriptions().retrieveSecret("event_subscription_token");\n }\n}',
+ },
+ kotlin: {
+ method: 'events().subscriptions().retrieveSecret',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventSubscriptionRetrieveSecretParams\nimport com.lithic.api.models.SubscriptionRetrieveSecretResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: SubscriptionRetrieveSecretResponse = client.events().subscriptions().retrieveSecret("event_subscription_token")\n}',
+ },
+ python: {
+ method: 'events.subscriptions.retrieve_secret',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.events.subscriptions.retrieve_secret(\n "event_subscription_token",\n)\nprint(response.secret)',
+ },
+ ruby: {
+ method: 'events.subscriptions.retrieve_secret',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.events.subscriptions.retrieve_secret("event_subscription_token")\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.events.subscriptions.retrieveSecret',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.events.subscriptions.retrieveSecret('event_subscription_token');\n\nconsole.log(response.secret);",
+ },
+ },
},
{
name: 'rotate_secret',
@@ -1521,6 +4570,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
params: ['event_subscription_token: string;'],
markdown:
"## rotate_secret\n\n`client.events.subscriptions.rotateSecret(event_subscription_token: string): void`\n\n**post** `/v1/event_subscriptions/{event_subscription_token}/secret/rotate`\n\nRotate the secret for an event subscription. The previous secret will be valid for the next 24 hours.\n\n\n### Parameters\n\n- `event_subscription_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.events.subscriptions.rotateSecret('event_subscription_token')\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Events.Subscriptions.RotateSecret',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Events.Subscriptions.RotateSecret(context.TODO(), "event_subscription_token")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN/secret/rotate \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'events().subscriptions().rotateSecret',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.EventSubscriptionRotateSecretParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n client.events().subscriptions().rotateSecret("event_subscription_token");\n }\n}',
+ },
+ kotlin: {
+ method: 'events().subscriptions().rotateSecret',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventSubscriptionRotateSecretParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.events().subscriptions().rotateSecret("event_subscription_token")\n}',
+ },
+ python: {
+ method: 'events.subscriptions.rotate_secret',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.events.subscriptions.rotate_secret(\n "event_subscription_token",\n)',
+ },
+ ruby: {
+ method: 'events.subscriptions.rotate_secret',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.events.subscriptions.rotate_secret("event_subscription_token")\n\nputs(result)',
+ },
+ typescript: {
+ method: 'client.events.subscriptions.rotateSecret',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.events.subscriptions.rotateSecret('event_subscription_token');",
+ },
+ },
},
{
name: 'send_simulated_example',
@@ -1533,6 +4618,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
params: ['event_subscription_token: string;', 'event_type?: string;'],
markdown:
"## send_simulated_example\n\n`client.events.subscriptions.sendSimulatedExample(event_subscription_token: string, event_type?: string): void`\n\n**post** `/v1/simulate/event_subscriptions/{event_subscription_token}/send_example`\n\nSend an example message for event.\n\n### Parameters\n\n- `event_subscription_token: string`\n\n- `event_type?: string`\n Event type to send example message for.\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.events.subscriptions.sendSimulatedExample('event_subscription_token')\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Events.Subscriptions.SendSimulatedExample',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Events.Subscriptions.SendSimulatedExample(\n\t\tcontext.TODO(),\n\t\t"event_subscription_token",\n\t\tlithic.EventSubscriptionSendSimulatedExampleParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/simulate/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN/send_example \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'events().subscriptions().sendSimulatedExample',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.EventSubscriptionSendSimulatedExampleParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n client.events().subscriptions().sendSimulatedExample("event_subscription_token");\n }\n}',
+ },
+ kotlin: {
+ method: 'events().subscriptions().sendSimulatedExample',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventSubscriptionSendSimulatedExampleParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.events().subscriptions().sendSimulatedExample("event_subscription_token")\n}',
+ },
+ python: {
+ method: 'events.subscriptions.send_simulated_example',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.events.subscriptions.send_simulated_example(\n event_subscription_token="event_subscription_token",\n)',
+ },
+ ruby: {
+ method: 'events.subscriptions.send_simulated_example',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.events.subscriptions.send_simulated_example("event_subscription_token")\n\nputs(result)',
+ },
+ typescript: {
+ method: 'client.events.subscriptions.sendSimulatedExample',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.events.subscriptions.sendSimulatedExample('event_subscription_token');",
+ },
+ },
},
{
name: 'resend',
@@ -1545,6 +4666,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
params: ['event_token: string;', 'event_subscription_token: string;'],
markdown:
"## resend\n\n`client.events.eventSubscriptions.resend(event_token: string, event_subscription_token: string): void`\n\n**post** `/v1/events/{event_token}/event_subscriptions/{event_subscription_token}/resend`\n\nResend an event to an event subscription.\n\n### Parameters\n\n- `event_token: string`\n\n- `event_subscription_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.events.eventSubscriptions.resend('event_subscription_token', { event_token: 'event_token' })\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Events.EventSubscriptions.Resend',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Events.EventSubscriptions.Resend(\n\t\tcontext.TODO(),\n\t\t"event_token",\n\t\t"event_subscription_token",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/events/$EVENT_TOKEN/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN/resend \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'events().eventSubscriptions().resend',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.EventEventSubscriptionResendParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n EventEventSubscriptionResendParams params = EventEventSubscriptionResendParams.builder()\n .eventToken("event_token")\n .eventSubscriptionToken("event_subscription_token")\n .build();\n client.events().eventSubscriptions().resend(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'events().eventSubscriptions().resend',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventEventSubscriptionResendParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: EventEventSubscriptionResendParams = EventEventSubscriptionResendParams.builder()\n .eventToken("event_token")\n .eventSubscriptionToken("event_subscription_token")\n .build()\n client.events().eventSubscriptions().resend(params)\n}',
+ },
+ python: {
+ method: 'events.event_subscriptions.resend',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.events.event_subscriptions.resend(\n event_subscription_token="event_subscription_token",\n event_token="event_token",\n)',
+ },
+ ruby: {
+ method: 'events.event_subscriptions.resend',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.events.event_subscriptions.resend("event_subscription_token", event_token: "event_token")\n\nputs(result)',
+ },
+ typescript: {
+ method: 'client.events.eventSubscriptions.resend',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.events.eventSubscriptions.resend('event_subscription_token', {\n event_token: 'event_token',\n});",
+ },
+ },
},
{
name: 'create',
@@ -1559,26 +4716,91 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token?: string; category?: 'TRANSFER'; created?: string; currency?: string; descriptor?: string; events?: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; from_balance?: { available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }[]; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; to_balance?: { available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }[]; updated?: string; }",
markdown:
"## create\n\n`client.transfers.create(amount: number, from: string, to: string, token?: string, memo?: string): { token?: string; category?: 'TRANSFER'; created?: string; currency?: string; descriptor?: string; events?: financial_event[]; from_balance?: balance[]; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; to_balance?: balance[]; updated?: string; }`\n\n**post** `/v1/transfer`\n\nTransfer funds between two financial accounts or between a financial account and card\n\n### Parameters\n\n- `amount: number`\n Amount to be transferred in the currency’s smallest unit (e.g., cents for USD). This should always be a positive value.\n\n- `from: string`\n Globally unique identifier for the financial account or card that will send the funds. Accepted type dependent on the program's use case.\n\n- `to: string`\n Globally unique identifier for the financial account or card that will receive the funds. Accepted type dependent on the program's use case.\n\n- `token?: string`\n Customer-provided token that will serve as an idempotency token. This token will become the transaction token.\n\n- `memo?: string`\n Optional descriptor for the transfer.\n\n### Returns\n\n- `{ token?: string; category?: 'TRANSFER'; created?: string; currency?: string; descriptor?: string; events?: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; from_balance?: { available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }[]; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; to_balance?: { available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }[]; updated?: string; }`\n\n - `token?: string`\n - `category?: 'TRANSFER'`\n - `created?: string`\n - `currency?: string`\n - `descriptor?: string`\n - `events?: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]`\n - `from_balance?: { available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }[]`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'`\n - `to_balance?: { available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }[]`\n - `updated?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst transfer = await client.transfers.create({\n amount: 0,\n from: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n to: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(transfer);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Transfers.New',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\ttransfer, err := client.Transfers.New(context.TODO(), lithic.TransferNewParams{\n\t\tAmount: lithic.F(int64(0)),\n\t\tFrom: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tTo: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", transfer.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/transfer \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 0,\n "from": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "to": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n }\'',
+ },
+ java: {
+ method: 'transfers().create',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Transfer;\nimport com.lithic.api.models.TransferCreateParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n TransferCreateParams params = TransferCreateParams.builder()\n .amount(0L)\n .from("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .to("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build();\n Transfer transfer = client.transfers().create(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'transfers().create',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Transfer\nimport com.lithic.api.models.TransferCreateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: TransferCreateParams = TransferCreateParams.builder()\n .amount(0L)\n .from("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .to("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val transfer: Transfer = client.transfers().create(params)\n}',
+ },
+ ruby: {
+ method: 'transfers.create',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ntransfer = lithic.transfers.create(\n amount: 0,\n from: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n to: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(transfer)',
+ },
+ typescript: {
+ method: 'client.transfers.create',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst transfer = await client.transfers.create({\n amount: 0,\n from: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n to: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(transfer.token);",
+ },
+ },
},
{
- name: 'create',
+ name: 'list',
endpoint: '/v1/financial_accounts',
- httpMethod: 'post',
- summary: 'Create financial account',
- description: 'Create a new financial account',
- stainlessPath: '(resource) financial_accounts > (method) create',
- qualified: 'client.financialAccounts.create',
+ httpMethod: 'get',
+ summary: 'List financial accounts',
+ description: 'Retrieve information on your financial accounts including routing and account number.',
+ stainlessPath: '(resource) financial_accounts > (method) list',
+ qualified: 'client.financialAccounts.list',
params: [
- 'nickname: string;',
- "type: 'OPERATING';",
'account_token?: string;',
- 'is_for_benefit_of?: boolean;',
- 'Idempotency-Key?: string;',
+ 'business_account_token?: string;',
+ "type?: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY' | 'EARLY_DIRECT_DEPOSIT_FLOAT';",
],
response:
"{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }",
markdown:
- "## create\n\n`client.financialAccounts.create(nickname: string, type: 'OPERATING', account_token?: string, is_for_benefit_of?: boolean, Idempotency-Key?: string): { token: string; account_token: string; created: string; credit_configuration: object; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n**post** `/v1/financial_accounts`\n\nCreate a new financial account\n\n### Parameters\n\n- `nickname: string`\n\n- `type: 'OPERATING'`\n\n- `account_token?: string`\n\n- `is_for_benefit_of?: boolean`\n\n- `Idempotency-Key?: string`\n\n### Returns\n\n- `{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `created: string`\n - `credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n - `is_for_benefit_of: boolean`\n - `nickname: string`\n - `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n - `substatus: string`\n - `type: string`\n - `updated: string`\n - `user_defined_status: string`\n - `account_number?: string`\n - `routing_number?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialAccount = await client.financialAccounts.create({ nickname: 'nickname', type: 'OPERATING' });\n\nconsole.log(financialAccount);\n```",
+ "## list\n\n`client.financialAccounts.list(account_token?: string, business_account_token?: string, type?: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY' | 'EARLY_DIRECT_DEPOSIT_FLOAT'): { token: string; account_token: string; created: string; credit_configuration: object; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n**get** `/v1/financial_accounts`\n\nRetrieve information on your financial accounts including routing and account number.\n\n### Parameters\n\n- `account_token?: string`\n List financial accounts for a given account_token or business_account_token\n\n- `business_account_token?: string`\n List financial accounts for a given business_account_token\n\n- `type?: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY' | 'EARLY_DIRECT_DEPOSIT_FLOAT'`\n List financial accounts of a given type\n\n### Returns\n\n- `{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `created: string`\n - `credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n - `is_for_benefit_of: boolean`\n - `nickname: string`\n - `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n - `substatus: string`\n - `type: string`\n - `updated: string`\n - `user_defined_status: string`\n - `account_number?: string`\n - `routing_number?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const financialAccount of client.financialAccounts.list()) {\n console.log(financialAccount);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FinancialAccounts.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FinancialAccounts.List(context.TODO(), lithic.FinancialAccountListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/financial_accounts \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'financialAccounts().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FinancialAccountListPage;\nimport com.lithic.api.models.FinancialAccountListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FinancialAccountListPage page = client.financialAccounts().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'financialAccounts().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountListPage\nimport com.lithic.api.models.FinancialAccountListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: FinancialAccountListPage = client.financialAccounts().list()\n}',
+ },
+ python: {
+ method: 'financial_accounts.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.financial_accounts.list()\npage = page.data[0]\nprint(page.token)',
+ },
+ ruby: {
+ method: 'financial_accounts.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.financial_accounts.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.financialAccounts.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const financialAccount of client.financialAccounts.list()) {\n console.log(financialAccount.token);\n}",
+ },
+ },
},
{
name: 'retrieve',
@@ -1593,6 +4815,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }",
markdown:
"## retrieve\n\n`client.financialAccounts.retrieve(financial_account_token: string): { token: string; account_token: string; created: string; credit_configuration: object; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}`\n\nGet a financial account\n\n### Parameters\n\n- `financial_account_token: string`\n\n### Returns\n\n- `{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `created: string`\n - `credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n - `is_for_benefit_of: boolean`\n - `nickname: string`\n - `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n - `substatus: string`\n - `type: string`\n - `updated: string`\n - `user_defined_status: string`\n - `account_number?: string`\n - `routing_number?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialAccount = await client.financialAccounts.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(financialAccount);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FinancialAccounts.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialAccount, err := client.FinancialAccounts.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialAccount.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'financialAccounts().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FinancialAccount;\nimport com.lithic.api.models.FinancialAccountRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FinancialAccount financialAccount = client.financialAccounts().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'financialAccounts().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccount\nimport com.lithic.api.models.FinancialAccountRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val financialAccount: FinancialAccount = client.financialAccounts().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'financial_accounts.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_account = client.financial_accounts.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(financial_account.token)',
+ },
+ ruby: {
+ method: 'financial_accounts.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nfinancial_account = lithic.financial_accounts.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(financial_account)',
+ },
+ typescript: {
+ method: 'client.financialAccounts.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialAccount = await client.financialAccounts.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(financialAccount.token);",
+ },
+ },
},
{
name: 'update',
@@ -1607,24 +4865,153 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }",
markdown:
"## update\n\n`client.financialAccounts.update(financial_account_token: string, nickname?: string): { token: string; account_token: string; created: string; credit_configuration: object; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n**patch** `/v1/financial_accounts/{financial_account_token}`\n\nUpdate a financial account\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `nickname?: string`\n\n### Returns\n\n- `{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `created: string`\n - `credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n - `is_for_benefit_of: boolean`\n - `nickname: string`\n - `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n - `substatus: string`\n - `type: string`\n - `updated: string`\n - `user_defined_status: string`\n - `account_number?: string`\n - `routing_number?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialAccount = await client.financialAccounts.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(financialAccount);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FinancialAccounts.Update',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialAccount, err := client.FinancialAccounts.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountUpdateParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialAccount.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN \\\n -X PATCH \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'financialAccounts().update',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FinancialAccount;\nimport com.lithic.api.models.FinancialAccountUpdateParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FinancialAccount financialAccount = client.financialAccounts().update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'financialAccounts().update',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccount\nimport com.lithic.api.models.FinancialAccountUpdateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val financialAccount: FinancialAccount = client.financialAccounts().update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'financial_accounts.update',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_account = client.financial_accounts.update(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(financial_account.token)',
+ },
+ ruby: {
+ method: 'financial_accounts.update',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nfinancial_account = lithic.financial_accounts.update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(financial_account)',
+ },
+ typescript: {
+ method: 'client.financialAccounts.update',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialAccount = await client.financialAccounts.update(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(financialAccount.token);",
+ },
+ },
},
{
- name: 'list',
+ name: 'update_status',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/update_status',
+ httpMethod: 'post',
+ summary: 'Update financial account status',
+ description: 'Update financial account status',
+ stainlessPath: '(resource) financial_accounts > (method) update_status',
+ qualified: 'client.financialAccounts.updateStatus',
+ params: [
+ 'financial_account_token: string;',
+ "status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING';",
+ 'substatus: string;',
+ 'user_defined_status?: string;',
+ ],
+ response:
+ "{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }",
+ markdown:
+ "## update_status\n\n`client.financialAccounts.updateStatus(financial_account_token: string, status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING', substatus: string, user_defined_status?: string): { token: string; account_token: string; created: string; credit_configuration: object; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n**post** `/v1/financial_accounts/{financial_account_token}/update_status`\n\nUpdate financial account status\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n Status of the financial account\n\n- `substatus: string`\n Substatus for the financial account\n\n- `user_defined_status?: string`\n User-defined status for the financial account\n\n### Returns\n\n- `{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `created: string`\n - `credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n - `is_for_benefit_of: boolean`\n - `nickname: string`\n - `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n - `substatus: string`\n - `type: string`\n - `updated: string`\n - `user_defined_status: string`\n - `account_number?: string`\n - `routing_number?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialAccount = await client.financialAccounts.updateStatus('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { status: 'OPEN', substatus: 'CHARGED_OFF_FRAUD' });\n\nconsole.log(financialAccount);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FinancialAccounts.UpdateStatus',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialAccount, err := client.FinancialAccounts.UpdateStatus(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountUpdateStatusParams{\n\t\t\tStatus: lithic.F(lithic.FinancialAccountUpdateStatusParamsStatusOpen),\n\t\t\tSubstatus: lithic.F(lithic.FinancialAccountUpdateStatusParamsSubstatusChargedOffFraud),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialAccount.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/update_status \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "status": "OPEN",\n "substatus": "CHARGED_OFF_FRAUD"\n }\'',
+ },
+ java: {
+ method: 'financialAccounts().updateStatus',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FinancialAccount;\nimport com.lithic.api.models.FinancialAccountUpdateStatusParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FinancialAccountUpdateStatusParams params = FinancialAccountUpdateStatusParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .status(FinancialAccountUpdateStatusParams.FinancialAccountStatus.CLOSED)\n .substatus(FinancialAccountUpdateStatusParams.UpdateFinancialAccountSubstatus.END_USER_REQUEST)\n .build();\n FinancialAccount financialAccount = client.financialAccounts().updateStatus(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'financialAccounts().updateStatus',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccount\nimport com.lithic.api.models.FinancialAccountUpdateStatusParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FinancialAccountUpdateStatusParams = FinancialAccountUpdateStatusParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .status(FinancialAccountUpdateStatusParams.FinancialAccountStatus.CLOSED)\n .substatus(FinancialAccountUpdateStatusParams.UpdateFinancialAccountSubstatus.END_USER_REQUEST)\n .build()\n val financialAccount: FinancialAccount = client.financialAccounts().updateStatus(params)\n}',
+ },
+ python: {
+ method: 'financial_accounts.update_status',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_account = client.financial_accounts.update_status(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n status="OPEN",\n substatus="CHARGED_OFF_FRAUD",\n)\nprint(financial_account.token)',
+ },
+ ruby: {
+ method: 'financial_accounts.update_status',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nfinancial_account = lithic.financial_accounts.update_status(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n status: :OPEN,\n substatus: :CHARGED_OFF_FRAUD\n)\n\nputs(financial_account)',
+ },
+ typescript: {
+ method: 'client.financialAccounts.updateStatus',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialAccount = await client.financialAccounts.updateStatus(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { status: 'OPEN', substatus: 'CHARGED_OFF_FRAUD' },\n);\n\nconsole.log(financialAccount.token);",
+ },
+ },
+ },
+ {
+ name: 'create',
endpoint: '/v1/financial_accounts',
- httpMethod: 'get',
- summary: 'List financial accounts',
- description: 'Retrieve information on your financial accounts including routing and account number.',
- stainlessPath: '(resource) financial_accounts > (method) list',
- qualified: 'client.financialAccounts.list',
+ httpMethod: 'post',
+ summary: 'Create financial account',
+ description: 'Create a new financial account',
+ stainlessPath: '(resource) financial_accounts > (method) create',
+ qualified: 'client.financialAccounts.create',
params: [
+ 'nickname: string;',
+ "type: 'OPERATING';",
'account_token?: string;',
- 'business_account_token?: string;',
- "type?: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY' | 'EARLY_DIRECT_DEPOSIT_FLOAT';",
+ 'is_for_benefit_of?: boolean;',
+ 'Idempotency-Key?: string;',
],
response:
"{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }",
markdown:
- "## list\n\n`client.financialAccounts.list(account_token?: string, business_account_token?: string, type?: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY' | 'EARLY_DIRECT_DEPOSIT_FLOAT'): { token: string; account_token: string; created: string; credit_configuration: object; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n**get** `/v1/financial_accounts`\n\nRetrieve information on your financial accounts including routing and account number.\n\n### Parameters\n\n- `account_token?: string`\n List financial accounts for a given account_token or business_account_token\n\n- `business_account_token?: string`\n List financial accounts for a given business_account_token\n\n- `type?: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY' | 'EARLY_DIRECT_DEPOSIT_FLOAT'`\n List financial accounts of a given type\n\n### Returns\n\n- `{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `created: string`\n - `credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n - `is_for_benefit_of: boolean`\n - `nickname: string`\n - `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n - `substatus: string`\n - `type: string`\n - `updated: string`\n - `user_defined_status: string`\n - `account_number?: string`\n - `routing_number?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const financialAccount of client.financialAccounts.list()) {\n console.log(financialAccount);\n}\n```",
+ "## create\n\n`client.financialAccounts.create(nickname: string, type: 'OPERATING', account_token?: string, is_for_benefit_of?: boolean, Idempotency-Key?: string): { token: string; account_token: string; created: string; credit_configuration: object; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n**post** `/v1/financial_accounts`\n\nCreate a new financial account\n\n### Parameters\n\n- `nickname: string`\n\n- `type: 'OPERATING'`\n\n- `account_token?: string`\n\n- `is_for_benefit_of?: boolean`\n\n- `Idempotency-Key?: string`\n\n### Returns\n\n- `{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `created: string`\n - `credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n - `is_for_benefit_of: boolean`\n - `nickname: string`\n - `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n - `substatus: string`\n - `type: string`\n - `updated: string`\n - `user_defined_status: string`\n - `account_number?: string`\n - `routing_number?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialAccount = await client.financialAccounts.create({ nickname: 'nickname', type: 'OPERATING' });\n\nconsole.log(financialAccount);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FinancialAccounts.New',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialAccount, err := client.FinancialAccounts.New(context.TODO(), lithic.FinancialAccountNewParams{\n\t\tNickname: lithic.F("nickname"),\n\t\tType: lithic.F(lithic.FinancialAccountNewParamsTypeOperating),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialAccount.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/financial_accounts \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "nickname": "nickname",\n "type": "OPERATING"\n }\'',
+ },
+ java: {
+ method: 'financialAccounts().create',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FinancialAccount;\nimport com.lithic.api.models.FinancialAccountCreateParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FinancialAccountCreateParams params = FinancialAccountCreateParams.builder()\n .nickname("nickname")\n .type(FinancialAccountCreateParams.Type.OPERATING)\n .build();\n FinancialAccount financialAccount = client.financialAccounts().create(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'financialAccounts().create',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccount\nimport com.lithic.api.models.FinancialAccountCreateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FinancialAccountCreateParams = FinancialAccountCreateParams.builder()\n .nickname("nickname")\n .type(FinancialAccountCreateParams.Type.OPERATING)\n .build()\n val financialAccount: FinancialAccount = client.financialAccounts().create(params)\n}',
+ },
+ python: {
+ method: 'financial_accounts.create',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_account = client.financial_accounts.create(\n nickname="nickname",\n type="OPERATING",\n)\nprint(financial_account.token)',
+ },
+ ruby: {
+ method: 'financial_accounts.create',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nfinancial_account = lithic.financial_accounts.create(nickname: "nickname", type: :OPERATING)\n\nputs(financial_account)',
+ },
+ typescript: {
+ method: 'client.financialAccounts.create',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialAccount = await client.financialAccounts.create({\n nickname: 'nickname',\n type: 'OPERATING',\n});\n\nconsole.log(financialAccount.token);",
+ },
+ },
},
{
name: 'register_account_number',
@@ -1637,25 +5024,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
params: ['financial_account_token: string;', 'account_number: string;'],
markdown:
"## register_account_number\n\n`client.financialAccounts.registerAccountNumber(financial_account_token: string, account_number: string): void`\n\n**post** `/v1/financial_accounts/{financial_account_token}/register_account_number`\n\nRegister account number\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `account_number: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.financialAccounts.registerAccountNumber('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { account_number: 'account_number' })\n```",
- },
- {
- name: 'update_status',
- endpoint: '/v1/financial_accounts/{financial_account_token}/update_status',
- httpMethod: 'post',
- summary: 'Update financial account status',
- description: 'Update financial account status',
- stainlessPath: '(resource) financial_accounts > (method) update_status',
- qualified: 'client.financialAccounts.updateStatus',
- params: [
- 'financial_account_token: string;',
- "status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING';",
- 'substatus: string;',
- 'user_defined_status?: string;',
- ],
- response:
- "{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }",
- markdown:
- "## update_status\n\n`client.financialAccounts.updateStatus(financial_account_token: string, status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING', substatus: string, user_defined_status?: string): { token: string; account_token: string; created: string; credit_configuration: object; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n**post** `/v1/financial_accounts/{financial_account_token}/update_status`\n\nUpdate financial account status\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n Status of the financial account\n\n- `substatus: string`\n Substatus for the financial account\n\n- `user_defined_status?: string`\n User-defined status for the financial account\n\n### Returns\n\n- `{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `created: string`\n - `credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n - `is_for_benefit_of: boolean`\n - `nickname: string`\n - `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n - `substatus: string`\n - `type: string`\n - `updated: string`\n - `user_defined_status: string`\n - `account_number?: string`\n - `routing_number?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialAccount = await client.financialAccounts.updateStatus('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { status: 'OPEN', substatus: 'CHARGED_OFF_FRAUD' });\n\nconsole.log(financialAccount);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FinancialAccounts.RegisterAccountNumber',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.FinancialAccounts.RegisterAccountNumber(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountRegisterAccountNumberParams{\n\t\t\tAccountNumber: lithic.F("account_number"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/register_account_number \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "account_number": "account_number"\n }\'',
+ },
+ java: {
+ method: 'financialAccounts().registerAccountNumber',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FinancialAccountRegisterAccountNumberParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FinancialAccountRegisterAccountNumberParams params = FinancialAccountRegisterAccountNumberParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .accountNumber("account_number")\n .build();\n client.financialAccounts().registerAccountNumber(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'financialAccounts().registerAccountNumber',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountRegisterAccountNumberParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FinancialAccountRegisterAccountNumberParams = FinancialAccountRegisterAccountNumberParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .accountNumber("account_number")\n .build()\n client.financialAccounts().registerAccountNumber(params)\n}',
+ },
+ python: {
+ method: 'financial_accounts.register_account_number',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.financial_accounts.register_account_number(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n account_number="account_number",\n)',
+ },
+ ruby: {
+ method: 'financial_accounts.register_account_number',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.financial_accounts.register_account_number(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n account_number: "account_number"\n)\n\nputs(result)',
+ },
+ typescript: {
+ method: 'client.financialAccounts.registerAccountNumber',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.financialAccounts.registerAccountNumber('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n account_number: 'account_number',\n});",
+ },
+ },
},
{
name: 'list',
@@ -1674,21 +5078,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; available_amount: number; created: string; currency: string; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; updated: string; }",
markdown:
"## list\n\n`client.financialAccounts.balances.list(financial_account_token: string, balance_date?: string, last_transaction_event_token?: string): { token: string; available_amount: number; created: string; currency: string; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; updated: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/balances`\n\nGet the balances for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `balance_date?: string`\n UTC date of the balance to retrieve. Defaults to latest available balance\n\n- `last_transaction_event_token?: string`\n Balance after a given financial event occured.\nFor example, passing the event_token of a $5 CARD_CLEARING financial event will return a balance decreased by $5\n\n\n### Returns\n\n- `{ token: string; available_amount: number; created: string; currency: string; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; updated: string; }`\n Balance of a Financial Account\n\n - `token: string`\n - `available_amount: number`\n - `created: string`\n - `currency: string`\n - `last_transaction_event_token: string`\n - `last_transaction_token: string`\n - `pending_amount: number`\n - `total_amount: number`\n - `type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const financialAccountBalance of client.financialAccounts.balances.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(financialAccountBalance);\n}\n```",
- },
- {
- name: 'retrieve',
- endpoint:
- '/v1/financial_accounts/{financial_account_token}/financial_transactions/{financial_transaction_token}',
- httpMethod: 'get',
- summary: 'Get financial transaction',
- description: 'Get the financial transaction for the provided token.',
- stainlessPath: '(resource) financial_accounts.financial_transactions > (method) retrieve',
- qualified: 'client.financialAccounts.financialTransactions.retrieve',
- params: ['financial_account_token: string;', 'financial_transaction_token: string;'],
- response:
- "{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }",
- markdown:
- "## retrieve\n\n`client.financialAccounts.financialTransactions.retrieve(financial_account_token: string, financial_transaction_token: string): { token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: financial_event[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/financial_transactions/{financial_transaction_token}`\n\nGet the financial transaction for the provided token.\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `financial_transaction_token: string`\n\n### Returns\n\n- `{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n - `token: string`\n - `category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'`\n - `created: string`\n - `currency: string`\n - `descriptor: string`\n - `events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialTransaction = await client.financialAccounts.financialTransactions.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(financialTransaction);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FinancialAccounts.Balances.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FinancialAccounts.Balances.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountBalanceListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/balances \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'financialAccounts().balances().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FinancialAccountBalanceListPage;\nimport com.lithic.api.models.FinancialAccountBalanceListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FinancialAccountBalanceListPage page = client.financialAccounts().balances().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'financialAccounts().balances().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountBalanceListPage\nimport com.lithic.api.models.FinancialAccountBalanceListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: FinancialAccountBalanceListPage = client.financialAccounts().balances().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'financial_accounts.balances.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.financial_accounts.balances.list(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
+ },
+ ruby: {
+ method: 'financial_accounts.balances.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.financial_accounts.balances.list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.financialAccounts.balances.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const financialAccountBalance of client.financialAccounts.balances.list(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(financialAccountBalance.token);\n}",
+ },
+ },
},
{
name: 'list',
@@ -1712,6 +5137,93 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }",
markdown:
"## list\n\n`client.financialAccounts.financialTransactions.list(financial_account_token: string, begin?: string, category?: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER', end?: string, ending_before?: string, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'): { token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: financial_event[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/financial_transactions`\n\nList the financial transactions for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `category?: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'`\n Financial Transaction category to be returned.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `result?: 'APPROVED' | 'DECLINED'`\n Financial Transaction result to be returned.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'`\n Financial Transaction status to be returned.\n\n### Returns\n\n- `{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n - `token: string`\n - `category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'`\n - `created: string`\n - `currency: string`\n - `descriptor: string`\n - `events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const financialTransaction of client.financialAccounts.financialTransactions.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(financialTransaction);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FinancialAccounts.FinancialTransactions.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FinancialAccounts.FinancialTransactions.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialTransactionListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/financial_transactions \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'financialAccounts().financialTransactions().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FinancialTransactionListPage;\nimport com.lithic.api.models.FinancialTransactionListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FinancialTransactionListPage page = client.financialAccounts().financialTransactions().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'financialAccounts().financialTransactions().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialTransactionListPage\nimport com.lithic.api.models.FinancialTransactionListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: FinancialTransactionListPage = client.financialAccounts().financialTransactions().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'financial_accounts.financial_transactions.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.financial_accounts.financial_transactions.list(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
+ },
+ ruby: {
+ method: 'financial_accounts.financial_transactions.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.financial_accounts.financial_transactions.list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.financialAccounts.financialTransactions.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const financialTransaction of client.financialAccounts.financialTransactions.list(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(financialTransaction.token);\n}",
+ },
+ },
+ },
+ {
+ name: 'retrieve',
+ endpoint:
+ '/v1/financial_accounts/{financial_account_token}/financial_transactions/{financial_transaction_token}',
+ httpMethod: 'get',
+ summary: 'Get financial transaction',
+ description: 'Get the financial transaction for the provided token.',
+ stainlessPath: '(resource) financial_accounts.financial_transactions > (method) retrieve',
+ qualified: 'client.financialAccounts.financialTransactions.retrieve',
+ params: ['financial_account_token: string;', 'financial_transaction_token: string;'],
+ response:
+ "{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }",
+ markdown:
+ "## retrieve\n\n`client.financialAccounts.financialTransactions.retrieve(financial_account_token: string, financial_transaction_token: string): { token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: financial_event[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/financial_transactions/{financial_transaction_token}`\n\nGet the financial transaction for the provided token.\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `financial_transaction_token: string`\n\n### Returns\n\n- `{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n - `token: string`\n - `category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'`\n - `created: string`\n - `currency: string`\n - `descriptor: string`\n - `events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialTransaction = await client.financialAccounts.financialTransactions.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(financialTransaction);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FinancialAccounts.FinancialTransactions.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialTransaction, err := client.FinancialAccounts.FinancialTransactions.Get(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialTransaction.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/financial_transactions/$FINANCIAL_TRANSACTION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'financialAccounts().financialTransactions().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FinancialTransaction;\nimport com.lithic.api.models.FinancialTransactionRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FinancialTransactionRetrieveParams params = FinancialTransactionRetrieveParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .financialTransactionToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build();\n FinancialTransaction financialTransaction = client.financialAccounts().financialTransactions().retrieve(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'financialAccounts().financialTransactions().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialTransaction\nimport com.lithic.api.models.FinancialTransactionRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FinancialTransactionRetrieveParams = FinancialTransactionRetrieveParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .financialTransactionToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val financialTransaction: FinancialTransaction = client.financialAccounts().financialTransactions().retrieve(params)\n}',
+ },
+ python: {
+ method: 'financial_accounts.financial_transactions.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_transaction = client.financial_accounts.financial_transactions.retrieve(\n financial_transaction_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(financial_transaction.token)',
+ },
+ ruby: {
+ method: 'financial_accounts.financial_transactions.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nfinancial_transaction = lithic.financial_accounts.financial_transactions.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(financial_transaction)',
+ },
+ typescript: {
+ method: 'client.financialAccounts.financialTransactions.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialTransaction = await client.financialAccounts.financialTransactions.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(financialTransaction.token);",
+ },
+ },
},
{
name: 'retrieve',
@@ -1726,6 +5238,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'{ account_token: string; auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }',
markdown:
"## retrieve\n\n`client.financialAccounts.creditConfiguration.retrieve(financial_account_token: string): { account_token: string; auto_collection_configuration: object; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/credit_configuration`\n\nGet an Account's credit configuration\n\n### Parameters\n\n- `financial_account_token: string`\n\n### Returns\n\n- `{ account_token: string; auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n\n - `account_token: string`\n - `auto_collection_configuration: { auto_collection_enabled: boolean; }`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `external_bank_account_token: string`\n - `tier: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialAccountCreditConfig = await client.financialAccounts.creditConfiguration.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(financialAccountCreditConfig);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FinancialAccounts.CreditConfiguration.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialAccountCreditConfig, err := client.FinancialAccounts.CreditConfiguration.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialAccountCreditConfig.AccountToken)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/credit_configuration \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'financialAccounts().creditConfiguration().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FinancialAccountCreditConfig;\nimport com.lithic.api.models.FinancialAccountCreditConfigurationRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FinancialAccountCreditConfig financialAccountCreditConfig = client.financialAccounts().creditConfiguration().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'financialAccounts().creditConfiguration().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountCreditConfig\nimport com.lithic.api.models.FinancialAccountCreditConfigurationRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val financialAccountCreditConfig: FinancialAccountCreditConfig = client.financialAccounts().creditConfiguration().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'financial_accounts.credit_configuration.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_account_credit_config = client.financial_accounts.credit_configuration.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(financial_account_credit_config.account_token)',
+ },
+ ruby: {
+ method: 'financial_accounts.credit_configuration.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nfinancial_account_credit_config = lithic.financial_accounts.credit_configuration.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(financial_account_credit_config)',
+ },
+ typescript: {
+ method: 'client.financialAccounts.creditConfiguration.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialAccountCreditConfig = await client.financialAccounts.creditConfiguration.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(financialAccountCreditConfig.account_token);",
+ },
+ },
},
{
name: 'update',
@@ -1747,20 +5295,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'{ account_token: string; auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }',
markdown:
"## update\n\n`client.financialAccounts.creditConfiguration.update(financial_account_token: string, auto_collection_configuration?: { auto_collection_enabled?: boolean; }, credit_limit?: number, credit_product_token?: string, external_bank_account_token?: string, tier?: string): { account_token: string; auto_collection_configuration: object; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n\n**patch** `/v1/financial_accounts/{financial_account_token}/credit_configuration`\n\nUpdate an account's credit configuration\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `auto_collection_configuration?: { auto_collection_enabled?: boolean; }`\n - `auto_collection_enabled?: boolean`\n If auto collection is enabled for this account\n\n- `credit_limit?: number`\n\n- `credit_product_token?: string`\n Globally unique identifier for the credit product\n\n- `external_bank_account_token?: string`\n\n- `tier?: string`\n Tier to assign to a financial account\n\n### Returns\n\n- `{ account_token: string; auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n\n - `account_token: string`\n - `auto_collection_configuration: { auto_collection_enabled: boolean; }`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `external_bank_account_token: string`\n - `tier: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialAccountCreditConfig = await client.financialAccounts.creditConfiguration.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(financialAccountCreditConfig);\n```",
- },
- {
- name: 'retrieve',
- endpoint: '/v1/financial_accounts/{financial_account_token}/statements/{statement_token}',
- httpMethod: 'get',
- summary: 'Get statement by token',
- description: 'Get a specific statement for a given financial account.',
- stainlessPath: '(resource) financial_accounts.statements > (method) retrieve',
- qualified: 'client.financialAccounts.statements.retrieve',
- params: ['financial_account_token: string;', 'statement_token: string;'],
- response:
- "{ token: string; account_standing: object; amount_due: object; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: statement_totals; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: statement_totals; interest_details?: object; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: object; }",
- markdown:
- "## retrieve\n\n`client.financialAccounts.statements.retrieve(financial_account_token: string, statement_token: string): { token: string; account_standing: object; amount_due: object; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: statement_totals; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: statement_totals; interest_details?: object; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: object; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/statements/{statement_token}`\n\nGet a specific statement for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n- `statement_token: string`\n Globally unique identifier for statements.\n\n### Returns\n\n- `{ token: string; account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }; amount_due: { amount: number; past_due: number; }; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; interest_details?: { actual_interest_charged: number; daily_balance_amounts: object; effective_apr: object; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: object; prime_rate: string; minimum_interest_charged?: number; }; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: { minimum_payment_months: string; minimum_payment_total: string; payoff_period_length_months: number; payoff_period_monthly_payment_amount: number; payoff_period_payment_total: number; }; }`\n\n - `token: string`\n - `account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }`\n - `amount_due: { amount: number; past_due: number; }`\n - `available_credit: number`\n - `created: string`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `days_in_billing_cycle: number`\n - `ending_balance: number`\n - `financial_account_token: string`\n - `payment_due_date: string`\n - `period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `starting_balance: number`\n - `statement_end_date: string`\n - `statement_start_date: string`\n - `statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'`\n - `updated: string`\n - `ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `interest_details?: { actual_interest_charged: number; daily_balance_amounts: { balance_transfers: string; cash_advances: string; purchases: string; }; effective_apr: { balance_transfers: string; cash_advances: string; purchases: string; }; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: { balance_transfers: string; cash_advances: string; purchases: string; }; prime_rate: string; minimum_interest_charged?: number; }`\n - `next_payment_due_date?: string`\n - `next_statement_end_date?: string`\n - `payoff_details?: { minimum_payment_months: string; minimum_payment_total: string; payoff_period_length_months: number; payoff_period_monthly_payment_amount: number; payoff_period_payment_total: number; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst statement = await client.financialAccounts.statements.retrieve('statement_token', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(statement);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FinancialAccounts.CreditConfiguration.Update',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialAccountCreditConfig, err := client.FinancialAccounts.CreditConfiguration.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountCreditConfigurationUpdateParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialAccountCreditConfig.AccountToken)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/credit_configuration \\\n -X PATCH \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'financialAccounts().creditConfiguration().update',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FinancialAccountCreditConfig;\nimport com.lithic.api.models.FinancialAccountCreditConfigurationUpdateParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FinancialAccountCreditConfig financialAccountCreditConfig = client.financialAccounts().creditConfiguration().update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'financialAccounts().creditConfiguration().update',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountCreditConfig\nimport com.lithic.api.models.FinancialAccountCreditConfigurationUpdateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val financialAccountCreditConfig: FinancialAccountCreditConfig = client.financialAccounts().creditConfiguration().update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'financial_accounts.credit_configuration.update',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_account_credit_config = client.financial_accounts.credit_configuration.update(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(financial_account_credit_config.account_token)',
+ },
+ ruby: {
+ method: 'financial_accounts.credit_configuration.update',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nfinancial_account_credit_config = lithic.financial_accounts.credit_configuration.update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(financial_account_credit_config)',
+ },
+ typescript: {
+ method: 'client.financialAccounts.creditConfiguration.update',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialAccountCreditConfig = await client.financialAccounts.creditConfiguration.update(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(financialAccountCreditConfig.account_token);",
+ },
+ },
},
{
name: 'list',
@@ -1783,6 +5353,92 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; account_standing: object; amount_due: object; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: statement_totals; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: statement_totals; interest_details?: object; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: object; }",
markdown:
"## list\n\n`client.financialAccounts.statements.list(financial_account_token: string, begin?: string, end?: string, ending_before?: string, include_initial_statements?: boolean, page_size?: number, starting_after?: string): { token: string; account_standing: object; amount_due: object; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: statement_totals; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: statement_totals; interest_details?: object; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: object; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/statements`\n\nList the statements for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified date will be included.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified date will be included.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `include_initial_statements?: boolean`\n Whether to include the initial statement. It is not included by default.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }; amount_due: { amount: number; past_due: number; }; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; interest_details?: { actual_interest_charged: number; daily_balance_amounts: object; effective_apr: object; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: object; prime_rate: string; minimum_interest_charged?: number; }; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: { minimum_payment_months: string; minimum_payment_total: string; payoff_period_length_months: number; payoff_period_monthly_payment_amount: number; payoff_period_payment_total: number; }; }`\n\n - `token: string`\n - `account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }`\n - `amount_due: { amount: number; past_due: number; }`\n - `available_credit: number`\n - `created: string`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `days_in_billing_cycle: number`\n - `ending_balance: number`\n - `financial_account_token: string`\n - `payment_due_date: string`\n - `period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `starting_balance: number`\n - `statement_end_date: string`\n - `statement_start_date: string`\n - `statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'`\n - `updated: string`\n - `ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `interest_details?: { actual_interest_charged: number; daily_balance_amounts: { balance_transfers: string; cash_advances: string; purchases: string; }; effective_apr: { balance_transfers: string; cash_advances: string; purchases: string; }; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: { balance_transfers: string; cash_advances: string; purchases: string; }; prime_rate: string; minimum_interest_charged?: number; }`\n - `next_payment_due_date?: string`\n - `next_statement_end_date?: string`\n - `payoff_details?: { minimum_payment_months: string; minimum_payment_total: string; payoff_period_length_months: number; payoff_period_monthly_payment_amount: number; payoff_period_payment_total: number; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const statement of client.financialAccounts.statements.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(statement);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FinancialAccounts.Statements.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FinancialAccounts.Statements.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountStatementListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/statements \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'financialAccounts().statements().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FinancialAccountStatementListPage;\nimport com.lithic.api.models.FinancialAccountStatementListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FinancialAccountStatementListPage page = client.financialAccounts().statements().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'financialAccounts().statements().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountStatementListPage\nimport com.lithic.api.models.FinancialAccountStatementListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: FinancialAccountStatementListPage = client.financialAccounts().statements().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'financial_accounts.statements.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.financial_accounts.statements.list(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
+ },
+ ruby: {
+ method: 'financial_accounts.statements.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.financial_accounts.statements.list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.financialAccounts.statements.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const statement of client.financialAccounts.statements.list(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(statement.token);\n}",
+ },
+ },
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/statements/{statement_token}',
+ httpMethod: 'get',
+ summary: 'Get statement by token',
+ description: 'Get a specific statement for a given financial account.',
+ stainlessPath: '(resource) financial_accounts.statements > (method) retrieve',
+ qualified: 'client.financialAccounts.statements.retrieve',
+ params: ['financial_account_token: string;', 'statement_token: string;'],
+ response:
+ "{ token: string; account_standing: object; amount_due: object; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: statement_totals; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: statement_totals; interest_details?: object; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: object; }",
+ markdown:
+ "## retrieve\n\n`client.financialAccounts.statements.retrieve(financial_account_token: string, statement_token: string): { token: string; account_standing: object; amount_due: object; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: statement_totals; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: statement_totals; interest_details?: object; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: object; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/statements/{statement_token}`\n\nGet a specific statement for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n- `statement_token: string`\n Globally unique identifier for statements.\n\n### Returns\n\n- `{ token: string; account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }; amount_due: { amount: number; past_due: number; }; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; interest_details?: { actual_interest_charged: number; daily_balance_amounts: object; effective_apr: object; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: object; prime_rate: string; minimum_interest_charged?: number; }; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: { minimum_payment_months: string; minimum_payment_total: string; payoff_period_length_months: number; payoff_period_monthly_payment_amount: number; payoff_period_payment_total: number; }; }`\n\n - `token: string`\n - `account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }`\n - `amount_due: { amount: number; past_due: number; }`\n - `available_credit: number`\n - `created: string`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `days_in_billing_cycle: number`\n - `ending_balance: number`\n - `financial_account_token: string`\n - `payment_due_date: string`\n - `period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `starting_balance: number`\n - `statement_end_date: string`\n - `statement_start_date: string`\n - `statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'`\n - `updated: string`\n - `ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `interest_details?: { actual_interest_charged: number; daily_balance_amounts: { balance_transfers: string; cash_advances: string; purchases: string; }; effective_apr: { balance_transfers: string; cash_advances: string; purchases: string; }; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: { balance_transfers: string; cash_advances: string; purchases: string; }; prime_rate: string; minimum_interest_charged?: number; }`\n - `next_payment_due_date?: string`\n - `next_statement_end_date?: string`\n - `payoff_details?: { minimum_payment_months: string; minimum_payment_total: string; payoff_period_length_months: number; payoff_period_monthly_payment_amount: number; payoff_period_payment_total: number; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst statement = await client.financialAccounts.statements.retrieve('statement_token', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(statement);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FinancialAccounts.Statements.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tstatement, err := client.FinancialAccounts.Statements.Get(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"statement_token",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", statement.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/statements/$STATEMENT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'financialAccounts().statements().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FinancialAccountStatementRetrieveParams;\nimport com.lithic.api.models.Statement;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FinancialAccountStatementRetrieveParams params = FinancialAccountStatementRetrieveParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .statementToken("statement_token")\n .build();\n Statement statement = client.financialAccounts().statements().retrieve(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'financialAccounts().statements().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountStatementRetrieveParams\nimport com.lithic.api.models.Statement\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FinancialAccountStatementRetrieveParams = FinancialAccountStatementRetrieveParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .statementToken("statement_token")\n .build()\n val statement: Statement = client.financialAccounts().statements().retrieve(params)\n}',
+ },
+ python: {
+ method: 'financial_accounts.statements.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nstatement = client.financial_accounts.statements.retrieve(\n statement_token="statement_token",\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(statement.token)',
+ },
+ ruby: {
+ method: 'financial_accounts.statements.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nstatement = lithic.financial_accounts.statements.retrieve(\n "statement_token",\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(statement)',
+ },
+ typescript: {
+ method: 'client.financialAccounts.statements.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst statement = await client.financialAccounts.statements.retrieve('statement_token', {\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(statement.token);",
+ },
+ },
},
{
name: 'list',
@@ -1803,20 +5459,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'{ token: string; amount: number; category: string; created: string; currency: string; effective_date: string; event_type: string; financial_account_token: string; financial_transaction_event_token: string; financial_transaction_token: string; card_token?: string; descriptor?: string; event_subtype?: string; loan_tape_date?: string; }',
markdown:
"## list\n\n`client.financialAccounts.statements.lineItems.list(financial_account_token: string, statement_token: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; amount: number; category: string; created: string; currency: string; effective_date: string; event_type: string; financial_account_token: string; financial_transaction_event_token: string; financial_transaction_token: string; card_token?: string; descriptor?: string; event_subtype?: string; loan_tape_date?: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/statements/{statement_token}/line_items`\n\nList the line items for a given statement within a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n- `statement_token: string`\n Globally unique identifier for statements.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; amount: number; category: string; created: string; currency: string; effective_date: string; event_type: string; financial_account_token: string; financial_transaction_event_token: string; financial_transaction_token: string; card_token?: string; descriptor?: string; event_subtype?: string; loan_tape_date?: string; }`\n\n - `token: string`\n - `amount: number`\n - `category: string`\n - `created: string`\n - `currency: string`\n - `effective_date: string`\n - `event_type: string`\n - `financial_account_token: string`\n - `financial_transaction_event_token: string`\n - `financial_transaction_token: string`\n - `card_token?: string`\n - `descriptor?: string`\n - `event_subtype?: string`\n - `loan_tape_date?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const lineItem of client.financialAccounts.statements.lineItems.list('statement_token', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' })) {\n console.log(lineItem);\n}\n```",
- },
- {
- name: 'retrieve',
- endpoint: '/v1/financial_accounts/{financial_account_token}/loan_tapes/{loan_tape_token}',
- httpMethod: 'get',
- summary: 'Get loan tape by token',
- description: 'Get a specific loan tape for a given financial account.',
- stainlessPath: '(resource) financial_accounts.loan_tapes > (method) retrieve',
- qualified: 'client.financialAccounts.loanTapes.retrieve',
- params: ['financial_account_token: string;', 'loan_tape_token: string;'],
- response:
- '{ token: string; account_standing: object; available_credit: number; balances: object; created: string; credit_limit: number; credit_product_token: string; date: string; day_totals: statement_totals; ending_balance: number; excess_credits: number; financial_account_token: string; interest_details: object; minimum_payment_balance: object; payment_allocation: object; period_totals: statement_totals; previous_statement_balance: object; starting_balance: number; updated: string; version: number; ytd_totals: statement_totals; tier?: string; }',
- markdown:
- "## retrieve\n\n`client.financialAccounts.loanTapes.retrieve(financial_account_token: string, loan_tape_token: string): { token: string; account_standing: object; available_credit: number; balances: object; created: string; credit_limit: number; credit_product_token: string; date: string; day_totals: statement_totals; ending_balance: number; excess_credits: number; financial_account_token: string; interest_details: object; minimum_payment_balance: object; payment_allocation: object; period_totals: statement_totals; previous_statement_balance: object; starting_balance: number; updated: string; version: number; ytd_totals: statement_totals; tier?: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/loan_tapes/{loan_tape_token}`\n\nGet a specific loan tape for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n- `loan_tape_token: string`\n Globally unique identifier for loan tape.\n\n### Returns\n\n- `{ token: string; account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }; available_credit: number; balances: { due: object; next_statement_due: object; past_due: object; past_statements_due: object; }; created: string; credit_limit: number; credit_product_token: string; date: string; day_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; ending_balance: number; excess_credits: number; financial_account_token: string; interest_details: { actual_interest_charged: number; daily_balance_amounts: object; effective_apr: object; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: object; prime_rate: string; minimum_interest_charged?: number; }; minimum_payment_balance: { amount: number; remaining: number; }; payment_allocation: { fee_details: object; fees: number; interest: number; interest_details: object; principal: number; principal_details: object; }; period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; previous_statement_balance: { amount: number; remaining: number; }; starting_balance: number; updated: string; version: number; ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; tier?: string; }`\n\n - `token: string`\n - `account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }`\n - `available_credit: number`\n - `balances: { due: { fees: number; interest: number; principal: number; }; next_statement_due: { fees: number; interest: number; principal: number; }; past_due: { fees: number; interest: number; principal: number; }; past_statements_due: { fees: number; interest: number; principal: number; }; }`\n - `created: string`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `date: string`\n - `day_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `ending_balance: number`\n - `excess_credits: number`\n - `financial_account_token: string`\n - `interest_details: { actual_interest_charged: number; daily_balance_amounts: { balance_transfers: string; cash_advances: string; purchases: string; }; effective_apr: { balance_transfers: string; cash_advances: string; purchases: string; }; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: { balance_transfers: string; cash_advances: string; purchases: string; }; prime_rate: string; minimum_interest_charged?: number; }`\n - `minimum_payment_balance: { amount: number; remaining: number; }`\n - `payment_allocation: { fee_details: { balance_transfers: string; cash_advances: string; purchases: string; }; fees: number; interest: number; interest_details: { balance_transfers: string; cash_advances: string; purchases: string; }; principal: number; principal_details: { balance_transfers: string; cash_advances: string; purchases: string; }; }`\n - `period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `previous_statement_balance: { amount: number; remaining: number; }`\n - `starting_balance: number`\n - `updated: string`\n - `version: number`\n - `ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `tier?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst loanTape = await client.financialAccounts.loanTapes.retrieve('loan_tape_token', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(loanTape);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FinancialAccounts.Statements.LineItems.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FinancialAccounts.Statements.LineItems.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"statement_token",\n\t\tlithic.FinancialAccountStatementLineItemListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/statements/$STATEMENT_TOKEN/line_items \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'financialAccounts().statements().lineItems().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FinancialAccountStatementLineItemListPage;\nimport com.lithic.api.models.FinancialAccountStatementLineItemListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FinancialAccountStatementLineItemListParams params = FinancialAccountStatementLineItemListParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .statementToken("statement_token")\n .build();\n FinancialAccountStatementLineItemListPage page = client.financialAccounts().statements().lineItems().list(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'financialAccounts().statements().lineItems().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountStatementLineItemListPage\nimport com.lithic.api.models.FinancialAccountStatementLineItemListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FinancialAccountStatementLineItemListParams = FinancialAccountStatementLineItemListParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .statementToken("statement_token")\n .build()\n val page: FinancialAccountStatementLineItemListPage = client.financialAccounts().statements().lineItems().list(params)\n}',
+ },
+ python: {
+ method: 'financial_accounts.statements.line_items.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.financial_accounts.statements.line_items.list(\n statement_token="statement_token",\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
+ },
+ ruby: {
+ method: 'financial_accounts.statements.line_items.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.financial_accounts.statements.line_items.list(\n "statement_token",\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.financialAccounts.statements.lineItems.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const lineItem of client.financialAccounts.statements.lineItems.list('statement_token', {\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n})) {\n console.log(lineItem.token);\n}",
+ },
+ },
},
{
name: 'list',
@@ -1838,6 +5516,92 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'{ token: string; account_standing: object; available_credit: number; balances: object; created: string; credit_limit: number; credit_product_token: string; date: string; day_totals: statement_totals; ending_balance: number; excess_credits: number; financial_account_token: string; interest_details: object; minimum_payment_balance: object; payment_allocation: object; period_totals: statement_totals; previous_statement_balance: object; starting_balance: number; updated: string; version: number; ytd_totals: statement_totals; tier?: string; }',
markdown:
"## list\n\n`client.financialAccounts.loanTapes.list(financial_account_token: string, begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; account_standing: object; available_credit: number; balances: object; created: string; credit_limit: number; credit_product_token: string; date: string; day_totals: statement_totals; ending_balance: number; excess_credits: number; financial_account_token: string; interest_details: object; minimum_payment_balance: object; payment_allocation: object; period_totals: statement_totals; previous_statement_balance: object; starting_balance: number; updated: string; version: number; ytd_totals: statement_totals; tier?: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/loan_tapes`\n\nList the loan tapes for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified date will be included.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified date will be included.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }; available_credit: number; balances: { due: object; next_statement_due: object; past_due: object; past_statements_due: object; }; created: string; credit_limit: number; credit_product_token: string; date: string; day_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; ending_balance: number; excess_credits: number; financial_account_token: string; interest_details: { actual_interest_charged: number; daily_balance_amounts: object; effective_apr: object; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: object; prime_rate: string; minimum_interest_charged?: number; }; minimum_payment_balance: { amount: number; remaining: number; }; payment_allocation: { fee_details: object; fees: number; interest: number; interest_details: object; principal: number; principal_details: object; }; period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; previous_statement_balance: { amount: number; remaining: number; }; starting_balance: number; updated: string; version: number; ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; tier?: string; }`\n\n - `token: string`\n - `account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }`\n - `available_credit: number`\n - `balances: { due: { fees: number; interest: number; principal: number; }; next_statement_due: { fees: number; interest: number; principal: number; }; past_due: { fees: number; interest: number; principal: number; }; past_statements_due: { fees: number; interest: number; principal: number; }; }`\n - `created: string`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `date: string`\n - `day_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `ending_balance: number`\n - `excess_credits: number`\n - `financial_account_token: string`\n - `interest_details: { actual_interest_charged: number; daily_balance_amounts: { balance_transfers: string; cash_advances: string; purchases: string; }; effective_apr: { balance_transfers: string; cash_advances: string; purchases: string; }; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: { balance_transfers: string; cash_advances: string; purchases: string; }; prime_rate: string; minimum_interest_charged?: number; }`\n - `minimum_payment_balance: { amount: number; remaining: number; }`\n - `payment_allocation: { fee_details: { balance_transfers: string; cash_advances: string; purchases: string; }; fees: number; interest: number; interest_details: { balance_transfers: string; cash_advances: string; purchases: string; }; principal: number; principal_details: { balance_transfers: string; cash_advances: string; purchases: string; }; }`\n - `period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `previous_statement_balance: { amount: number; remaining: number; }`\n - `starting_balance: number`\n - `updated: string`\n - `version: number`\n - `ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `tier?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const loanTape of client.financialAccounts.loanTapes.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(loanTape);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FinancialAccounts.LoanTapes.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FinancialAccounts.LoanTapes.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountLoanTapeListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/loan_tapes \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'financialAccounts().loanTapes().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FinancialAccountLoanTapeListPage;\nimport com.lithic.api.models.FinancialAccountLoanTapeListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FinancialAccountLoanTapeListPage page = client.financialAccounts().loanTapes().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'financialAccounts().loanTapes().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountLoanTapeListPage\nimport com.lithic.api.models.FinancialAccountLoanTapeListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: FinancialAccountLoanTapeListPage = client.financialAccounts().loanTapes().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'financial_accounts.loan_tapes.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.financial_accounts.loan_tapes.list(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
+ },
+ ruby: {
+ method: 'financial_accounts.loan_tapes.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.financial_accounts.loan_tapes.list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.financialAccounts.loanTapes.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const loanTape of client.financialAccounts.loanTapes.list(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(loanTape.token);\n}",
+ },
+ },
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/loan_tapes/{loan_tape_token}',
+ httpMethod: 'get',
+ summary: 'Get loan tape by token',
+ description: 'Get a specific loan tape for a given financial account.',
+ stainlessPath: '(resource) financial_accounts.loan_tapes > (method) retrieve',
+ qualified: 'client.financialAccounts.loanTapes.retrieve',
+ params: ['financial_account_token: string;', 'loan_tape_token: string;'],
+ response:
+ '{ token: string; account_standing: object; available_credit: number; balances: object; created: string; credit_limit: number; credit_product_token: string; date: string; day_totals: statement_totals; ending_balance: number; excess_credits: number; financial_account_token: string; interest_details: object; minimum_payment_balance: object; payment_allocation: object; period_totals: statement_totals; previous_statement_balance: object; starting_balance: number; updated: string; version: number; ytd_totals: statement_totals; tier?: string; }',
+ markdown:
+ "## retrieve\n\n`client.financialAccounts.loanTapes.retrieve(financial_account_token: string, loan_tape_token: string): { token: string; account_standing: object; available_credit: number; balances: object; created: string; credit_limit: number; credit_product_token: string; date: string; day_totals: statement_totals; ending_balance: number; excess_credits: number; financial_account_token: string; interest_details: object; minimum_payment_balance: object; payment_allocation: object; period_totals: statement_totals; previous_statement_balance: object; starting_balance: number; updated: string; version: number; ytd_totals: statement_totals; tier?: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/loan_tapes/{loan_tape_token}`\n\nGet a specific loan tape for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n- `loan_tape_token: string`\n Globally unique identifier for loan tape.\n\n### Returns\n\n- `{ token: string; account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }; available_credit: number; balances: { due: object; next_statement_due: object; past_due: object; past_statements_due: object; }; created: string; credit_limit: number; credit_product_token: string; date: string; day_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; ending_balance: number; excess_credits: number; financial_account_token: string; interest_details: { actual_interest_charged: number; daily_balance_amounts: object; effective_apr: object; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: object; prime_rate: string; minimum_interest_charged?: number; }; minimum_payment_balance: { amount: number; remaining: number; }; payment_allocation: { fee_details: object; fees: number; interest: number; interest_details: object; principal: number; principal_details: object; }; period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; previous_statement_balance: { amount: number; remaining: number; }; starting_balance: number; updated: string; version: number; ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; tier?: string; }`\n\n - `token: string`\n - `account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }`\n - `available_credit: number`\n - `balances: { due: { fees: number; interest: number; principal: number; }; next_statement_due: { fees: number; interest: number; principal: number; }; past_due: { fees: number; interest: number; principal: number; }; past_statements_due: { fees: number; interest: number; principal: number; }; }`\n - `created: string`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `date: string`\n - `day_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `ending_balance: number`\n - `excess_credits: number`\n - `financial_account_token: string`\n - `interest_details: { actual_interest_charged: number; daily_balance_amounts: { balance_transfers: string; cash_advances: string; purchases: string; }; effective_apr: { balance_transfers: string; cash_advances: string; purchases: string; }; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: { balance_transfers: string; cash_advances: string; purchases: string; }; prime_rate: string; minimum_interest_charged?: number; }`\n - `minimum_payment_balance: { amount: number; remaining: number; }`\n - `payment_allocation: { fee_details: { balance_transfers: string; cash_advances: string; purchases: string; }; fees: number; interest: number; interest_details: { balance_transfers: string; cash_advances: string; purchases: string; }; principal: number; principal_details: { balance_transfers: string; cash_advances: string; purchases: string; }; }`\n - `period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `previous_statement_balance: { amount: number; remaining: number; }`\n - `starting_balance: number`\n - `updated: string`\n - `version: number`\n - `ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `tier?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst loanTape = await client.financialAccounts.loanTapes.retrieve('loan_tape_token', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(loanTape);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FinancialAccounts.LoanTapes.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tloanTape, err := client.FinancialAccounts.LoanTapes.Get(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"loan_tape_token",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", loanTape.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/loan_tapes/$LOAN_TAPE_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'financialAccounts().loanTapes().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FinancialAccountLoanTapeRetrieveParams;\nimport com.lithic.api.models.LoanTape;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FinancialAccountLoanTapeRetrieveParams params = FinancialAccountLoanTapeRetrieveParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .loanTapeToken("loan_tape_token")\n .build();\n LoanTape loanTape = client.financialAccounts().loanTapes().retrieve(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'financialAccounts().loanTapes().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountLoanTapeRetrieveParams\nimport com.lithic.api.models.LoanTape\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FinancialAccountLoanTapeRetrieveParams = FinancialAccountLoanTapeRetrieveParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .loanTapeToken("loan_tape_token")\n .build()\n val loanTape: LoanTape = client.financialAccounts().loanTapes().retrieve(params)\n}',
+ },
+ python: {
+ method: 'financial_accounts.loan_tapes.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nloan_tape = client.financial_accounts.loan_tapes.retrieve(\n loan_tape_token="loan_tape_token",\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(loan_tape.token)',
+ },
+ ruby: {
+ method: 'financial_accounts.loan_tapes.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nloan_tape = lithic.financial_accounts.loan_tapes.retrieve(\n "loan_tape_token",\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(loan_tape)',
+ },
+ typescript: {
+ method: 'client.financialAccounts.loanTapes.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst loanTape = await client.financialAccounts.loanTapes.retrieve('loan_tape_token', {\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(loanTape.token);",
+ },
+ },
},
{
name: 'retrieve',
@@ -1852,6 +5616,98 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'{ created_at: string; financial_account_token: string; instance_token: string; updated_at: string; credit_product_token?: string; loan_tape_rebuild_configuration?: { rebuild_needed: boolean; last_rebuild?: string; rebuild_from?: string; }; tier_schedule_changed_at?: string; }',
markdown:
"## retrieve\n\n`client.financialAccounts.loanTapeConfiguration.retrieve(financial_account_token: string): { created_at: string; financial_account_token: string; instance_token: string; updated_at: string; credit_product_token?: string; loan_tape_rebuild_configuration?: loan_tape_rebuild_configuration; tier_schedule_changed_at?: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/loan_tape_configuration`\n\nGet the loan tape configuration for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n### Returns\n\n- `{ created_at: string; financial_account_token: string; instance_token: string; updated_at: string; credit_product_token?: string; loan_tape_rebuild_configuration?: { rebuild_needed: boolean; last_rebuild?: string; rebuild_from?: string; }; tier_schedule_changed_at?: string; }`\n Configuration for loan tapes\n\n - `created_at: string`\n - `financial_account_token: string`\n - `instance_token: string`\n - `updated_at: string`\n - `credit_product_token?: string`\n - `loan_tape_rebuild_configuration?: { rebuild_needed: boolean; last_rebuild?: string; rebuild_from?: string; }`\n - `tier_schedule_changed_at?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst loanTapeConfiguration = await client.financialAccounts.loanTapeConfiguration.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(loanTapeConfiguration);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FinancialAccounts.LoanTapeConfiguration.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tloanTapeConfiguration, err := client.FinancialAccounts.LoanTapeConfiguration.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", loanTapeConfiguration.CreatedAt)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/loan_tape_configuration \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'financialAccounts().loanTapeConfiguration().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FinancialAccountLoanTapeConfigurationRetrieveParams;\nimport com.lithic.api.models.LoanTapeConfiguration;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n LoanTapeConfiguration loanTapeConfiguration = client.financialAccounts().loanTapeConfiguration().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'financialAccounts().loanTapeConfiguration().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountLoanTapeConfigurationRetrieveParams\nimport com.lithic.api.models.LoanTapeConfiguration\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val loanTapeConfiguration: LoanTapeConfiguration = client.financialAccounts().loanTapeConfiguration().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'financial_accounts.loan_tape_configuration.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nloan_tape_configuration = client.financial_accounts.loan_tape_configuration.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(loan_tape_configuration.created_at)',
+ },
+ ruby: {
+ method: 'financial_accounts.loan_tape_configuration.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nloan_tape_configuration = lithic.financial_accounts.loan_tape_configuration.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(loan_tape_configuration)',
+ },
+ typescript: {
+ method: 'client.financialAccounts.loanTapeConfiguration.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst loanTapeConfiguration = await client.financialAccounts.loanTapeConfiguration.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(loanTapeConfiguration.created_at);",
+ },
+ },
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/interest_tier_schedule',
+ httpMethod: 'get',
+ summary: 'List interest tier schedules',
+ description:
+ 'List interest tier schedules for a financial account with optional date filtering.\n\nIf no date parameters are provided, returns all tier schedules.\nIf date parameters are provided, uses filtering to return matching schedules (max 100).\n- for_date: Returns exact match (takes precedence over other dates)\n- before_date: Returns schedules with effective_date <= before_date\n- after_date: Returns schedules with effective_date >= after_date\n- Both before_date and after_date: Returns schedules in range',
+ stainlessPath: '(resource) financial_accounts.interest_tier_schedule > (method) list',
+ qualified: 'client.financialAccounts.interestTierSchedule.list',
+ params: [
+ 'financial_account_token: string;',
+ 'after_date?: string;',
+ 'before_date?: string;',
+ 'for_date?: string;',
+ ],
+ response:
+ '{ credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }',
+ markdown:
+ "## list\n\n`client.financialAccounts.interestTierSchedule.list(financial_account_token: string, after_date?: string, before_date?: string, for_date?: string): { credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/interest_tier_schedule`\n\nList interest tier schedules for a financial account with optional date filtering.\n\nIf no date parameters are provided, returns all tier schedules.\nIf date parameters are provided, uses filtering to return matching schedules (max 100).\n- for_date: Returns exact match (takes precedence over other dates)\n- before_date: Returns schedules with effective_date <= before_date\n- after_date: Returns schedules with effective_date >= after_date\n- Both before_date and after_date: Returns schedules in range\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `after_date?: string`\n Return schedules with effective_date >= after_date (ISO format YYYY-MM-DD)\n\n- `before_date?: string`\n Return schedules with effective_date <= before_date (ISO format YYYY-MM-DD)\n\n- `for_date?: string`\n Return schedule with effective_date == for_date (ISO format YYYY-MM-DD)\n\n### Returns\n\n- `{ credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n Entry in the Tier Schedule of an account\n\n - `credit_product_token: string`\n - `effective_date: string`\n - `penalty_rates?: object`\n - `tier_name?: string`\n - `tier_rates?: object`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const interestTierSchedule of client.financialAccounts.interestTierSchedule.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(interestTierSchedule);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FinancialAccounts.InterestTierSchedule.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FinancialAccounts.InterestTierSchedule.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountInterestTierScheduleListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/interest_tier_schedule \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'financialAccounts().interestTierSchedule().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FinancialAccountInterestTierScheduleListPage;\nimport com.lithic.api.models.FinancialAccountInterestTierScheduleListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FinancialAccountInterestTierScheduleListPage page = client.financialAccounts().interestTierSchedule().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'financialAccounts().interestTierSchedule().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountInterestTierScheduleListPage\nimport com.lithic.api.models.FinancialAccountInterestTierScheduleListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: FinancialAccountInterestTierScheduleListPage = client.financialAccounts().interestTierSchedule().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'financial_accounts.interest_tier_schedule.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.financial_accounts.interest_tier_schedule.list(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.credit_product_token)',
+ },
+ ruby: {
+ method: 'financial_accounts.interest_tier_schedule.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.financial_accounts.interest_tier_schedule.list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.financialAccounts.interestTierSchedule.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const interestTierSchedule of client.financialAccounts.interestTierSchedule.list(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(interestTierSchedule.credit_product_token);\n}",
+ },
+ },
},
{
name: 'create',
@@ -1873,6 +5729,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'{ credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }',
markdown:
"## create\n\n`client.financialAccounts.interestTierSchedule.create(financial_account_token: string, credit_product_token: string, effective_date: string, penalty_rates?: object, tier_name?: string, tier_rates?: object): { credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n\n**post** `/v1/financial_accounts/{financial_account_token}/interest_tier_schedule`\n\nCreate a new interest tier schedule entry for a supported financial account\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `credit_product_token: string`\n Globally unique identifier for a credit product\n\n- `effective_date: string`\n Date the tier should be effective in YYYY-MM-DD format\n\n- `penalty_rates?: object`\n Custom rates per category for penalties\n\n- `tier_name?: string`\n Name of a tier contained in the credit product. Mutually exclusive with tier_rates\n\n- `tier_rates?: object`\n Custom rates per category. Mutually exclusive with tier_name\n\n### Returns\n\n- `{ credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n Entry in the Tier Schedule of an account\n\n - `credit_product_token: string`\n - `effective_date: string`\n - `penalty_rates?: object`\n - `tier_name?: string`\n - `tier_rates?: object`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst interestTierSchedule = await client.financialAccounts.interestTierSchedule.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { credit_product_token: 'credit_product_token', effective_date: '2019-12-27' });\n\nconsole.log(interestTierSchedule);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FinancialAccounts.InterestTierSchedule.New',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tinterestTierSchedule, err := client.FinancialAccounts.InterestTierSchedule.New(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountInterestTierScheduleNewParams{\n\t\t\tInterestTierSchedule: lithic.InterestTierScheduleParam{\n\t\t\t\tCreditProductToken: lithic.F("credit_product_token"),\n\t\t\t\tEffectiveDate: lithic.F(time.Now()),\n\t\t\t},\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", interestTierSchedule.CreditProductToken)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/interest_tier_schedule \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "credit_product_token": "credit_product_token",\n "effective_date": "2019-12-27"\n }\'',
+ },
+ java: {
+ method: 'financialAccounts().interestTierSchedule().create',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FinancialAccountInterestTierScheduleCreateParams;\nimport com.lithic.api.models.InterestTierSchedule;\nimport java.time.LocalDate;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FinancialAccountInterestTierScheduleCreateParams params = FinancialAccountInterestTierScheduleCreateParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .interestTierSchedule(InterestTierSchedule.builder()\n .creditProductToken("credit_product_token")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build())\n .build();\n InterestTierSchedule interestTierSchedule = client.financialAccounts().interestTierSchedule().create(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'financialAccounts().interestTierSchedule().create',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountInterestTierScheduleCreateParams\nimport com.lithic.api.models.InterestTierSchedule\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FinancialAccountInterestTierScheduleCreateParams = FinancialAccountInterestTierScheduleCreateParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .interestTierSchedule(InterestTierSchedule.builder()\n .creditProductToken("credit_product_token")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build())\n .build()\n val interestTierSchedule: InterestTierSchedule = client.financialAccounts().interestTierSchedule().create(params)\n}',
+ },
+ python: {
+ method: 'financial_accounts.interest_tier_schedule.create',
+ example:
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ninterest_tier_schedule = client.financial_accounts.interest_tier_schedule.create(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n credit_product_token="credit_product_token",\n effective_date=date.fromisoformat("2019-12-27"),\n)\nprint(interest_tier_schedule.credit_product_token)',
+ },
+ ruby: {
+ method: 'financial_accounts.interest_tier_schedule.create',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ninterest_tier_schedule = lithic.financial_accounts.interest_tier_schedule.create(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n credit_product_token: "credit_product_token",\n effective_date: "2019-12-27"\n)\n\nputs(interest_tier_schedule)',
+ },
+ typescript: {
+ method: 'client.financialAccounts.interestTierSchedule.create',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst interestTierSchedule = await client.financialAccounts.interestTierSchedule.create(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { credit_product_token: 'credit_product_token', effective_date: '2019-12-27' },\n);\n\nconsole.log(interestTierSchedule.credit_product_token);",
+ },
+ },
},
{
name: 'retrieve',
@@ -1887,6 +5779,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'{ credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }',
markdown:
"## retrieve\n\n`client.financialAccounts.interestTierSchedule.retrieve(financial_account_token: string, effective_date: string): { credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/interest_tier_schedule/{effective_date}`\n\nGet a specific interest tier schedule by effective date\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `effective_date: string`\n\n### Returns\n\n- `{ credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n Entry in the Tier Schedule of an account\n\n - `credit_product_token: string`\n - `effective_date: string`\n - `penalty_rates?: object`\n - `tier_name?: string`\n - `tier_rates?: object`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst interestTierSchedule = await client.financialAccounts.interestTierSchedule.retrieve('2019-12-27', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(interestTierSchedule);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FinancialAccounts.InterestTierSchedule.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tinterestTierSchedule, err := client.FinancialAccounts.InterestTierSchedule.Get(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\ttime.Now(),\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", interestTierSchedule.CreditProductToken)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/interest_tier_schedule/$EFFECTIVE_DATE \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'financialAccounts().interestTierSchedule().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FinancialAccountInterestTierScheduleRetrieveParams;\nimport com.lithic.api.models.InterestTierSchedule;\nimport java.time.LocalDate;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FinancialAccountInterestTierScheduleRetrieveParams params = FinancialAccountInterestTierScheduleRetrieveParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build();\n InterestTierSchedule interestTierSchedule = client.financialAccounts().interestTierSchedule().retrieve(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'financialAccounts().interestTierSchedule().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountInterestTierScheduleRetrieveParams\nimport com.lithic.api.models.InterestTierSchedule\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FinancialAccountInterestTierScheduleRetrieveParams = FinancialAccountInterestTierScheduleRetrieveParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build()\n val interestTierSchedule: InterestTierSchedule = client.financialAccounts().interestTierSchedule().retrieve(params)\n}',
+ },
+ python: {
+ method: 'financial_accounts.interest_tier_schedule.retrieve',
+ example:
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ninterest_tier_schedule = client.financial_accounts.interest_tier_schedule.retrieve(\n effective_date=date.fromisoformat("2019-12-27"),\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(interest_tier_schedule.credit_product_token)',
+ },
+ ruby: {
+ method: 'financial_accounts.interest_tier_schedule.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ninterest_tier_schedule = lithic.financial_accounts.interest_tier_schedule.retrieve(\n "2019-12-27",\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(interest_tier_schedule)',
+ },
+ typescript: {
+ method: 'client.financialAccounts.interestTierSchedule.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst interestTierSchedule = await client.financialAccounts.interestTierSchedule.retrieve(\n '2019-12-27',\n { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(interestTierSchedule.credit_product_token);",
+ },
+ },
},
{
name: 'update',
@@ -1907,58 +5835,95 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'{ credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }',
markdown:
"## update\n\n`client.financialAccounts.interestTierSchedule.update(financial_account_token: string, effective_date: string, penalty_rates?: object, tier_name?: string, tier_rates?: object): { credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n\n**put** `/v1/financial_accounts/{financial_account_token}/interest_tier_schedule/{effective_date}`\n\nUpdate an existing interest tier schedule\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `effective_date: string`\n\n- `penalty_rates?: object`\n Custom rates per category for penalties\n\n- `tier_name?: string`\n Name of a tier contained in the credit product. Mutually exclusive with tier_rates\n\n- `tier_rates?: object`\n Custom rates per category. Mutually exclusive with tier_name\n\n### Returns\n\n- `{ credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n Entry in the Tier Schedule of an account\n\n - `credit_product_token: string`\n - `effective_date: string`\n - `penalty_rates?: object`\n - `tier_name?: string`\n - `tier_rates?: object`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst interestTierSchedule = await client.financialAccounts.interestTierSchedule.update('2019-12-27', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(interestTierSchedule);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FinancialAccounts.InterestTierSchedule.Update',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tinterestTierSchedule, err := client.FinancialAccounts.InterestTierSchedule.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\ttime.Now(),\n\t\tlithic.FinancialAccountInterestTierScheduleUpdateParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", interestTierSchedule.CreditProductToken)\n}\n',
+ },
+ http: {
+ example:
+ "curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/interest_tier_schedule/$EFFECTIVE_DATE \\\n -X PUT \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ },
+ java: {
+ method: 'financialAccounts().interestTierSchedule().update',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FinancialAccountInterestTierScheduleUpdateParams;\nimport com.lithic.api.models.InterestTierSchedule;\nimport java.time.LocalDate;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FinancialAccountInterestTierScheduleUpdateParams params = FinancialAccountInterestTierScheduleUpdateParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build();\n InterestTierSchedule interestTierSchedule = client.financialAccounts().interestTierSchedule().update(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'financialAccounts().interestTierSchedule().update',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountInterestTierScheduleUpdateParams\nimport com.lithic.api.models.InterestTierSchedule\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FinancialAccountInterestTierScheduleUpdateParams = FinancialAccountInterestTierScheduleUpdateParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build()\n val interestTierSchedule: InterestTierSchedule = client.financialAccounts().interestTierSchedule().update(params)\n}',
+ },
+ python: {
+ method: 'financial_accounts.interest_tier_schedule.update',
+ example:
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ninterest_tier_schedule = client.financial_accounts.interest_tier_schedule.update(\n effective_date=date.fromisoformat("2019-12-27"),\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(interest_tier_schedule.credit_product_token)',
+ },
+ ruby: {
+ method: 'financial_accounts.interest_tier_schedule.update',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ninterest_tier_schedule = lithic.financial_accounts.interest_tier_schedule.update(\n "2019-12-27",\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(interest_tier_schedule)',
+ },
+ typescript: {
+ method: 'client.financialAccounts.interestTierSchedule.update',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst interestTierSchedule = await client.financialAccounts.interestTierSchedule.update(\n '2019-12-27',\n { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(interestTierSchedule.credit_product_token);",
+ },
+ },
+ },
+ {
+ name: 'delete',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/interest_tier_schedule/{effective_date}',
+ httpMethod: 'delete',
+ summary: 'Delete interest tier schedule',
+ description:
+ "Delete an interest tier schedule entry.\n\nReturns:\n- 400 Bad Request: Invalid effective_date format OR attempting to delete the earliest\n tier schedule entry for a non-PENDING account\n- 404 Not Found: Tier schedule entry not found for the given effective_date OR ledger account not found\n\nNote: PENDING accounts can delete the earliest tier schedule entry (account hasn't opened yet).\nActive/non-PENDING accounts cannot delete the earliest entry to prevent orphaning the account.\n\nIf the deleted tier schedule has a past effective_date and the account is ACTIVE,\nthe loan tape rebuild configuration will be updated to trigger rebuilds from that date.",
+ stainlessPath: '(resource) financial_accounts.interest_tier_schedule > (method) delete',
+ qualified: 'client.financialAccounts.interestTierSchedule.delete',
+ params: ['financial_account_token: string;', 'effective_date: string;'],
+ markdown:
+ "## delete\n\n`client.financialAccounts.interestTierSchedule.delete(financial_account_token: string, effective_date: string): void`\n\n**delete** `/v1/financial_accounts/{financial_account_token}/interest_tier_schedule/{effective_date}`\n\nDelete an interest tier schedule entry.\n\nReturns:\n- 400 Bad Request: Invalid effective_date format OR attempting to delete the earliest\n tier schedule entry for a non-PENDING account\n- 404 Not Found: Tier schedule entry not found for the given effective_date OR ledger account not found\n\nNote: PENDING accounts can delete the earliest tier schedule entry (account hasn't opened yet).\nActive/non-PENDING accounts cannot delete the earliest entry to prevent orphaning the account.\n\nIf the deleted tier schedule has a past effective_date and the account is ACTIVE,\nthe loan tape rebuild configuration will be updated to trigger rebuilds from that date.\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `effective_date: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.financialAccounts.interestTierSchedule.delete('2019-12-27', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' })\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FinancialAccounts.InterestTierSchedule.Delete',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.FinancialAccounts.InterestTierSchedule.Delete(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\ttime.Now(),\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/interest_tier_schedule/$EFFECTIVE_DATE \\\n -X DELETE \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'financialAccounts().interestTierSchedule().delete',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FinancialAccountInterestTierScheduleDeleteParams;\nimport java.time.LocalDate;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FinancialAccountInterestTierScheduleDeleteParams params = FinancialAccountInterestTierScheduleDeleteParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build();\n client.financialAccounts().interestTierSchedule().delete(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'financialAccounts().interestTierSchedule().delete',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountInterestTierScheduleDeleteParams\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FinancialAccountInterestTierScheduleDeleteParams = FinancialAccountInterestTierScheduleDeleteParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build()\n client.financialAccounts().interestTierSchedule().delete(params)\n}',
+ },
+ python: {
+ method: 'financial_accounts.interest_tier_schedule.delete',
+ example:
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.financial_accounts.interest_tier_schedule.delete(\n effective_date=date.fromisoformat("2019-12-27"),\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)',
+ },
+ ruby: {
+ method: 'financial_accounts.interest_tier_schedule.delete',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.financial_accounts.interest_tier_schedule.delete(\n "2019-12-27",\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(result)',
+ },
+ typescript: {
+ method: 'client.financialAccounts.interestTierSchedule.delete',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.financialAccounts.interestTierSchedule.delete('2019-12-27', {\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});",
+ },
+ },
},
{
name: 'list',
- endpoint: '/v1/financial_accounts/{financial_account_token}/interest_tier_schedule',
- httpMethod: 'get',
- summary: 'List interest tier schedules',
- description:
- 'List interest tier schedules for a financial account with optional date filtering.\n\nIf no date parameters are provided, returns all tier schedules.\nIf date parameters are provided, uses filtering to return matching schedules (max 100).\n- for_date: Returns exact match (takes precedence over other dates)\n- before_date: Returns schedules with effective_date <= before_date\n- after_date: Returns schedules with effective_date >= after_date\n- Both before_date and after_date: Returns schedules in range',
- stainlessPath: '(resource) financial_accounts.interest_tier_schedule > (method) list',
- qualified: 'client.financialAccounts.interestTierSchedule.list',
- params: [
- 'financial_account_token: string;',
- 'after_date?: string;',
- 'before_date?: string;',
- 'for_date?: string;',
- ],
- response:
- '{ credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }',
- markdown:
- "## list\n\n`client.financialAccounts.interestTierSchedule.list(financial_account_token: string, after_date?: string, before_date?: string, for_date?: string): { credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/interest_tier_schedule`\n\nList interest tier schedules for a financial account with optional date filtering.\n\nIf no date parameters are provided, returns all tier schedules.\nIf date parameters are provided, uses filtering to return matching schedules (max 100).\n- for_date: Returns exact match (takes precedence over other dates)\n- before_date: Returns schedules with effective_date <= before_date\n- after_date: Returns schedules with effective_date >= after_date\n- Both before_date and after_date: Returns schedules in range\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `after_date?: string`\n Return schedules with effective_date >= after_date (ISO format YYYY-MM-DD)\n\n- `before_date?: string`\n Return schedules with effective_date <= before_date (ISO format YYYY-MM-DD)\n\n- `for_date?: string`\n Return schedule with effective_date == for_date (ISO format YYYY-MM-DD)\n\n### Returns\n\n- `{ credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n Entry in the Tier Schedule of an account\n\n - `credit_product_token: string`\n - `effective_date: string`\n - `penalty_rates?: object`\n - `tier_name?: string`\n - `tier_rates?: object`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const interestTierSchedule of client.financialAccounts.interestTierSchedule.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(interestTierSchedule);\n}\n```",
- },
- {
- name: 'delete',
- endpoint: '/v1/financial_accounts/{financial_account_token}/interest_tier_schedule/{effective_date}',
- httpMethod: 'delete',
- summary: 'Delete interest tier schedule',
- description:
- "Delete an interest tier schedule entry.\n\nReturns:\n- 400 Bad Request: Invalid effective_date format OR attempting to delete the earliest\n tier schedule entry for a non-PENDING account\n- 404 Not Found: Tier schedule entry not found for the given effective_date OR ledger account not found\n\nNote: PENDING accounts can delete the earliest tier schedule entry (account hasn't opened yet).\nActive/non-PENDING accounts cannot delete the earliest entry to prevent orphaning the account.\n\nIf the deleted tier schedule has a past effective_date and the account is ACTIVE,\nthe loan tape rebuild configuration will be updated to trigger rebuilds from that date.",
- stainlessPath: '(resource) financial_accounts.interest_tier_schedule > (method) delete',
- qualified: 'client.financialAccounts.interestTierSchedule.delete',
- params: ['financial_account_token: string;', 'effective_date: string;'],
- markdown:
- "## delete\n\n`client.financialAccounts.interestTierSchedule.delete(financial_account_token: string, effective_date: string): void`\n\n**delete** `/v1/financial_accounts/{financial_account_token}/interest_tier_schedule/{effective_date}`\n\nDelete an interest tier schedule entry.\n\nReturns:\n- 400 Bad Request: Invalid effective_date format OR attempting to delete the earliest\n tier schedule entry for a non-PENDING account\n- 404 Not Found: Tier schedule entry not found for the given effective_date OR ledger account not found\n\nNote: PENDING accounts can delete the earliest tier schedule entry (account hasn't opened yet).\nActive/non-PENDING accounts cannot delete the earliest entry to prevent orphaning the account.\n\nIf the deleted tier schedule has a past effective_date and the account is ACTIVE,\nthe loan tape rebuild configuration will be updated to trigger rebuilds from that date.\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `effective_date: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.financialAccounts.interestTierSchedule.delete('2019-12-27', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' })\n```",
- },
- {
- name: 'retrieve',
- endpoint: '/v1/transactions/{transaction_token}',
- httpMethod: 'get',
- summary: 'Get card transaction',
- description:
- 'Get a specific card transaction. All amounts are in the smallest unit of their respective currency (e.g., cents for USD).\n',
- stainlessPath: '(resource) transactions > (method) retrieve',
- qualified: 'client.transactions.retrieve',
- params: ['transaction_token: string;'],
- response:
- "{ token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: object; authorization_amount: number; authorization_code: string; avs: object; card_token: string; cardholder_authentication: cardholder_authentication; created: string; financial_account_token: string; merchant: merchant; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: object; result: string; service_location: object; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: token_info; updated: string; events?: object[]; }",
- markdown:
- "## retrieve\n\n`client.transactions.retrieve(transaction_token: string): { token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: object; authorization_amount: number; authorization_code: string; avs: object; card_token: string; cardholder_authentication: cardholder_authentication; created: string; financial_account_token: string; merchant: merchant; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: object; result: string; service_location: object; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: token_info; updated: string; events?: object[]; }`\n\n**get** `/v1/transactions/{transaction_token}`\n\nGet a specific card transaction. All amounts are in the smallest unit of their respective currency (e.g., cents for USD).\n\n\n### Parameters\n\n- `transaction_token: string`\n\n### Returns\n\n- `{ token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: { cardholder: { amount: number; conversion_rate: string; currency: currency; }; hold: { amount: number; currency: currency; }; merchant: { amount: number; currency: currency; }; settlement: { amount: number; currency: currency; }; }; authorization_amount: number; authorization_code: string; avs: { address: string; zipcode: string; }; card_token: string; cardholder_authentication: { authentication_method: 'FRICTIONLESS' | 'CHALLENGE' | 'NONE'; authentication_result: 'ATTEMPTS' | 'DECLINE' | 'NONE' | 'SUCCESS'; decision_made_by: 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'LITHIC_DEFAULT' | 'LITHIC_RULES' | 'NETWORK' | 'UNKNOWN'; liability_shift: '3DS_AUTHENTICATED' | 'TOKEN_AUTHENTICATED' | 'NONE'; three_ds_authentication_token: string; }; created: string; financial_account_token: string; merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: { entry_mode: { card: 'NOT_PRESENT' | 'PREAUTHORIZED' | 'PRESENT' | 'UNKNOWN'; cardholder: string; pan: string; pin_entered: boolean; }; terminal: { attended: boolean; card_retention_capable: boolean; on_premise: boolean; operator: 'ADMINISTRATIVE' | 'CARDHOLDER' | 'CARD_ACCEPTOR' | 'UNKNOWN'; partial_approval_capable: boolean; pin_capability: 'CAPABLE' | 'INOPERATIVE' | 'NOT_CAPABLE' | 'UNSPECIFIED'; type: string; acceptor_terminal_id?: string; }; }; result: string; service_location: { city: string; country: string; postal_code: string; state: string; street_address: string; }; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: { wallet_type: 'APPLE_PAY' | 'GOOGLE_PAY' | 'MASTERPASS' | 'MERCHANT' | 'OTHER' | 'SAMSUNG_PAY'; }; updated: string; events?: { token: string; amount: number; amounts: { cardholder: object; merchant: object; settlement: object; }; created: string; detailed_results: string[]; effective_polarity: 'CREDIT' | 'DEBIT'; network_info: { acquirer: object; amex: object; mastercard: object; visa: object; }; result: string; rule_results: { auth_rule_token: string; explanation: string; name: string; result: string; }[]; type: string; account_type?: 'CHECKING' | 'SAVINGS'; network_specific_data?: { mastercard: object; visa: object; }; }[]; }`\n\n - `token: string`\n - `account_token: string`\n - `acquirer_fee: number`\n - `acquirer_reference_number: string`\n - `amount: number`\n - `amounts: { cardholder: { amount: number; conversion_rate: string; currency: string; }; hold: { amount: number; currency: string; }; merchant: { amount: number; currency: string; }; settlement: { amount: number; currency: string; }; }`\n - `authorization_amount: number`\n - `authorization_code: string`\n - `avs: { address: string; zipcode: string; }`\n - `card_token: string`\n - `cardholder_authentication: { authentication_method: 'FRICTIONLESS' | 'CHALLENGE' | 'NONE'; authentication_result: 'ATTEMPTS' | 'DECLINE' | 'NONE' | 'SUCCESS'; decision_made_by: 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'LITHIC_DEFAULT' | 'LITHIC_RULES' | 'NETWORK' | 'UNKNOWN'; liability_shift: '3DS_AUTHENTICATED' | 'TOKEN_AUTHENTICATED' | 'NONE'; three_ds_authentication_token: string; }`\n - `created: string`\n - `financial_account_token: string`\n - `merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }`\n - `merchant_amount: number`\n - `merchant_authorization_amount: number`\n - `merchant_currency: string`\n - `network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'`\n - `network_risk_score: number`\n - `pos: { entry_mode: { card: 'NOT_PRESENT' | 'PREAUTHORIZED' | 'PRESENT' | 'UNKNOWN'; cardholder: string; pan: string; pin_entered: boolean; }; terminal: { attended: boolean; card_retention_capable: boolean; on_premise: boolean; operator: 'ADMINISTRATIVE' | 'CARDHOLDER' | 'CARD_ACCEPTOR' | 'UNKNOWN'; partial_approval_capable: boolean; pin_capability: 'CAPABLE' | 'INOPERATIVE' | 'NOT_CAPABLE' | 'UNSPECIFIED'; type: string; acceptor_terminal_id?: string; }; }`\n - `result: string`\n - `service_location: { city: string; country: string; postal_code: string; state: string; street_address: string; }`\n - `settled_amount: number`\n - `status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'`\n - `tags: object`\n - `token_info: { wallet_type: 'APPLE_PAY' | 'GOOGLE_PAY' | 'MASTERPASS' | 'MERCHANT' | 'OTHER' | 'SAMSUNG_PAY'; }`\n - `updated: string`\n - `events?: { token: string; amount: number; amounts: { cardholder: { amount: number; conversion_rate: string; currency: string; }; merchant: { amount: number; currency: string; }; settlement: { amount: number; conversion_rate: string; currency: string; }; }; created: string; detailed_results: string[]; effective_polarity: 'CREDIT' | 'DEBIT'; network_info: { acquirer: { acquirer_reference_number: string; retrieval_reference_number: string; }; amex: { original_transaction_id: string; transaction_id: string; }; mastercard: { banknet_reference_number: string; original_banknet_reference_number: string; original_switch_serial_number: string; switch_serial_number: string; }; visa: { original_transaction_id: string; transaction_id: string; }; }; result: string; rule_results: { auth_rule_token: string; explanation: string; name: string; result: string; }[]; type: string; account_type?: 'CHECKING' | 'SAVINGS'; network_specific_data?: { mastercard: { ecommerce_security_level_indicator: string; on_behalf_service_result: { result_1: string; result_2: string; service: string; }[]; transaction_type_identifier: string; }; visa: { business_application_identifier: string; }; }; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst transaction = await client.transactions.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(transaction);\n```",
- },
- {
- name: 'list',
- endpoint: '/v1/transactions',
+ endpoint: '/v1/transactions',
httpMethod: 'get',
summary: 'List card transactions',
description:
@@ -1980,18 +5945,92 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: object; authorization_amount: number; authorization_code: string; avs: object; card_token: string; cardholder_authentication: cardholder_authentication; created: string; financial_account_token: string; merchant: merchant; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: object; result: string; service_location: object; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: token_info; updated: string; events?: object[]; }",
markdown:
"## list\n\n`client.transactions.list(account_token?: string, begin?: string, card_token?: string, end?: string, ending_before?: string, page_size?: number, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'PENDING' | 'VOIDED' | 'SETTLED' | 'DECLINED' | 'EXPIRED'): { token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: object; authorization_amount: number; authorization_code: string; avs: object; card_token: string; cardholder_authentication: cardholder_authentication; created: string; financial_account_token: string; merchant: merchant; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: object; result: string; service_location: object; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: token_info; updated: string; events?: object[]; }`\n\n**get** `/v1/transactions`\n\nList card transactions. All amounts are in the smallest unit of their respective currency (e.g., cents for USD) and inclusive of any acquirer fees.\n\n\n### Parameters\n\n- `account_token?: string`\n Filters for transactions associated with a specific account.\n\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `card_token?: string`\n Filters for transactions associated with a specific card.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `result?: 'APPROVED' | 'DECLINED'`\n Filters for transactions using transaction result field. Can filter by `APPROVED`, and `DECLINED`.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'PENDING' | 'VOIDED' | 'SETTLED' | 'DECLINED' | 'EXPIRED'`\n Filters for transactions using transaction status field.\n\n### Returns\n\n- `{ token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: { cardholder: { amount: number; conversion_rate: string; currency: currency; }; hold: { amount: number; currency: currency; }; merchant: { amount: number; currency: currency; }; settlement: { amount: number; currency: currency; }; }; authorization_amount: number; authorization_code: string; avs: { address: string; zipcode: string; }; card_token: string; cardholder_authentication: { authentication_method: 'FRICTIONLESS' | 'CHALLENGE' | 'NONE'; authentication_result: 'ATTEMPTS' | 'DECLINE' | 'NONE' | 'SUCCESS'; decision_made_by: 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'LITHIC_DEFAULT' | 'LITHIC_RULES' | 'NETWORK' | 'UNKNOWN'; liability_shift: '3DS_AUTHENTICATED' | 'TOKEN_AUTHENTICATED' | 'NONE'; three_ds_authentication_token: string; }; created: string; financial_account_token: string; merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: { entry_mode: { card: 'NOT_PRESENT' | 'PREAUTHORIZED' | 'PRESENT' | 'UNKNOWN'; cardholder: string; pan: string; pin_entered: boolean; }; terminal: { attended: boolean; card_retention_capable: boolean; on_premise: boolean; operator: 'ADMINISTRATIVE' | 'CARDHOLDER' | 'CARD_ACCEPTOR' | 'UNKNOWN'; partial_approval_capable: boolean; pin_capability: 'CAPABLE' | 'INOPERATIVE' | 'NOT_CAPABLE' | 'UNSPECIFIED'; type: string; acceptor_terminal_id?: string; }; }; result: string; service_location: { city: string; country: string; postal_code: string; state: string; street_address: string; }; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: { wallet_type: 'APPLE_PAY' | 'GOOGLE_PAY' | 'MASTERPASS' | 'MERCHANT' | 'OTHER' | 'SAMSUNG_PAY'; }; updated: string; events?: { token: string; amount: number; amounts: { cardholder: object; merchant: object; settlement: object; }; created: string; detailed_results: string[]; effective_polarity: 'CREDIT' | 'DEBIT'; network_info: { acquirer: object; amex: object; mastercard: object; visa: object; }; result: string; rule_results: { auth_rule_token: string; explanation: string; name: string; result: string; }[]; type: string; account_type?: 'CHECKING' | 'SAVINGS'; network_specific_data?: { mastercard: object; visa: object; }; }[]; }`\n\n - `token: string`\n - `account_token: string`\n - `acquirer_fee: number`\n - `acquirer_reference_number: string`\n - `amount: number`\n - `amounts: { cardholder: { amount: number; conversion_rate: string; currency: string; }; hold: { amount: number; currency: string; }; merchant: { amount: number; currency: string; }; settlement: { amount: number; currency: string; }; }`\n - `authorization_amount: number`\n - `authorization_code: string`\n - `avs: { address: string; zipcode: string; }`\n - `card_token: string`\n - `cardholder_authentication: { authentication_method: 'FRICTIONLESS' | 'CHALLENGE' | 'NONE'; authentication_result: 'ATTEMPTS' | 'DECLINE' | 'NONE' | 'SUCCESS'; decision_made_by: 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'LITHIC_DEFAULT' | 'LITHIC_RULES' | 'NETWORK' | 'UNKNOWN'; liability_shift: '3DS_AUTHENTICATED' | 'TOKEN_AUTHENTICATED' | 'NONE'; three_ds_authentication_token: string; }`\n - `created: string`\n - `financial_account_token: string`\n - `merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }`\n - `merchant_amount: number`\n - `merchant_authorization_amount: number`\n - `merchant_currency: string`\n - `network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'`\n - `network_risk_score: number`\n - `pos: { entry_mode: { card: 'NOT_PRESENT' | 'PREAUTHORIZED' | 'PRESENT' | 'UNKNOWN'; cardholder: string; pan: string; pin_entered: boolean; }; terminal: { attended: boolean; card_retention_capable: boolean; on_premise: boolean; operator: 'ADMINISTRATIVE' | 'CARDHOLDER' | 'CARD_ACCEPTOR' | 'UNKNOWN'; partial_approval_capable: boolean; pin_capability: 'CAPABLE' | 'INOPERATIVE' | 'NOT_CAPABLE' | 'UNSPECIFIED'; type: string; acceptor_terminal_id?: string; }; }`\n - `result: string`\n - `service_location: { city: string; country: string; postal_code: string; state: string; street_address: string; }`\n - `settled_amount: number`\n - `status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'`\n - `tags: object`\n - `token_info: { wallet_type: 'APPLE_PAY' | 'GOOGLE_PAY' | 'MASTERPASS' | 'MERCHANT' | 'OTHER' | 'SAMSUNG_PAY'; }`\n - `updated: string`\n - `events?: { token: string; amount: number; amounts: { cardholder: { amount: number; conversion_rate: string; currency: string; }; merchant: { amount: number; currency: string; }; settlement: { amount: number; conversion_rate: string; currency: string; }; }; created: string; detailed_results: string[]; effective_polarity: 'CREDIT' | 'DEBIT'; network_info: { acquirer: { acquirer_reference_number: string; retrieval_reference_number: string; }; amex: { original_transaction_id: string; transaction_id: string; }; mastercard: { banknet_reference_number: string; original_banknet_reference_number: string; original_switch_serial_number: string; switch_serial_number: string; }; visa: { original_transaction_id: string; transaction_id: string; }; }; result: string; rule_results: { auth_rule_token: string; explanation: string; name: string; result: string; }[]; type: string; account_type?: 'CHECKING' | 'SAVINGS'; network_specific_data?: { mastercard: { ecommerce_security_level_indicator: string; on_behalf_service_result: { result_1: string; result_2: string; service: string; }[]; transaction_type_identifier: string; }; visa: { business_application_identifier: string; }; }; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const transaction of client.transactions.list()) {\n console.log(transaction);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Transactions.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Transactions.List(context.TODO(), lithic.TransactionListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example: 'curl https://api.lithic.com/v1/transactions \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'transactions().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.TransactionListPage;\nimport com.lithic.api.models.TransactionListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n TransactionListPage page = client.transactions().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'transactions().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TransactionListPage\nimport com.lithic.api.models.TransactionListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: TransactionListPage = client.transactions().list()\n}',
+ },
+ python: {
+ method: 'transactions.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.transactions.list()\npage = page.data[0]\nprint(page.token)',
+ },
+ ruby: {
+ method: 'transactions.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.transactions.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.transactions.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const transaction of client.transactions.list()) {\n console.log(transaction.token);\n}",
+ },
+ },
},
{
- name: 'expire_authorization',
- endpoint: '/v1/transactions/{transaction_token}/expire_authorization',
- httpMethod: 'post',
- summary: 'Expire an authorization',
- description: 'Expire authorization',
- stainlessPath: '(resource) transactions > (method) expire_authorization',
- qualified: 'client.transactions.expireAuthorization',
+ name: 'retrieve',
+ endpoint: '/v1/transactions/{transaction_token}',
+ httpMethod: 'get',
+ summary: 'Get card transaction',
+ description:
+ 'Get a specific card transaction. All amounts are in the smallest unit of their respective currency (e.g., cents for USD).\n',
+ stainlessPath: '(resource) transactions > (method) retrieve',
+ qualified: 'client.transactions.retrieve',
params: ['transaction_token: string;'],
+ response:
+ "{ token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: object; authorization_amount: number; authorization_code: string; avs: object; card_token: string; cardholder_authentication: cardholder_authentication; created: string; financial_account_token: string; merchant: merchant; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: object; result: string; service_location: object; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: token_info; updated: string; events?: object[]; }",
markdown:
- "## expire_authorization\n\n`client.transactions.expireAuthorization(transaction_token: string): void`\n\n**post** `/v1/transactions/{transaction_token}/expire_authorization`\n\nExpire authorization\n\n### Parameters\n\n- `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.transactions.expireAuthorization('00000000-0000-0000-0000-000000000000')\n```",
+ "## retrieve\n\n`client.transactions.retrieve(transaction_token: string): { token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: object; authorization_amount: number; authorization_code: string; avs: object; card_token: string; cardholder_authentication: cardholder_authentication; created: string; financial_account_token: string; merchant: merchant; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: object; result: string; service_location: object; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: token_info; updated: string; events?: object[]; }`\n\n**get** `/v1/transactions/{transaction_token}`\n\nGet a specific card transaction. All amounts are in the smallest unit of their respective currency (e.g., cents for USD).\n\n\n### Parameters\n\n- `transaction_token: string`\n\n### Returns\n\n- `{ token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: { cardholder: { amount: number; conversion_rate: string; currency: currency; }; hold: { amount: number; currency: currency; }; merchant: { amount: number; currency: currency; }; settlement: { amount: number; currency: currency; }; }; authorization_amount: number; authorization_code: string; avs: { address: string; zipcode: string; }; card_token: string; cardholder_authentication: { authentication_method: 'FRICTIONLESS' | 'CHALLENGE' | 'NONE'; authentication_result: 'ATTEMPTS' | 'DECLINE' | 'NONE' | 'SUCCESS'; decision_made_by: 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'LITHIC_DEFAULT' | 'LITHIC_RULES' | 'NETWORK' | 'UNKNOWN'; liability_shift: '3DS_AUTHENTICATED' | 'TOKEN_AUTHENTICATED' | 'NONE'; three_ds_authentication_token: string; }; created: string; financial_account_token: string; merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: { entry_mode: { card: 'NOT_PRESENT' | 'PREAUTHORIZED' | 'PRESENT' | 'UNKNOWN'; cardholder: string; pan: string; pin_entered: boolean; }; terminal: { attended: boolean; card_retention_capable: boolean; on_premise: boolean; operator: 'ADMINISTRATIVE' | 'CARDHOLDER' | 'CARD_ACCEPTOR' | 'UNKNOWN'; partial_approval_capable: boolean; pin_capability: 'CAPABLE' | 'INOPERATIVE' | 'NOT_CAPABLE' | 'UNSPECIFIED'; type: string; acceptor_terminal_id?: string; }; }; result: string; service_location: { city: string; country: string; postal_code: string; state: string; street_address: string; }; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: { wallet_type: 'APPLE_PAY' | 'GOOGLE_PAY' | 'MASTERPASS' | 'MERCHANT' | 'OTHER' | 'SAMSUNG_PAY'; }; updated: string; events?: { token: string; amount: number; amounts: { cardholder: object; merchant: object; settlement: object; }; created: string; detailed_results: string[]; effective_polarity: 'CREDIT' | 'DEBIT'; network_info: { acquirer: object; amex: object; mastercard: object; visa: object; }; result: string; rule_results: { auth_rule_token: string; explanation: string; name: string; result: string; }[]; type: string; account_type?: 'CHECKING' | 'SAVINGS'; network_specific_data?: { mastercard: object; visa: object; }; }[]; }`\n\n - `token: string`\n - `account_token: string`\n - `acquirer_fee: number`\n - `acquirer_reference_number: string`\n - `amount: number`\n - `amounts: { cardholder: { amount: number; conversion_rate: string; currency: string; }; hold: { amount: number; currency: string; }; merchant: { amount: number; currency: string; }; settlement: { amount: number; currency: string; }; }`\n - `authorization_amount: number`\n - `authorization_code: string`\n - `avs: { address: string; zipcode: string; }`\n - `card_token: string`\n - `cardholder_authentication: { authentication_method: 'FRICTIONLESS' | 'CHALLENGE' | 'NONE'; authentication_result: 'ATTEMPTS' | 'DECLINE' | 'NONE' | 'SUCCESS'; decision_made_by: 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'LITHIC_DEFAULT' | 'LITHIC_RULES' | 'NETWORK' | 'UNKNOWN'; liability_shift: '3DS_AUTHENTICATED' | 'TOKEN_AUTHENTICATED' | 'NONE'; three_ds_authentication_token: string; }`\n - `created: string`\n - `financial_account_token: string`\n - `merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }`\n - `merchant_amount: number`\n - `merchant_authorization_amount: number`\n - `merchant_currency: string`\n - `network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'`\n - `network_risk_score: number`\n - `pos: { entry_mode: { card: 'NOT_PRESENT' | 'PREAUTHORIZED' | 'PRESENT' | 'UNKNOWN'; cardholder: string; pan: string; pin_entered: boolean; }; terminal: { attended: boolean; card_retention_capable: boolean; on_premise: boolean; operator: 'ADMINISTRATIVE' | 'CARDHOLDER' | 'CARD_ACCEPTOR' | 'UNKNOWN'; partial_approval_capable: boolean; pin_capability: 'CAPABLE' | 'INOPERATIVE' | 'NOT_CAPABLE' | 'UNSPECIFIED'; type: string; acceptor_terminal_id?: string; }; }`\n - `result: string`\n - `service_location: { city: string; country: string; postal_code: string; state: string; street_address: string; }`\n - `settled_amount: number`\n - `status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'`\n - `tags: object`\n - `token_info: { wallet_type: 'APPLE_PAY' | 'GOOGLE_PAY' | 'MASTERPASS' | 'MERCHANT' | 'OTHER' | 'SAMSUNG_PAY'; }`\n - `updated: string`\n - `events?: { token: string; amount: number; amounts: { cardholder: { amount: number; conversion_rate: string; currency: string; }; merchant: { amount: number; currency: string; }; settlement: { amount: number; conversion_rate: string; currency: string; }; }; created: string; detailed_results: string[]; effective_polarity: 'CREDIT' | 'DEBIT'; network_info: { acquirer: { acquirer_reference_number: string; retrieval_reference_number: string; }; amex: { original_transaction_id: string; transaction_id: string; }; mastercard: { banknet_reference_number: string; original_banknet_reference_number: string; original_switch_serial_number: string; switch_serial_number: string; }; visa: { original_transaction_id: string; transaction_id: string; }; }; result: string; rule_results: { auth_rule_token: string; explanation: string; name: string; result: string; }[]; type: string; account_type?: 'CHECKING' | 'SAVINGS'; network_specific_data?: { mastercard: { ecommerce_security_level_indicator: string; on_behalf_service_result: { result_1: string; result_2: string; service: string; }[]; transaction_type_identifier: string; }; visa: { business_application_identifier: string; }; }; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst transaction = await client.transactions.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(transaction);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Transactions.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\ttransaction, err := client.Transactions.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", transaction.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/transactions/$TRANSACTION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'transactions().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Transaction;\nimport com.lithic.api.models.TransactionRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n Transaction transaction = client.transactions().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'transactions().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Transaction\nimport com.lithic.api.models.TransactionRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val transaction: Transaction = client.transactions().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'transactions.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ntransaction = client.transactions.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(transaction.token)',
+ },
+ ruby: {
+ method: 'transactions.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ntransaction = lithic.transactions.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(transaction)',
+ },
+ typescript: {
+ method: 'client.transactions.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst transaction = await client.transactions.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(transaction.token);",
+ },
+ },
},
{
name: 'simulate_authorization',
@@ -2020,20 +6059,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response: '{ token?: string; debugging_request_id?: string; }',
markdown:
"## simulate_authorization\n\n`client.transactions.simulateAuthorization(amount: number, descriptor: string, pan: string, mcc?: string, merchant_acceptor_city?: string, merchant_acceptor_country?: string, merchant_acceptor_id?: string, merchant_acceptor_state?: string, merchant_amount?: number, merchant_currency?: string, partial_approval_capable?: boolean, pin?: string, status?: string): { token?: string; debugging_request_id?: string; }`\n\n**post** `/v1/simulate/authorize`\n\nSimulates an authorization request from the card network as if it came from a merchant acquirer.\nIf you are configured for ASA, simulating authorizations requires your ASA client to be set up properly, i.e. be able to respond to the ASA request with a valid JSON. For users that are not configured for ASA, a daily transaction limit of $5000 USD is applied by default. You can update this limit via the [update account](https://docs.lithic.com/reference/patchaccountbytoken) endpoint.\n\n\n### Parameters\n\n- `amount: number`\n Amount (in cents) to authorize. For credit authorizations and financial credit authorizations, any value entered will be converted into a negative amount in the simulated transaction. For example, entering 100 in this field will result in a -100 amount in the transaction. For balance inquiries, this field must be set to 0.\n\n- `descriptor: string`\n Merchant descriptor.\n\n- `pan: string`\n Sixteen digit card number.\n\n- `mcc?: string`\n Merchant category code for the transaction to be simulated. A four-digit number listed in ISO 18245.\nSupported merchant category codes can be found [here](https://docs.lithic.com/docs/transactions#merchant-category-codes-mccs).\n\n\n- `merchant_acceptor_city?: string`\n Merchant acceptor city\n\n- `merchant_acceptor_country?: string`\n Merchant acceptor country code (ISO 3166-1 alpha-3)\n\n- `merchant_acceptor_id?: string`\n Unique identifier to identify the payment card acceptor.\n\n- `merchant_acceptor_state?: string`\n Merchant acceptor state/province (ISO 3166-2 subdivision code)\n\n- `merchant_amount?: number`\n Amount of the transaction to be simulated in currency specified in merchant_currency, including any acquirer fees.\n\n- `merchant_currency?: string`\n 3-character alphabetic ISO 4217 currency code. Note: Simulator only accepts USD, GBP, EUR and defaults to GBP if another ISO 4217 code is provided\n\n- `partial_approval_capable?: boolean`\n Set to true if the terminal is capable of partial approval otherwise false.\nPartial approval is when part of a transaction is approved and another\npayment must be used for the remainder.\n\n\n- `pin?: string`\n Simulate entering a PIN. If omitted, PIN check will not be performed.\n\n- `status?: string`\n Type of event to simulate.\n* `AUTHORIZATION` is a dual message purchase authorization, meaning a subsequent clearing step is required to settle the transaction.\n* `BALANCE_INQUIRY` is a $0 authorization requesting the balance held on the card, and is most often observed when a cardholder requests to view a card's balance at an ATM.\n* `CREDIT_AUTHORIZATION` is a dual message request from a merchant to authorize a refund, meaning a subsequent clearing step is required to settle the transaction.\n* `FINANCIAL_AUTHORIZATION` is a single message request from a merchant to debit funds immediately (such as an ATM withdrawal), and no subsequent clearing is required to settle the transaction.\n* `FINANCIAL_CREDIT_AUTHORIZATION` is a single message request from a merchant to credit funds immediately, and no subsequent clearing is required to settle the transaction.\n\n### Returns\n\n- `{ token?: string; debugging_request_id?: string; }`\n\n - `token?: string`\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateAuthorization({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n});\n\nconsole.log(response);\n```",
- },
- {
- name: 'simulate_authorization_advice',
- endpoint: '/v1/simulate/authorization_advice',
- httpMethod: 'post',
- summary: 'Simulate authorization advice',
- description:
- 'Simulates an authorization advice from the card network as if it came from a merchant acquirer. An authorization advice changes the pending amount of the transaction.\n',
- stainlessPath: '(resource) transactions > (method) simulate_authorization_advice',
- qualified: 'client.transactions.simulateAuthorizationAdvice',
- params: ['token: string;', 'amount: number;'],
- response: '{ token?: string; debugging_request_id?: string; }',
- markdown:
- "## simulate_authorization_advice\n\n`client.transactions.simulateAuthorizationAdvice(token: string, amount: number): { token?: string; debugging_request_id?: string; }`\n\n**post** `/v1/simulate/authorization_advice`\n\nSimulates an authorization advice from the card network as if it came from a merchant acquirer. An authorization advice changes the pending amount of the transaction.\n\n\n### Parameters\n\n- `token: string`\n The transaction token returned from the /v1/simulate/authorize. response.\n\n- `amount: number`\n Amount (in cents) to authorize. This amount will override the transaction's amount that was originally set by /v1/simulate/authorize.\n\n### Returns\n\n- `{ token?: string; debugging_request_id?: string; }`\n\n - `token?: string`\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateAuthorizationAdvice({ token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac', amount: 3831 });\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Transactions.SimulateAuthorization',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateAuthorization(context.TODO(), lithic.TransactionSimulateAuthorizationParams{\n\t\tAmount: lithic.F(int64(3831)),\n\t\tDescriptor: lithic.F("COFFEE SHOP"),\n\t\tPan: lithic.F("4111111289144142"),\n\t\tMerchantAcceptorCity: lithic.F("LOS ANGELES"),\n\t\tMerchantAcceptorCountry: lithic.F("USA"),\n\t\tMerchantAcceptorState: lithic.F("CA"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/simulate/authorize \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 3831,\n "descriptor": "COFFEE SHOP",\n "pan": "4111111289144142",\n "mcc": "5812",\n "merchant_acceptor_city": "LOS ANGELES",\n "merchant_acceptor_country": "USA",\n "merchant_acceptor_id": "OODKZAPJVN4YS7O",\n "merchant_acceptor_state": "CA",\n "merchant_currency": "GBP",\n "pin": "1234",\n "status": "AUTHORIZATION"\n }\'',
+ },
+ java: {
+ method: 'transactions().simulateAuthorization',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.TransactionSimulateAuthorizationParams;\nimport com.lithic.api.models.TransactionSimulateAuthorizationResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n TransactionSimulateAuthorizationParams params = TransactionSimulateAuthorizationParams.builder()\n .amount(3831L)\n .descriptor("COFFEE SHOP")\n .pan("4111111289144142")\n .build();\n TransactionSimulateAuthorizationResponse response = client.transactions().simulateAuthorization(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'transactions().simulateAuthorization',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TransactionSimulateAuthorizationParams\nimport com.lithic.api.models.TransactionSimulateAuthorizationResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: TransactionSimulateAuthorizationParams = TransactionSimulateAuthorizationParams.builder()\n .amount(3831L)\n .descriptor("COFFEE SHOP")\n .pan("4111111289144142")\n .build()\n val response: TransactionSimulateAuthorizationResponse = client.transactions().simulateAuthorization(params)\n}',
+ },
+ python: {
+ method: 'transactions.simulate_authorization',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_authorization(\n amount=3831,\n descriptor="COFFEE SHOP",\n pan="4111111289144142",\n merchant_acceptor_city="LOS ANGELES",\n merchant_acceptor_country="USA",\n merchant_acceptor_state="CA",\n)\nprint(response.debugging_request_id)',
+ },
+ ruby: {
+ method: 'transactions.simulate_authorization',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.transactions.simulate_authorization(\n amount: 3831,\n descriptor: "COFFEE SHOP",\n pan: "4111111289144142"\n)\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.transactions.simulateAuthorization',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateAuthorization({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n merchant_acceptor_city: 'LOS ANGELES',\n merchant_acceptor_country: 'USA',\n merchant_acceptor_state: 'CA',\n});\n\nconsole.log(response.debugging_request_id);",
+ },
+ },
},
{
name: 'simulate_clearing',
@@ -2048,6 +6109,196 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response: '{ debugging_request_id?: string; }',
markdown:
"## simulate_clearing\n\n`client.transactions.simulateClearing(token: string, amount?: number): { debugging_request_id?: string; }`\n\n**post** `/v1/simulate/clearing`\n\nClears an existing authorization, either debit or credit. After this event, the transaction transitions from `PENDING` to `SETTLED` status.\n\nIf `amount` is not set, the full amount of the transaction will be cleared. Transactions that have already cleared, either partially or fully, cannot be cleared again using this endpoint.\n\n\n### Parameters\n\n- `token: string`\n The transaction token returned from the /v1/simulate/authorize response.\n\n- `amount?: number`\n Amount (in cents) to clear. Typically this will match the amount in the original authorization, but can be higher or lower. The sign of this amount will automatically match the sign of the original authorization's amount. For example, entering 100 in this field will result in a -100 amount in the transaction, if the original authorization is a credit authorization.\n\nIf `amount` is not set, the full amount of the transaction will be cleared. Transactions that have already cleared, either partially or fully, cannot be cleared again using this endpoint.\n\n\n### Returns\n\n- `{ debugging_request_id?: string; }`\n\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateClearing({ token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac' });\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Transactions.SimulateClearing',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateClearing(context.TODO(), lithic.TransactionSimulateClearingParams{\n\t\tToken: lithic.F("fabd829d-7f7b-4432-a8f2-07ea4889aaac"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/simulate/clearing \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "token": "fabd829d-7f7b-4432-a8f2-07ea4889aaac"\n }\'',
+ },
+ java: {
+ method: 'transactions().simulateClearing',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.TransactionSimulateClearingParams;\nimport com.lithic.api.models.TransactionSimulateClearingResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n TransactionSimulateClearingParams params = TransactionSimulateClearingParams.builder()\n .token("fabd829d-7f7b-4432-a8f2-07ea4889aaac")\n .build();\n TransactionSimulateClearingResponse response = client.transactions().simulateClearing(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'transactions().simulateClearing',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TransactionSimulateClearingParams\nimport com.lithic.api.models.TransactionSimulateClearingResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: TransactionSimulateClearingParams = TransactionSimulateClearingParams.builder()\n .token("fabd829d-7f7b-4432-a8f2-07ea4889aaac")\n .build()\n val response: TransactionSimulateClearingResponse = client.transactions().simulateClearing(params)\n}',
+ },
+ python: {
+ method: 'transactions.simulate_clearing',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_clearing(\n token="fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n amount=0,\n)\nprint(response.debugging_request_id)',
+ },
+ ruby: {
+ method: 'transactions.simulate_clearing',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.transactions.simulate_clearing(token: "fabd829d-7f7b-4432-a8f2-07ea4889aaac")\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.transactions.simulateClearing',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateClearing({\n token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac',\n});\n\nconsole.log(response.debugging_request_id);",
+ },
+ },
+ },
+ {
+ name: 'simulate_return',
+ endpoint: '/v1/simulate/return',
+ httpMethod: 'post',
+ summary: 'Simulate return',
+ description:
+ 'Returns, or refunds, an amount back to a card. Returns simulated via this endpoint clear immediately, without prior authorization, and result in a `SETTLED` transaction status.\n',
+ stainlessPath: '(resource) transactions > (method) simulate_return',
+ qualified: 'client.transactions.simulateReturn',
+ params: ['amount: number;', 'descriptor: string;', 'pan: string;'],
+ response: '{ token?: string; debugging_request_id?: string; }',
+ markdown:
+ "## simulate_return\n\n`client.transactions.simulateReturn(amount: number, descriptor: string, pan: string): { token?: string; debugging_request_id?: string; }`\n\n**post** `/v1/simulate/return`\n\nReturns, or refunds, an amount back to a card. Returns simulated via this endpoint clear immediately, without prior authorization, and result in a `SETTLED` transaction status.\n\n\n### Parameters\n\n- `amount: number`\n Amount (in cents) to authorize.\n\n- `descriptor: string`\n Merchant descriptor.\n\n- `pan: string`\n Sixteen digit card number.\n\n### Returns\n\n- `{ token?: string; debugging_request_id?: string; }`\n\n - `token?: string`\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateReturn({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n});\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Transactions.SimulateReturn',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateReturn(context.TODO(), lithic.TransactionSimulateReturnParams{\n\t\tAmount: lithic.F(int64(3831)),\n\t\tDescriptor: lithic.F("COFFEE SHOP"),\n\t\tPan: lithic.F("4111111289144142"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/simulate/return \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 3831,\n "descriptor": "COFFEE SHOP",\n "pan": "4111111289144142"\n }\'',
+ },
+ java: {
+ method: 'transactions().simulateReturn',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.TransactionSimulateReturnParams;\nimport com.lithic.api.models.TransactionSimulateReturnResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n TransactionSimulateReturnParams params = TransactionSimulateReturnParams.builder()\n .amount(3831L)\n .descriptor("COFFEE SHOP")\n .pan("4111111289144142")\n .build();\n TransactionSimulateReturnResponse response = client.transactions().simulateReturn(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'transactions().simulateReturn',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TransactionSimulateReturnParams\nimport com.lithic.api.models.TransactionSimulateReturnResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: TransactionSimulateReturnParams = TransactionSimulateReturnParams.builder()\n .amount(3831L)\n .descriptor("COFFEE SHOP")\n .pan("4111111289144142")\n .build()\n val response: TransactionSimulateReturnResponse = client.transactions().simulateReturn(params)\n}',
+ },
+ python: {
+ method: 'transactions.simulate_return',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_return(\n amount=3831,\n descriptor="COFFEE SHOP",\n pan="4111111289144142",\n)\nprint(response.debugging_request_id)',
+ },
+ ruby: {
+ method: 'transactions.simulate_return',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.transactions.simulate_return(amount: 3831, descriptor: "COFFEE SHOP", pan: "4111111289144142")\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.transactions.simulateReturn',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateReturn({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n});\n\nconsole.log(response.debugging_request_id);",
+ },
+ },
+ },
+ {
+ name: 'simulate_return_reversal',
+ endpoint: '/v1/simulate/return_reversal',
+ httpMethod: 'post',
+ summary: 'Simulate return reversal',
+ description:
+ 'Reverses a return, i.e. a credit transaction with a `SETTLED` status. Returns can be financial credit authorizations, or credit authorizations that have cleared.\n',
+ stainlessPath: '(resource) transactions > (method) simulate_return_reversal',
+ qualified: 'client.transactions.simulateReturnReversal',
+ params: ['token: string;'],
+ response: '{ debugging_request_id?: string; }',
+ markdown:
+ "## simulate_return_reversal\n\n`client.transactions.simulateReturnReversal(token: string): { debugging_request_id?: string; }`\n\n**post** `/v1/simulate/return_reversal`\n\nReverses a return, i.e. a credit transaction with a `SETTLED` status. Returns can be financial credit authorizations, or credit authorizations that have cleared.\n\n\n### Parameters\n\n- `token: string`\n The transaction token returned from the /v1/simulate/authorize response.\n\n### Returns\n\n- `{ debugging_request_id?: string; }`\n\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateReturnReversal({ token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac' });\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Transactions.SimulateReturnReversal',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateReturnReversal(context.TODO(), lithic.TransactionSimulateReturnReversalParams{\n\t\tToken: lithic.F("fabd829d-7f7b-4432-a8f2-07ea4889aaac"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/simulate/return_reversal \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "token": "fabd829d-7f7b-4432-a8f2-07ea4889aaac"\n }\'',
+ },
+ java: {
+ method: 'transactions().simulateReturnReversal',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.TransactionSimulateReturnReversalParams;\nimport com.lithic.api.models.TransactionSimulateReturnReversalResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n TransactionSimulateReturnReversalParams params = TransactionSimulateReturnReversalParams.builder()\n .token("fabd829d-7f7b-4432-a8f2-07ea4889aaac")\n .build();\n TransactionSimulateReturnReversalResponse response = client.transactions().simulateReturnReversal(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'transactions().simulateReturnReversal',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TransactionSimulateReturnReversalParams\nimport com.lithic.api.models.TransactionSimulateReturnReversalResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: TransactionSimulateReturnReversalParams = TransactionSimulateReturnReversalParams.builder()\n .token("fabd829d-7f7b-4432-a8f2-07ea4889aaac")\n .build()\n val response: TransactionSimulateReturnReversalResponse = client.transactions().simulateReturnReversal(params)\n}',
+ },
+ python: {
+ method: 'transactions.simulate_return_reversal',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_return_reversal(\n token="fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n)\nprint(response.debugging_request_id)',
+ },
+ ruby: {
+ method: 'transactions.simulate_return_reversal',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.transactions.simulate_return_reversal(token: "fabd829d-7f7b-4432-a8f2-07ea4889aaac")\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.transactions.simulateReturnReversal',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateReturnReversal({\n token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac',\n});\n\nconsole.log(response.debugging_request_id);",
+ },
+ },
+ },
+ {
+ name: 'simulate_void',
+ endpoint: '/v1/simulate/void',
+ httpMethod: 'post',
+ summary: 'Simulate void',
+ description:
+ 'Voids a pending authorization. If `amount` is not set, the full amount will be voided. Can be used on partially voided transactions but not partially cleared transactions. _Simulating an authorization expiry on credit authorizations or credit authorization advice is not currently supported but will be added soon._\n',
+ stainlessPath: '(resource) transactions > (method) simulate_void',
+ qualified: 'client.transactions.simulateVoid',
+ params: [
+ 'token: string;',
+ 'amount?: number;',
+ "type?: 'AUTHORIZATION_EXPIRY' | 'AUTHORIZATION_REVERSAL';",
+ ],
+ response: '{ debugging_request_id?: string; }',
+ markdown:
+ "## simulate_void\n\n`client.transactions.simulateVoid(token: string, amount?: number, type?: 'AUTHORIZATION_EXPIRY' | 'AUTHORIZATION_REVERSAL'): { debugging_request_id?: string; }`\n\n**post** `/v1/simulate/void`\n\nVoids a pending authorization. If `amount` is not set, the full amount will be voided. Can be used on partially voided transactions but not partially cleared transactions. _Simulating an authorization expiry on credit authorizations or credit authorization advice is not currently supported but will be added soon._\n\n\n### Parameters\n\n- `token: string`\n The transaction token returned from the /v1/simulate/authorize response.\n\n- `amount?: number`\n Amount (in cents) to void. Typically this will match the amount in the original authorization, but can be less. Applies to authorization reversals only. An authorization expiry will always apply to the full pending amount.\n\n- `type?: 'AUTHORIZATION_EXPIRY' | 'AUTHORIZATION_REVERSAL'`\n Type of event to simulate. Defaults to `AUTHORIZATION_REVERSAL`.\n\n* `AUTHORIZATION_EXPIRY` indicates authorization has expired and been reversed by Lithic.\n* `AUTHORIZATION_REVERSAL` indicates authorization was reversed by the merchant.\n\n### Returns\n\n- `{ debugging_request_id?: string; }`\n\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateVoid({ token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac' });\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Transactions.SimulateVoid',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateVoid(context.TODO(), lithic.TransactionSimulateVoidParams{\n\t\tToken: lithic.F("fabd829d-7f7b-4432-a8f2-07ea4889aaac"),\n\t\tAmount: lithic.F(int64(100)),\n\t\tType: lithic.F(lithic.TransactionSimulateVoidParamsTypeAuthorizationExpiry),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/simulate/void \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "token": "fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n "type": "AUTHORIZATION_EXPIRY"\n }\'',
+ },
+ java: {
+ method: 'transactions().simulateVoid',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.TransactionSimulateVoidParams;\nimport com.lithic.api.models.TransactionSimulateVoidResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n TransactionSimulateVoidParams params = TransactionSimulateVoidParams.builder()\n .token("fabd829d-7f7b-4432-a8f2-07ea4889aaac")\n .build();\n TransactionSimulateVoidResponse response = client.transactions().simulateVoid(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'transactions().simulateVoid',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TransactionSimulateVoidParams\nimport com.lithic.api.models.TransactionSimulateVoidResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: TransactionSimulateVoidParams = TransactionSimulateVoidParams.builder()\n .token("fabd829d-7f7b-4432-a8f2-07ea4889aaac")\n .build()\n val response: TransactionSimulateVoidResponse = client.transactions().simulateVoid(params)\n}',
+ },
+ python: {
+ method: 'transactions.simulate_void',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_void(\n token="fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n amount=100,\n type="AUTHORIZATION_EXPIRY",\n)\nprint(response.debugging_request_id)',
+ },
+ ruby: {
+ method: 'transactions.simulate_void',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.transactions.simulate_void(token: "fabd829d-7f7b-4432-a8f2-07ea4889aaac")\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.transactions.simulateVoid',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateVoid({\n token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac',\n amount: 100,\n type: 'AUTHORIZATION_EXPIRY',\n});\n\nconsole.log(response.debugging_request_id);",
+ },
+ },
},
{
name: 'simulate_credit_authorization',
@@ -2071,6 +6322,33 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response: '{ token?: string; debugging_request_id?: string; }',
markdown:
"## simulate_credit_authorization\n\n`client.transactions.simulateCreditAuthorization(amount: number, descriptor: string, pan: string, mcc?: string, merchant_acceptor_city?: string, merchant_acceptor_country?: string, merchant_acceptor_id?: string, merchant_acceptor_state?: string): { token?: string; debugging_request_id?: string; }`\n\n**post** `/v1/simulate/credit_authorization_advice`\n\nSimulates a credit authorization advice from the card network.\nThis message indicates that the network approved a credit authorization on your behalf.\n\n\n### Parameters\n\n- `amount: number`\n Amount (in cents). Any value entered will be converted into a negative amount in the simulated transaction. For example, entering 100 in this field will appear as a -100 amount in the transaction.\n\n- `descriptor: string`\n Merchant descriptor.\n\n- `pan: string`\n Sixteen digit card number.\n\n- `mcc?: string`\n Merchant category code for the transaction to be simulated. A four-digit number listed in ISO 18245.\nSupported merchant category codes can be found [here](https://docs.lithic.com/docs/transactions#merchant-category-codes-mccs).\n\n\n- `merchant_acceptor_city?: string`\n Merchant acceptor city\n\n- `merchant_acceptor_country?: string`\n Merchant acceptor country code (ISO 3166-1 alpha-3)\n\n- `merchant_acceptor_id?: string`\n Unique identifier to identify the payment card acceptor.\n\n- `merchant_acceptor_state?: string`\n Merchant acceptor state/province (ISO 3166-2 subdivision code)\n\n### Returns\n\n- `{ token?: string; debugging_request_id?: string; }`\n\n - `token?: string`\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateCreditAuthorization({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n});\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Transactions.SimulateCreditAuthorization',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateCreditAuthorization(context.TODO(), lithic.TransactionSimulateCreditAuthorizationParams{\n\t\tAmount: lithic.F(int64(3831)),\n\t\tDescriptor: lithic.F("COFFEE SHOP"),\n\t\tPan: lithic.F("4111111289144142"),\n\t\tMerchantAcceptorCity: lithic.F("SEATTLE"),\n\t\tMerchantAcceptorCountry: lithic.F("USA"),\n\t\tMerchantAcceptorID: lithic.F("XRKGDPOWEWQRRWU"),\n\t\tMerchantAcceptorState: lithic.F("WA"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ },
+ java: {
+ method: 'transactions().simulateCreditAuthorization',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.TransactionSimulateCreditAuthorizationParams;\nimport com.lithic.api.models.TransactionSimulateCreditAuthorizationResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n TransactionSimulateCreditAuthorizationParams params = TransactionSimulateCreditAuthorizationParams.builder()\n .amount(3831L)\n .descriptor("COFFEE SHOP")\n .pan("4111111289144142")\n .build();\n TransactionSimulateCreditAuthorizationResponse response = client.transactions().simulateCreditAuthorization(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'transactions().simulateCreditAuthorization',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TransactionSimulateCreditAuthorizationParams\nimport com.lithic.api.models.TransactionSimulateCreditAuthorizationResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: TransactionSimulateCreditAuthorizationParams = TransactionSimulateCreditAuthorizationParams.builder()\n .amount(3831L)\n .descriptor("COFFEE SHOP")\n .pan("4111111289144142")\n .build()\n val response: TransactionSimulateCreditAuthorizationResponse = client.transactions().simulateCreditAuthorization(params)\n}',
+ },
+ python: {
+ method: 'transactions.simulate_credit_authorization',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_credit_authorization(\n amount=3831,\n descriptor="COFFEE SHOP",\n pan="4111111289144142",\n merchant_acceptor_city="SEATTLE",\n merchant_acceptor_country="USA",\n merchant_acceptor_id="XRKGDPOWEWQRRWU",\n merchant_acceptor_state="WA",\n)\nprint(response.debugging_request_id)',
+ },
+ typescript: {
+ method: 'client.transactions.simulateCreditAuthorization',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateCreditAuthorization({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n merchant_acceptor_city: 'SEATTLE',\n merchant_acceptor_country: 'USA',\n merchant_acceptor_id: 'XRKGDPOWEWQRRWU',\n merchant_acceptor_state: 'WA',\n});\n\nconsole.log(response.debugging_request_id);",
+ },
+ },
},
{
name: 'simulate_credit_authorization_advice',
@@ -2094,52 +6372,140 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response: '{ token?: string; debugging_request_id?: string; }',
markdown:
"## simulate_credit_authorization_advice\n\n`client.transactions.simulateCreditAuthorizationAdvice(amount: number, descriptor: string, pan: string, mcc?: string, merchant_acceptor_city?: string, merchant_acceptor_country?: string, merchant_acceptor_id?: string, merchant_acceptor_state?: string): { token?: string; debugging_request_id?: string; }`\n\n**post** `/v1/simulate/credit_authorization_advice`\n\nSimulates a credit authorization advice from the card network.\nThis message indicates that the network approved a credit authorization on your behalf.\n\n\n### Parameters\n\n- `amount: number`\n Amount (in cents). Any value entered will be converted into a negative amount in the simulated transaction. For example, entering 100 in this field will appear as a -100 amount in the transaction.\n\n- `descriptor: string`\n Merchant descriptor.\n\n- `pan: string`\n Sixteen digit card number.\n\n- `mcc?: string`\n Merchant category code for the transaction to be simulated. A four-digit number listed in ISO 18245.\nSupported merchant category codes can be found [here](https://docs.lithic.com/docs/transactions#merchant-category-codes-mccs).\n\n\n- `merchant_acceptor_city?: string`\n Merchant acceptor city\n\n- `merchant_acceptor_country?: string`\n Merchant acceptor country code (ISO 3166-1 alpha-3)\n\n- `merchant_acceptor_id?: string`\n Unique identifier to identify the payment card acceptor.\n\n- `merchant_acceptor_state?: string`\n Merchant acceptor state/province (ISO 3166-2 subdivision code)\n\n### Returns\n\n- `{ token?: string; debugging_request_id?: string; }`\n\n - `token?: string`\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateCreditAuthorizationAdvice({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n});\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Transactions.SimulateCreditAuthorizationAdvice',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateCreditAuthorizationAdvice(context.TODO(), lithic.TransactionSimulateCreditAuthorizationAdviceParams{\n\t\tAmount: lithic.F(int64(3831)),\n\t\tDescriptor: lithic.F("COFFEE SHOP"),\n\t\tPan: lithic.F("4111111289144142"),\n\t\tMerchantAcceptorCity: lithic.F("SEATTLE"),\n\t\tMerchantAcceptorCountry: lithic.F("USA"),\n\t\tMerchantAcceptorID: lithic.F("XRKGDPOWEWQRRWU"),\n\t\tMerchantAcceptorState: lithic.F("WA"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/simulate/credit_authorization_advice \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 3831,\n "descriptor": "COFFEE SHOP",\n "pan": "4111111289144142",\n "mcc": "5812",\n "merchant_acceptor_city": "SEATTLE",\n "merchant_acceptor_country": "USA",\n "merchant_acceptor_id": "XRKGDPOWEWQRRWU",\n "merchant_acceptor_state": "WA"\n }\'',
+ },
+ java: {
+ method: 'transactions().simulateCreditAuthorizationAdvice',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.TransactionSimulateCreditAuthorizationAdviceParams;\nimport com.lithic.api.models.TransactionSimulateCreditAuthorizationAdviceResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n TransactionSimulateCreditAuthorizationAdviceParams params = TransactionSimulateCreditAuthorizationAdviceParams.builder()\n .amount(3831L)\n .descriptor("COFFEE SHOP")\n .pan("4111111289144142")\n .build();\n TransactionSimulateCreditAuthorizationAdviceResponse response = client.transactions().simulateCreditAuthorizationAdvice(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'transactions().simulateCreditAuthorizationAdvice',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TransactionSimulateCreditAuthorizationAdviceParams\nimport com.lithic.api.models.TransactionSimulateCreditAuthorizationAdviceResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: TransactionSimulateCreditAuthorizationAdviceParams = TransactionSimulateCreditAuthorizationAdviceParams.builder()\n .amount(3831L)\n .descriptor("COFFEE SHOP")\n .pan("4111111289144142")\n .build()\n val response: TransactionSimulateCreditAuthorizationAdviceResponse = client.transactions().simulateCreditAuthorizationAdvice(params)\n}',
+ },
+ python: {
+ method: 'transactions.simulate_credit_authorization_advice',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_credit_authorization_advice(\n amount=3831,\n descriptor="COFFEE SHOP",\n pan="4111111289144142",\n merchant_acceptor_city="SEATTLE",\n merchant_acceptor_country="USA",\n merchant_acceptor_id="XRKGDPOWEWQRRWU",\n merchant_acceptor_state="WA",\n)\nprint(response.debugging_request_id)',
+ },
+ ruby: {
+ method: 'transactions.simulate_credit_authorization_advice',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.transactions.simulate_credit_authorization_advice(\n amount: 3831,\n descriptor: "COFFEE SHOP",\n pan: "4111111289144142"\n)\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.transactions.simulateCreditAuthorizationAdvice',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateCreditAuthorizationAdvice({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n merchant_acceptor_city: 'SEATTLE',\n merchant_acceptor_country: 'USA',\n merchant_acceptor_id: 'XRKGDPOWEWQRRWU',\n merchant_acceptor_state: 'WA',\n});\n\nconsole.log(response.debugging_request_id);",
+ },
+ },
},
{
- name: 'simulate_return',
- endpoint: '/v1/simulate/return',
+ name: 'simulate_authorization_advice',
+ endpoint: '/v1/simulate/authorization_advice',
httpMethod: 'post',
- summary: 'Simulate return',
+ summary: 'Simulate authorization advice',
description:
- 'Returns, or refunds, an amount back to a card. Returns simulated via this endpoint clear immediately, without prior authorization, and result in a `SETTLED` transaction status.\n',
- stainlessPath: '(resource) transactions > (method) simulate_return',
- qualified: 'client.transactions.simulateReturn',
- params: ['amount: number;', 'descriptor: string;', 'pan: string;'],
+ 'Simulates an authorization advice from the card network as if it came from a merchant acquirer. An authorization advice changes the pending amount of the transaction.\n',
+ stainlessPath: '(resource) transactions > (method) simulate_authorization_advice',
+ qualified: 'client.transactions.simulateAuthorizationAdvice',
+ params: ['token: string;', 'amount: number;'],
response: '{ token?: string; debugging_request_id?: string; }',
markdown:
- "## simulate_return\n\n`client.transactions.simulateReturn(amount: number, descriptor: string, pan: string): { token?: string; debugging_request_id?: string; }`\n\n**post** `/v1/simulate/return`\n\nReturns, or refunds, an amount back to a card. Returns simulated via this endpoint clear immediately, without prior authorization, and result in a `SETTLED` transaction status.\n\n\n### Parameters\n\n- `amount: number`\n Amount (in cents) to authorize.\n\n- `descriptor: string`\n Merchant descriptor.\n\n- `pan: string`\n Sixteen digit card number.\n\n### Returns\n\n- `{ token?: string; debugging_request_id?: string; }`\n\n - `token?: string`\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateReturn({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n});\n\nconsole.log(response);\n```",
- },
- {
- name: 'simulate_return_reversal',
- endpoint: '/v1/simulate/return_reversal',
- httpMethod: 'post',
- summary: 'Simulate return reversal',
- description:
- 'Reverses a return, i.e. a credit transaction with a `SETTLED` status. Returns can be financial credit authorizations, or credit authorizations that have cleared.\n',
- stainlessPath: '(resource) transactions > (method) simulate_return_reversal',
- qualified: 'client.transactions.simulateReturnReversal',
- params: ['token: string;'],
- response: '{ debugging_request_id?: string; }',
- markdown:
- "## simulate_return_reversal\n\n`client.transactions.simulateReturnReversal(token: string): { debugging_request_id?: string; }`\n\n**post** `/v1/simulate/return_reversal`\n\nReverses a return, i.e. a credit transaction with a `SETTLED` status. Returns can be financial credit authorizations, or credit authorizations that have cleared.\n\n\n### Parameters\n\n- `token: string`\n The transaction token returned from the /v1/simulate/authorize response.\n\n### Returns\n\n- `{ debugging_request_id?: string; }`\n\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateReturnReversal({ token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac' });\n\nconsole.log(response);\n```",
+ "## simulate_authorization_advice\n\n`client.transactions.simulateAuthorizationAdvice(token: string, amount: number): { token?: string; debugging_request_id?: string; }`\n\n**post** `/v1/simulate/authorization_advice`\n\nSimulates an authorization advice from the card network as if it came from a merchant acquirer. An authorization advice changes the pending amount of the transaction.\n\n\n### Parameters\n\n- `token: string`\n The transaction token returned from the /v1/simulate/authorize. response.\n\n- `amount: number`\n Amount (in cents) to authorize. This amount will override the transaction's amount that was originally set by /v1/simulate/authorize.\n\n### Returns\n\n- `{ token?: string; debugging_request_id?: string; }`\n\n - `token?: string`\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateAuthorizationAdvice({ token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac', amount: 3831 });\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Transactions.SimulateAuthorizationAdvice',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateAuthorizationAdvice(context.TODO(), lithic.TransactionSimulateAuthorizationAdviceParams{\n\t\tToken: lithic.F("fabd829d-7f7b-4432-a8f2-07ea4889aaac"),\n\t\tAmount: lithic.F(int64(3831)),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/simulate/authorization_advice \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "token": "fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n "amount": 3831\n }\'',
+ },
+ java: {
+ method: 'transactions().simulateAuthorizationAdvice',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.TransactionSimulateAuthorizationAdviceParams;\nimport com.lithic.api.models.TransactionSimulateAuthorizationAdviceResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n TransactionSimulateAuthorizationAdviceParams params = TransactionSimulateAuthorizationAdviceParams.builder()\n .token("fabd829d-7f7b-4432-a8f2-07ea4889aaac")\n .amount(3831L)\n .build();\n TransactionSimulateAuthorizationAdviceResponse response = client.transactions().simulateAuthorizationAdvice(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'transactions().simulateAuthorizationAdvice',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TransactionSimulateAuthorizationAdviceParams\nimport com.lithic.api.models.TransactionSimulateAuthorizationAdviceResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: TransactionSimulateAuthorizationAdviceParams = TransactionSimulateAuthorizationAdviceParams.builder()\n .token("fabd829d-7f7b-4432-a8f2-07ea4889aaac")\n .amount(3831L)\n .build()\n val response: TransactionSimulateAuthorizationAdviceResponse = client.transactions().simulateAuthorizationAdvice(params)\n}',
+ },
+ python: {
+ method: 'transactions.simulate_authorization_advice',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_authorization_advice(\n token="fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n amount=3831,\n)\nprint(response.debugging_request_id)',
+ },
+ ruby: {
+ method: 'transactions.simulate_authorization_advice',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.transactions.simulate_authorization_advice(\n token: "fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n amount: 3831\n)\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.transactions.simulateAuthorizationAdvice',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateAuthorizationAdvice({\n token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac',\n amount: 3831,\n});\n\nconsole.log(response.debugging_request_id);",
+ },
+ },
},
{
- name: 'simulate_void',
- endpoint: '/v1/simulate/void',
+ name: 'expire_authorization',
+ endpoint: '/v1/transactions/{transaction_token}/expire_authorization',
httpMethod: 'post',
- summary: 'Simulate void',
- description:
- 'Voids a pending authorization. If `amount` is not set, the full amount will be voided. Can be used on partially voided transactions but not partially cleared transactions. _Simulating an authorization expiry on credit authorizations or credit authorization advice is not currently supported but will be added soon._\n',
- stainlessPath: '(resource) transactions > (method) simulate_void',
- qualified: 'client.transactions.simulateVoid',
- params: [
- 'token: string;',
- 'amount?: number;',
- "type?: 'AUTHORIZATION_EXPIRY' | 'AUTHORIZATION_REVERSAL';",
- ],
- response: '{ debugging_request_id?: string; }',
+ summary: 'Expire an authorization',
+ description: 'Expire authorization',
+ stainlessPath: '(resource) transactions > (method) expire_authorization',
+ qualified: 'client.transactions.expireAuthorization',
+ params: ['transaction_token: string;'],
markdown:
- "## simulate_void\n\n`client.transactions.simulateVoid(token: string, amount?: number, type?: 'AUTHORIZATION_EXPIRY' | 'AUTHORIZATION_REVERSAL'): { debugging_request_id?: string; }`\n\n**post** `/v1/simulate/void`\n\nVoids a pending authorization. If `amount` is not set, the full amount will be voided. Can be used on partially voided transactions but not partially cleared transactions. _Simulating an authorization expiry on credit authorizations or credit authorization advice is not currently supported but will be added soon._\n\n\n### Parameters\n\n- `token: string`\n The transaction token returned from the /v1/simulate/authorize response.\n\n- `amount?: number`\n Amount (in cents) to void. Typically this will match the amount in the original authorization, but can be less. Applies to authorization reversals only. An authorization expiry will always apply to the full pending amount.\n\n- `type?: 'AUTHORIZATION_EXPIRY' | 'AUTHORIZATION_REVERSAL'`\n Type of event to simulate. Defaults to `AUTHORIZATION_REVERSAL`.\n\n* `AUTHORIZATION_EXPIRY` indicates authorization has expired and been reversed by Lithic.\n* `AUTHORIZATION_REVERSAL` indicates authorization was reversed by the merchant.\n\n### Returns\n\n- `{ debugging_request_id?: string; }`\n\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateVoid({ token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac' });\n\nconsole.log(response);\n```",
+ "## expire_authorization\n\n`client.transactions.expireAuthorization(transaction_token: string): void`\n\n**post** `/v1/transactions/{transaction_token}/expire_authorization`\n\nExpire authorization\n\n### Parameters\n\n- `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.transactions.expireAuthorization('00000000-0000-0000-0000-000000000000')\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Transactions.ExpireAuthorization',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Transactions.ExpireAuthorization(context.TODO(), "00000000-0000-0000-0000-000000000000")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/transactions/$TRANSACTION_TOKEN/expire_authorization \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'transactions().expireAuthorization',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.TransactionExpireAuthorizationParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n client.transactions().expireAuthorization("00000000-0000-0000-0000-000000000000");\n }\n}',
+ },
+ kotlin: {
+ method: 'transactions().expireAuthorization',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TransactionExpireAuthorizationParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.transactions().expireAuthorization("00000000-0000-0000-0000-000000000000")\n}',
+ },
+ python: {
+ method: 'transactions.expire_authorization',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.transactions.expire_authorization(\n "00000000-0000-0000-0000-000000000000",\n)',
+ },
+ ruby: {
+ method: 'transactions.expire_authorization',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.transactions.expire_authorization("00000000-0000-0000-0000-000000000000")\n\nputs(result)',
+ },
+ typescript: {
+ method: 'client.transactions.expireAuthorization',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.transactions.expireAuthorization('00000000-0000-0000-0000-000000000000');",
+ },
+ },
},
{
name: 'retrieve',
@@ -2155,6 +6521,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'{ data: { token: string; common: object; event_token: string; fleet: object[]; transaction_token: string; }[]; }',
markdown:
"## retrieve\n\n`client.transactions.enhancedCommercialData.retrieve(transaction_token: string): { data: enhanced_data[]; }`\n\n**get** `/v1/transactions/{transaction_token}/enhanced_commercial_data`\n\nGet all L2/L3 enhanced commercial data associated with a transaction. Not available in sandbox.\n\n### Parameters\n\n- `transaction_token: string`\n\n### Returns\n\n- `{ data: { token: string; common: object; event_token: string; fleet: object[]; transaction_token: string; }[]; }`\n\n - `data: { token: string; common: { line_items: { amount?: string; description?: string; product_code?: string; quantity?: string; }[]; tax: { amount?: number; exempt?: 'TAX_INCLUDED' | 'TAX_NOT_INCLUDED' | 'NOT_SUPPORTED'; merchant_tax_id?: string; }; customer_reference_number?: string; merchant_reference_number?: string; order_date?: string; }; event_token: string; fleet: { amount_totals: { discount?: number; gross_sale?: number; net_sale?: number; }; fuel: { quantity?: string; type?: string; unit_of_measure?: 'GALLONS' | 'LITERS' | 'POUNDS' | 'KILOGRAMS' | 'IMPERIAL_GALLONS' | 'NOT_APPLICABLE' | 'UNKNOWN'; unit_price?: number; }; driver_number?: string; odometer?: number; service_type?: 'UNKNOWN' | 'UNDEFINED' | 'SELF_SERVICE' | 'FULL_SERVICE' | 'NON_FUEL_ONLY'; vehicle_number?: string; }[]; transaction_token: string; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst enhancedCommercialData = await client.transactions.enhancedCommercialData.retrieve('00000000-0000-0000-0000-000000000000');\n\nconsole.log(enhancedCommercialData);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Transactions.EnhancedCommercialData.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tenhancedCommercialData, err := client.Transactions.EnhancedCommercialData.Get(context.TODO(), "00000000-0000-0000-0000-000000000000")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", enhancedCommercialData.Data)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/transactions/$TRANSACTION_TOKEN/enhanced_commercial_data \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'transactions().enhancedCommercialData().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.EnhancedCommercialDataRetrieveResponse;\nimport com.lithic.api.models.TransactionEnhancedCommercialDataRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n EnhancedCommercialDataRetrieveResponse enhancedCommercialData = client.transactions().enhancedCommercialData().retrieve("00000000-0000-0000-0000-000000000000");\n }\n}',
+ },
+ kotlin: {
+ method: 'transactions().enhancedCommercialData().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EnhancedCommercialDataRetrieveResponse\nimport com.lithic.api.models.TransactionEnhancedCommercialDataRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val enhancedCommercialData: EnhancedCommercialDataRetrieveResponse = client.transactions().enhancedCommercialData().retrieve("00000000-0000-0000-0000-000000000000")\n}',
+ },
+ python: {
+ method: 'transactions.enhanced_commercial_data.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nenhanced_commercial_data = client.transactions.enhanced_commercial_data.retrieve(\n "00000000-0000-0000-0000-000000000000",\n)\nprint(enhanced_commercial_data.data)',
+ },
+ ruby: {
+ method: 'transactions.enhanced_commercial_data.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nenhanced_commercial_data = lithic.transactions.enhanced_commercial_data.retrieve("00000000-0000-0000-0000-000000000000")\n\nputs(enhanced_commercial_data)',
+ },
+ typescript: {
+ method: 'client.transactions.enhancedCommercialData.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst enhancedCommercialData = await client.transactions.enhancedCommercialData.retrieve(\n '00000000-0000-0000-0000-000000000000',\n);\n\nconsole.log(enhancedCommercialData.data);",
+ },
+ },
},
{
name: 'retrieve',
@@ -2170,6 +6572,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; common: { line_items: { amount?: string; description?: string; product_code?: string; quantity?: string; }[]; tax: { amount?: number; exempt?: 'TAX_INCLUDED' | 'TAX_NOT_INCLUDED' | 'NOT_SUPPORTED'; merchant_tax_id?: string; }; customer_reference_number?: string; merchant_reference_number?: string; order_date?: string; }; event_token: string; fleet: { amount_totals: { discount?: number; gross_sale?: number; net_sale?: number; }; fuel: { quantity?: string; type?: string; unit_of_measure?: 'GALLONS' | 'LITERS' | 'POUNDS' | 'KILOGRAMS' | 'IMPERIAL_GALLONS' | 'NOT_APPLICABLE' | 'UNKNOWN'; unit_price?: number; }; driver_number?: string; odometer?: number; service_type?: 'UNKNOWN' | 'UNDEFINED' | 'SELF_SERVICE' | 'FULL_SERVICE' | 'NON_FUEL_ONLY'; vehicle_number?: string; }[]; transaction_token: string; }",
markdown:
"## retrieve\n\n`client.transactions.events.enhancedCommercialData.retrieve(event_token: string): { token: string; common: object; event_token: string; fleet: object[]; transaction_token: string; }`\n\n**get** `/v1/transactions/events/{event_token}/enhanced_commercial_data`\n\nGet L2/L3 enhanced commercial data associated with a transaction event. Not available in sandbox.\n\n### Parameters\n\n- `event_token: string`\n\n### Returns\n\n- `{ token: string; common: { line_items: { amount?: string; description?: string; product_code?: string; quantity?: string; }[]; tax: { amount?: number; exempt?: 'TAX_INCLUDED' | 'TAX_NOT_INCLUDED' | 'NOT_SUPPORTED'; merchant_tax_id?: string; }; customer_reference_number?: string; merchant_reference_number?: string; order_date?: string; }; event_token: string; fleet: { amount_totals: { discount?: number; gross_sale?: number; net_sale?: number; }; fuel: { quantity?: string; type?: string; unit_of_measure?: 'GALLONS' | 'LITERS' | 'POUNDS' | 'KILOGRAMS' | 'IMPERIAL_GALLONS' | 'NOT_APPLICABLE' | 'UNKNOWN'; unit_price?: number; }; driver_number?: string; odometer?: number; service_type?: 'UNKNOWN' | 'UNDEFINED' | 'SELF_SERVICE' | 'FULL_SERVICE' | 'NON_FUEL_ONLY'; vehicle_number?: string; }[]; transaction_token: string; }`\n\n - `token: string`\n - `common: { line_items: { amount?: string; description?: string; product_code?: string; quantity?: string; }[]; tax: { amount?: number; exempt?: 'TAX_INCLUDED' | 'TAX_NOT_INCLUDED' | 'NOT_SUPPORTED'; merchant_tax_id?: string; }; customer_reference_number?: string; merchant_reference_number?: string; order_date?: string; }`\n - `event_token: string`\n - `fleet: { amount_totals: { discount?: number; gross_sale?: number; net_sale?: number; }; fuel: { quantity?: string; type?: string; unit_of_measure?: 'GALLONS' | 'LITERS' | 'POUNDS' | 'KILOGRAMS' | 'IMPERIAL_GALLONS' | 'NOT_APPLICABLE' | 'UNKNOWN'; unit_price?: number; }; driver_number?: string; odometer?: number; service_type?: 'UNKNOWN' | 'UNDEFINED' | 'SELF_SERVICE' | 'FULL_SERVICE' | 'NON_FUEL_ONLY'; vehicle_number?: string; }[]`\n - `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst enhancedData = await client.transactions.events.enhancedCommercialData.retrieve('00000000-0000-0000-0000-000000000000');\n\nconsole.log(enhancedData);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Transactions.Events.EnhancedCommercialData.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tenhancedData, err := client.Transactions.Events.EnhancedCommercialData.Get(context.TODO(), "00000000-0000-0000-0000-000000000000")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", enhancedData.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/transactions/events/$EVENT_TOKEN/enhanced_commercial_data \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'transactions().events().enhancedCommercialData().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.EnhancedData;\nimport com.lithic.api.models.TransactionEventEnhancedCommercialDataRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n EnhancedData enhancedData = client.transactions().events().enhancedCommercialData().retrieve("00000000-0000-0000-0000-000000000000");\n }\n}',
+ },
+ kotlin: {
+ method: 'transactions().events().enhancedCommercialData().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EnhancedData\nimport com.lithic.api.models.TransactionEventEnhancedCommercialDataRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val enhancedData: EnhancedData = client.transactions().events().enhancedCommercialData().retrieve("00000000-0000-0000-0000-000000000000")\n}',
+ },
+ python: {
+ method: 'transactions.events.enhanced_commercial_data.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nenhanced_data = client.transactions.events.enhanced_commercial_data.retrieve(\n "00000000-0000-0000-0000-000000000000",\n)\nprint(enhanced_data.token)',
+ },
+ ruby: {
+ method: 'transactions.events.enhanced_commercial_data.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nenhanced_data = lithic.transactions.events.enhanced_commercial_data.retrieve("00000000-0000-0000-0000-000000000000")\n\nputs(enhanced_data)',
+ },
+ typescript: {
+ method: 'client.transactions.events.enhancedCommercialData.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst enhancedData = await client.transactions.events.enhancedCommercialData.retrieve(\n '00000000-0000-0000-0000-000000000000',\n);\n\nconsole.log(enhancedData.token);",
+ },
+ },
},
{
name: 'create',
@@ -2186,6 +6624,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response: '{ enrolled?: boolean; }',
markdown:
"## create\n\n`client.responderEndpoints.create(type?: 'AUTH_STREAM_ACCESS' | 'THREE_DS_DECISIONING' | 'TOKENIZATION_DECISIONING', url?: string): { enrolled?: boolean; }`\n\n**post** `/v1/responder_endpoints`\n\nEnroll a responder endpoint\n\n### Parameters\n\n- `type?: 'AUTH_STREAM_ACCESS' | 'THREE_DS_DECISIONING' | 'TOKENIZATION_DECISIONING'`\n The type of the endpoint.\n\n- `url?: string`\n The URL for the responder endpoint (must be http(s)).\n\n### Returns\n\n- `{ enrolled?: boolean; }`\n\n - `enrolled?: boolean`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst responderEndpoint = await client.responderEndpoints.create();\n\nconsole.log(responderEndpoint);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ResponderEndpoints.New',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponderEndpoint, err := client.ResponderEndpoints.New(context.TODO(), lithic.ResponderEndpointNewParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", responderEndpoint.Enrolled)\n}\n',
+ },
+ http: {
+ example:
+ "curl https://api.lithic.com/v1/responder_endpoints \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ },
+ java: {
+ method: 'responderEndpoints().create',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ResponderEndpointCreateParams;\nimport com.lithic.api.models.ResponderEndpointCreateResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ResponderEndpointCreateResponse responderEndpoint = client.responderEndpoints().create();\n }\n}',
+ },
+ kotlin: {
+ method: 'responderEndpoints().create',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ResponderEndpointCreateParams\nimport com.lithic.api.models.ResponderEndpointCreateResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val responderEndpoint: ResponderEndpointCreateResponse = client.responderEndpoints().create()\n}',
+ },
+ python: {
+ method: 'responder_endpoints.create',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponder_endpoint = client.responder_endpoints.create()\nprint(responder_endpoint.enrolled)',
+ },
+ ruby: {
+ method: 'responder_endpoints.create',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponder_endpoint = lithic.responder_endpoints.create\n\nputs(responder_endpoint)',
+ },
+ typescript: {
+ method: 'client.responderEndpoints.create',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst responderEndpoint = await client.responderEndpoints.create();\n\nconsole.log(responderEndpoint.enrolled);",
+ },
+ },
},
{
name: 'delete',
@@ -2198,6 +6672,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
params: ["type: 'AUTH_STREAM_ACCESS' | 'THREE_DS_DECISIONING' | 'TOKENIZATION_DECISIONING';"],
markdown:
"## delete\n\n`client.responderEndpoints.delete(type: 'AUTH_STREAM_ACCESS' | 'THREE_DS_DECISIONING' | 'TOKENIZATION_DECISIONING'): void`\n\n**delete** `/v1/responder_endpoints`\n\nDisenroll a responder endpoint\n\n### Parameters\n\n- `type: 'AUTH_STREAM_ACCESS' | 'THREE_DS_DECISIONING' | 'TOKENIZATION_DECISIONING'`\n The type of the endpoint.\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.responderEndpoints.delete({ type: 'AUTH_STREAM_ACCESS' })\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ResponderEndpoints.Delete',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.ResponderEndpoints.Delete(context.TODO(), lithic.ResponderEndpointDeleteParams{\n\t\tType: lithic.F(lithic.ResponderEndpointDeleteParamsTypeAuthStreamAccess),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/responder_endpoints \\\n -X DELETE \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'responderEndpoints().delete',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ResponderEndpointDeleteParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ResponderEndpointDeleteParams params = ResponderEndpointDeleteParams.builder()\n .type(ResponderEndpointDeleteParams.Type.AUTH_STREAM_ACCESS)\n .build();\n client.responderEndpoints().delete(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'responderEndpoints().delete',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ResponderEndpointDeleteParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ResponderEndpointDeleteParams = ResponderEndpointDeleteParams.builder()\n .type(ResponderEndpointDeleteParams.Type.AUTH_STREAM_ACCESS)\n .build()\n client.responderEndpoints().delete(params)\n}',
+ },
+ python: {
+ method: 'responder_endpoints.delete',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.responder_endpoints.delete(\n type="AUTH_STREAM_ACCESS",\n)',
+ },
+ ruby: {
+ method: 'responder_endpoints.delete',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.responder_endpoints.delete(type: :AUTH_STREAM_ACCESS)\n\nputs(result)',
+ },
+ typescript: {
+ method: 'client.responderEndpoints.delete',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.responderEndpoints.delete({ type: 'AUTH_STREAM_ACCESS' });",
+ },
+ },
},
{
name: 'check_status',
@@ -2211,6 +6721,102 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response: '{ enrolled?: boolean; url?: string; }',
markdown:
"## check_status\n\n`client.responderEndpoints.checkStatus(type: 'AUTH_STREAM_ACCESS' | 'THREE_DS_DECISIONING' | 'TOKENIZATION_DECISIONING'): { enrolled?: boolean; url?: string; }`\n\n**get** `/v1/responder_endpoints`\n\nCheck the status of a responder endpoint\n\n### Parameters\n\n- `type: 'AUTH_STREAM_ACCESS' | 'THREE_DS_DECISIONING' | 'TOKENIZATION_DECISIONING'`\n The type of the endpoint.\n\n### Returns\n\n- `{ enrolled?: boolean; url?: string; }`\n\n - `enrolled?: boolean`\n - `url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst responderEndpointStatus = await client.responderEndpoints.checkStatus({ type: 'AUTH_STREAM_ACCESS' });\n\nconsole.log(responderEndpointStatus);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ResponderEndpoints.CheckStatus',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponderEndpointStatus, err := client.ResponderEndpoints.CheckStatus(context.TODO(), lithic.ResponderEndpointCheckStatusParams{\n\t\tType: lithic.F(lithic.ResponderEndpointCheckStatusParamsTypeAuthStreamAccess),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", responderEndpointStatus.Enrolled)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/responder_endpoints \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'responderEndpoints().checkStatus',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ResponderEndpointCheckStatusParams;\nimport com.lithic.api.models.ResponderEndpointStatus;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ResponderEndpointCheckStatusParams params = ResponderEndpointCheckStatusParams.builder()\n .type(ResponderEndpointCheckStatusParams.Type.AUTH_STREAM_ACCESS)\n .build();\n ResponderEndpointStatus responderEndpointStatus = client.responderEndpoints().checkStatus(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'responderEndpoints().checkStatus',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ResponderEndpointCheckStatusParams\nimport com.lithic.api.models.ResponderEndpointStatus\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ResponderEndpointCheckStatusParams = ResponderEndpointCheckStatusParams.builder()\n .type(ResponderEndpointCheckStatusParams.Type.AUTH_STREAM_ACCESS)\n .build()\n val responderEndpointStatus: ResponderEndpointStatus = client.responderEndpoints().checkStatus(params)\n}',
+ },
+ python: {
+ method: 'responder_endpoints.check_status',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponder_endpoint_status = client.responder_endpoints.check_status(\n type="AUTH_STREAM_ACCESS",\n)\nprint(responder_endpoint_status.enrolled)',
+ },
+ ruby: {
+ method: 'responder_endpoints.check_status',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponder_endpoint_status = lithic.responder_endpoints.check_status(type: :AUTH_STREAM_ACCESS)\n\nputs(responder_endpoint_status)',
+ },
+ typescript: {
+ method: 'client.responderEndpoints.checkStatus',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst responderEndpointStatus = await client.responderEndpoints.checkStatus({\n type: 'AUTH_STREAM_ACCESS',\n});\n\nconsole.log(responderEndpointStatus.enrolled);",
+ },
+ },
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/external_bank_accounts',
+ httpMethod: 'get',
+ summary: 'List external bank accounts',
+ description: 'List all the external bank accounts for the provided search criteria.',
+ stainlessPath: '(resource) external_bank_accounts > (method) list',
+ qualified: 'client.externalBankAccounts.list',
+ params: [
+ 'account_token?: string;',
+ "account_types?: 'CHECKING' | 'SAVINGS'[];",
+ 'countries?: string[];',
+ 'ending_before?: string;',
+ "owner_types?: 'INDIVIDUAL' | 'BUSINESS'[];",
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ "states?: 'ENABLED' | 'CLOSED' | 'PAUSED'[];",
+ "verification_states?: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'[];",
+ ],
+ response:
+ "{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }",
+ markdown:
+ "## list\n\n`client.externalBankAccounts.list(account_token?: string, account_types?: 'CHECKING' | 'SAVINGS'[], countries?: string[], ending_before?: string, owner_types?: 'INDIVIDUAL' | 'BUSINESS'[], page_size?: number, starting_after?: string, states?: 'ENABLED' | 'CLOSED' | 'PAUSED'[], verification_states?: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'[]): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**get** `/v1/external_bank_accounts`\n\nList all the external bank accounts for the provided search criteria.\n\n### Parameters\n\n- `account_token?: string`\n\n- `account_types?: 'CHECKING' | 'SAVINGS'[]`\n\n- `countries?: string[]`\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `owner_types?: 'INDIVIDUAL' | 'BUSINESS'[]`\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `states?: 'ENABLED' | 'CLOSED' | 'PAUSED'[]`\n\n- `verification_states?: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'[]`\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'BUSINESS' | 'INDIVIDUAL'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const externalBankAccountListResponse of client.externalBankAccounts.list()) {\n console.log(externalBankAccountListResponse);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ExternalBankAccounts.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.ExternalBankAccounts.List(context.TODO(), lithic.ExternalBankAccountListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/external_bank_accounts \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'externalBankAccounts().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ExternalBankAccountListPage;\nimport com.lithic.api.models.ExternalBankAccountListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ExternalBankAccountListPage page = client.externalBankAccounts().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'externalBankAccounts().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalBankAccountListPage\nimport com.lithic.api.models.ExternalBankAccountListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: ExternalBankAccountListPage = client.externalBankAccounts().list()\n}',
+ },
+ python: {
+ method: 'external_bank_accounts.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.external_bank_accounts.list()\npage = page.data[0]\nprint(page.company_id)',
+ },
+ ruby: {
+ method: 'external_bank_accounts.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.external_bank_accounts.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.externalBankAccounts.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const externalBankAccountListResponse of client.externalBankAccounts.list()) {\n console.log(externalBankAccountListResponse.company_id);\n}",
+ },
+ },
},
{
name: 'create',
@@ -2225,6 +6831,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
],
response:
"{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }",
+ perLanguage: {
+ go: {
+ method: 'client.ExternalBankAccounts.New',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalBankAccount, err := client.ExternalBankAccounts.New(context.TODO(), lithic.ExternalBankAccountNewParams{\n\t\tBody: lithic.ExternalBankAccountNewParamsBodyBankVerifiedCreateBankAccountAPIRequest{\n\t\t\tAccountNumber: lithic.F("13719713158835300"),\n\t\t\tCountry: lithic.F("USA"),\n\t\t\tCurrency: lithic.F("USD"),\n\t\t\tFinancialAccountToken: lithic.F("dabadb3b-700c-41e3-8801-d5dfc84ebea0"),\n\t\t\tOwner: lithic.F("John Doe"),\n\t\t\tOwnerType: lithic.F(lithic.OwnerTypeBusiness),\n\t\t\tRoutingNumber: lithic.F("011103093"),\n\t\t\tType: lithic.F(lithic.ExternalBankAccountNewParamsBodyBankVerifiedCreateBankAccountAPIRequestTypeChecking),\n\t\t\tVerificationMethod: lithic.F(lithic.VerificationMethodMicroDeposit),\n\t\t},\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalBankAccount.CompanyID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/external_bank_accounts \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "account_number": "12345678901234567",\n "country": "USD",\n "currency": "USD",\n "financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "owner": "owner",\n "owner_type": "INDIVIDUAL",\n "routing_number": "123456789",\n "type": "CHECKING",\n "verification_method": "MANUAL"\n }\'',
+ },
+ java: {
+ method: 'externalBankAccounts().create',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ExternalBankAccountCreateParams;\nimport com.lithic.api.models.ExternalBankAccountCreateResponse;\nimport com.lithic.api.models.OwnerType;\nimport com.lithic.api.models.VerificationMethod;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ExternalBankAccountCreateParams.Body.BankVerifiedCreateBankAccountApiRequest params = ExternalBankAccountCreateParams.Body.BankVerifiedCreateBankAccountApiRequest.builder()\n .accountNumber("13719713158835300")\n .country("USA")\n .currency("USD")\n .financialAccountToken("dabadb3b-700c-41e3-8801-d5dfc84ebea0")\n .owner("John Doe")\n .ownerType(OwnerType.BUSINESS)\n .routingNumber("011103093")\n .type(ExternalBankAccountCreateParams.Body.BankVerifiedCreateBankAccountApiRequest.AccountType.CHECKING)\n .verificationMethod(VerificationMethod.MICRO_DEPOSIT)\n .build();\n ExternalBankAccountCreateResponse externalBankAccount = client.externalBankAccounts().create(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'externalBankAccounts().create',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalBankAccountCreateParams\nimport com.lithic.api.models.ExternalBankAccountCreateResponse\nimport com.lithic.api.models.OwnerType\nimport com.lithic.api.models.VerificationMethod\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ExternalBankAccountCreateParams.Body.BankVerifiedCreateBankAccountApiRequest = ExternalBankAccountCreateParams.Body.BankVerifiedCreateBankAccountApiRequest.builder()\n .accountNumber("13719713158835300")\n .country("USA")\n .currency("USD")\n .financialAccountToken("dabadb3b-700c-41e3-8801-d5dfc84ebea0")\n .owner("John Doe")\n .ownerType(OwnerType.BUSINESS)\n .routingNumber("011103093")\n .type(ExternalBankAccountCreateParams.Body.BankVerifiedCreateBankAccountApiRequest.AccountType.CHECKING)\n .verificationMethod(VerificationMethod.MICRO_DEPOSIT)\n .build()\n val externalBankAccount: ExternalBankAccountCreateResponse = client.externalBankAccounts().create(params)\n}',
+ },
+ python: {
+ method: 'external_bank_accounts.create',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_bank_account = client.external_bank_accounts.create(\n account_number="13719713158835300",\n country="USA",\n currency="USD",\n financial_account_token="dabadb3b-700c-41e3-8801-d5dfc84ebea0",\n owner="John Doe",\n owner_type="BUSINESS",\n routing_number="011103093",\n type="CHECKING",\n verification_method="MICRO_DEPOSIT",\n address={\n "address1": "5 Broad Street",\n "city": "New York",\n "country": "USA",\n "postal_code": "10001",\n "state": "NY",\n },\n name="John Does Checking",\n)\nprint(external_bank_account.company_id)',
+ },
+ ruby: {
+ method: 'external_bank_accounts.create',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_bank_account = lithic.external_bank_accounts.create(\n body: {\n account_number: "13719713158835300",\n country: "USA",\n currency: "USD",\n financial_account_token: "dabadb3b-700c-41e3-8801-d5dfc84ebea0",\n owner: "John Doe",\n owner_type: :BUSINESS,\n routing_number: "011103093",\n type: :CHECKING,\n verification_method: :MICRO_DEPOSIT\n }\n)\n\nputs(external_bank_account)',
+ },
+ typescript: {
+ method: 'client.externalBankAccounts.create',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalBankAccount = await client.externalBankAccounts.create({\n account_number: '13719713158835300',\n country: 'USA',\n currency: 'USD',\n financial_account_token: 'dabadb3b-700c-41e3-8801-d5dfc84ebea0',\n owner: 'John Doe',\n owner_type: 'BUSINESS',\n routing_number: '011103093',\n type: 'CHECKING',\n verification_method: 'MICRO_DEPOSIT',\n address: {\n address1: '5 Broad Street',\n city: 'New York',\n country: 'USA',\n postal_code: '10001',\n state: 'NY',\n },\n name: 'John Does Checking',\n});\n\nconsole.log(externalBankAccount.company_id);",
+ },
+ },
},
{
name: 'retrieve',
@@ -2239,6 +6881,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }",
markdown:
"## retrieve\n\n`client.externalBankAccounts.retrieve(external_bank_account_token: string): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**get** `/v1/external_bank_accounts/{external_bank_account_token}`\n\nGet the external bank account by token.\n\n### Parameters\n\n- `external_bank_account_token: string`\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'BUSINESS' | 'INDIVIDUAL'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalBankAccount = await client.externalBankAccounts.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(externalBankAccount);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ExternalBankAccounts.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalBankAccount, err := client.ExternalBankAccounts.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalBankAccount.CompanyID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/external_bank_accounts/$EXTERNAL_BANK_ACCOUNT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'externalBankAccounts().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ExternalBankAccountRetrieveParams;\nimport com.lithic.api.models.ExternalBankAccountRetrieveResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ExternalBankAccountRetrieveResponse externalBankAccount = client.externalBankAccounts().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'externalBankAccounts().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalBankAccountRetrieveParams\nimport com.lithic.api.models.ExternalBankAccountRetrieveResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val externalBankAccount: ExternalBankAccountRetrieveResponse = client.externalBankAccounts().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'external_bank_accounts.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_bank_account = client.external_bank_accounts.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(external_bank_account.company_id)',
+ },
+ ruby: {
+ method: 'external_bank_accounts.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_bank_account = lithic.external_bank_accounts.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(external_bank_account)',
+ },
+ typescript: {
+ method: 'client.externalBankAccounts.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalBankAccount = await client.externalBankAccounts.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(externalBankAccount.company_id);",
+ },
+ },
},
{
name: 'update',
@@ -2264,30 +6942,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }",
markdown:
"## update\n\n`client.externalBankAccounts.update(external_bank_account_token: string, address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }, company_id?: string, dob?: string, doing_business_as?: string, name?: string, owner?: string, owner_type?: 'INDIVIDUAL' | 'BUSINESS', type?: 'CHECKING' | 'SAVINGS', user_defined_id?: string): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**patch** `/v1/external_bank_accounts/{external_bank_account_token}`\n\nUpdate the external bank account by token.\n\n### Parameters\n\n- `external_bank_account_token: string`\n\n- `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n Address\n - `address1: string`\n - `city: string`\n - `country: string`\n - `postal_code: string`\n - `state: string`\n - `address2?: string`\n\n- `company_id?: string`\n Optional field that helps identify bank accounts in receipts\n\n- `dob?: string`\n Date of Birth of the Individual that owns the external bank account\n\n- `doing_business_as?: string`\n Doing Business As\n\n- `name?: string`\n The nickname for this External Bank Account\n\n- `owner?: string`\n Legal Name of the business or individual who owns the external account. This will appear in statements\n\n- `owner_type?: 'INDIVIDUAL' | 'BUSINESS'`\n Owner Type\n\n- `type?: 'CHECKING' | 'SAVINGS'`\n\n- `user_defined_id?: string`\n User Defined ID\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'BUSINESS' | 'INDIVIDUAL'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalBankAccount = await client.externalBankAccounts.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(externalBankAccount);\n```",
- },
- {
- name: 'list',
- endpoint: '/v1/external_bank_accounts',
- httpMethod: 'get',
- summary: 'List external bank accounts',
- description: 'List all the external bank accounts for the provided search criteria.',
- stainlessPath: '(resource) external_bank_accounts > (method) list',
- qualified: 'client.externalBankAccounts.list',
- params: [
- 'account_token?: string;',
- "account_types?: 'CHECKING' | 'SAVINGS'[];",
- 'countries?: string[];',
- 'ending_before?: string;',
- "owner_types?: 'INDIVIDUAL' | 'BUSINESS'[];",
- 'page_size?: number;',
- 'starting_after?: string;',
- "states?: 'ENABLED' | 'CLOSED' | 'PAUSED'[];",
- "verification_states?: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'[];",
- ],
- response:
- "{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }",
- markdown:
- "## list\n\n`client.externalBankAccounts.list(account_token?: string, account_types?: 'CHECKING' | 'SAVINGS'[], countries?: string[], ending_before?: string, owner_types?: 'INDIVIDUAL' | 'BUSINESS'[], page_size?: number, starting_after?: string, states?: 'ENABLED' | 'CLOSED' | 'PAUSED'[], verification_states?: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'[]): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**get** `/v1/external_bank_accounts`\n\nList all the external bank accounts for the provided search criteria.\n\n### Parameters\n\n- `account_token?: string`\n\n- `account_types?: 'CHECKING' | 'SAVINGS'[]`\n\n- `countries?: string[]`\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `owner_types?: 'INDIVIDUAL' | 'BUSINESS'[]`\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `states?: 'ENABLED' | 'CLOSED' | 'PAUSED'[]`\n\n- `verification_states?: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'[]`\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'BUSINESS' | 'INDIVIDUAL'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const externalBankAccountListResponse of client.externalBankAccounts.list()) {\n console.log(externalBankAccountListResponse);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ExternalBankAccounts.Update',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalBankAccount, err := client.ExternalBankAccounts.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalBankAccountUpdateParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalBankAccount.CompanyID)\n}\n',
+ },
+ http: {
+ example:
+ "curl https://api.lithic.com/v1/external_bank_accounts/$EXTERNAL_BANK_ACCOUNT_TOKEN \\\n -X PATCH \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ },
+ java: {
+ method: 'externalBankAccounts().update',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ExternalBankAccountUpdateParams;\nimport com.lithic.api.models.ExternalBankAccountUpdateResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ExternalBankAccountUpdateResponse externalBankAccount = client.externalBankAccounts().update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'externalBankAccounts().update',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalBankAccountUpdateParams\nimport com.lithic.api.models.ExternalBankAccountUpdateResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val externalBankAccount: ExternalBankAccountUpdateResponse = client.externalBankAccounts().update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'external_bank_accounts.update',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_bank_account = client.external_bank_accounts.update(\n external_bank_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(external_bank_account.company_id)',
+ },
+ ruby: {
+ method: 'external_bank_accounts.update',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_bank_account = lithic.external_bank_accounts.update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(external_bank_account)',
+ },
+ typescript: {
+ method: 'client.externalBankAccounts.update',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalBankAccount = await client.externalBankAccounts.update(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(externalBankAccount.company_id);",
+ },
+ },
},
{
name: 'retry_micro_deposits',
@@ -2302,6 +6992,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }",
markdown:
"## retry_micro_deposits\n\n`client.externalBankAccounts.retryMicroDeposits(external_bank_account_token: string, financial_account_token?: string): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**post** `/v1/external_bank_accounts/{external_bank_account_token}/retry_micro_deposits`\n\nRetry external bank account micro deposit verification.\n\n### Parameters\n\n- `external_bank_account_token: string`\n\n- `financial_account_token?: string`\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'BUSINESS' | 'INDIVIDUAL'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.externalBankAccounts.retryMicroDeposits('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ExternalBankAccounts.RetryMicroDeposits',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.ExternalBankAccounts.RetryMicroDeposits(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalBankAccountRetryMicroDepositsParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.CompanyID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/external_bank_accounts/$EXTERNAL_BANK_ACCOUNT_TOKEN/retry_micro_deposits \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'externalBankAccounts().retryMicroDeposits',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ExternalBankAccountRetryMicroDepositsParams;\nimport com.lithic.api.models.ExternalBankAccountRetryMicroDepositsResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ExternalBankAccountRetryMicroDepositsResponse response = client.externalBankAccounts().retryMicroDeposits("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'externalBankAccounts().retryMicroDeposits',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalBankAccountRetryMicroDepositsParams\nimport com.lithic.api.models.ExternalBankAccountRetryMicroDepositsResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: ExternalBankAccountRetryMicroDepositsResponse = client.externalBankAccounts().retryMicroDeposits("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'external_bank_accounts.retry_micro_deposits',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.external_bank_accounts.retry_micro_deposits(\n external_bank_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.company_id)',
+ },
+ ruby: {
+ method: 'external_bank_accounts.retry_micro_deposits',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.external_bank_accounts.retry_micro_deposits("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.externalBankAccounts.retryMicroDeposits',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.externalBankAccounts.retryMicroDeposits(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(response.company_id);",
+ },
+ },
},
{
name: 'retry_prenote',
@@ -2316,6 +7042,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'INDIVIDUAL' | 'BUSINESS'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED' | 'UNVERIFIED'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }",
markdown:
"## retry_prenote\n\n`client.externalBankAccounts.retryPrenote(external_bank_account_token: string, financial_account_token?: string): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: owner_type; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: verification_method; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**post** `/v1/external_bank_accounts/{external_bank_account_token}/retry_prenote`\n\nRetry external bank account prenote verification.\n\n### Parameters\n\n- `external_bank_account_token: string`\n\n- `financial_account_token?: string`\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'INDIVIDUAL' | 'BUSINESS'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED' | 'UNVERIFIED'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'INDIVIDUAL' | 'BUSINESS'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED' | 'UNVERIFIED'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalBankAccount = await client.externalBankAccounts.retryPrenote('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(externalBankAccount);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ExternalBankAccounts.RetryPrenote',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalBankAccount, err := client.ExternalBankAccounts.RetryPrenote(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalBankAccountRetryPrenoteParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalBankAccount.CompanyID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/external_bank_accounts/$EXTERNAL_BANK_ACCOUNT_TOKEN/retry_prenote \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'externalBankAccounts().retryPrenote',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ExternalBankAccount;\nimport com.lithic.api.models.ExternalBankAccountRetryPrenoteParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ExternalBankAccount externalBankAccount = client.externalBankAccounts().retryPrenote("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'externalBankAccounts().retryPrenote',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalBankAccount\nimport com.lithic.api.models.ExternalBankAccountRetryPrenoteParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val externalBankAccount: ExternalBankAccount = client.externalBankAccounts().retryPrenote("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'external_bank_accounts.retry_prenote',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_bank_account = client.external_bank_accounts.retry_prenote(\n external_bank_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(external_bank_account.company_id)',
+ },
+ ruby: {
+ method: 'external_bank_accounts.retry_prenote',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_bank_account = lithic.external_bank_accounts.retry_prenote("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(external_bank_account)',
+ },
+ typescript: {
+ method: 'client.externalBankAccounts.retryPrenote',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalBankAccount = await client.externalBankAccounts.retryPrenote(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(externalBankAccount.company_id);",
+ },
+ },
},
{
name: 'unpause',
@@ -2330,6 +7092,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'INDIVIDUAL' | 'BUSINESS'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED' | 'UNVERIFIED'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }",
markdown:
"## unpause\n\n`client.externalBankAccounts.unpause(external_bank_account_token: string): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: owner_type; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: verification_method; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**post** `/v1/external_bank_accounts/{external_bank_account_token}/unpause`\n\nUnpause an external bank account\n\n\n### Parameters\n\n- `external_bank_account_token: string`\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'INDIVIDUAL' | 'BUSINESS'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED' | 'UNVERIFIED'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'INDIVIDUAL' | 'BUSINESS'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED' | 'UNVERIFIED'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalBankAccount = await client.externalBankAccounts.unpause('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(externalBankAccount);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ExternalBankAccounts.Unpause',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalBankAccount, err := client.ExternalBankAccounts.Unpause(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalBankAccount.CompanyID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/external_bank_accounts/$EXTERNAL_BANK_ACCOUNT_TOKEN/unpause \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'externalBankAccounts().unpause',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ExternalBankAccount;\nimport com.lithic.api.models.ExternalBankAccountUnpauseParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ExternalBankAccount externalBankAccount = client.externalBankAccounts().unpause("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'externalBankAccounts().unpause',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalBankAccount\nimport com.lithic.api.models.ExternalBankAccountUnpauseParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val externalBankAccount: ExternalBankAccount = client.externalBankAccounts().unpause("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'external_bank_accounts.unpause',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_bank_account = client.external_bank_accounts.unpause(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(external_bank_account.company_id)',
+ },
+ ruby: {
+ method: 'external_bank_accounts.unpause',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_bank_account = lithic.external_bank_accounts.unpause("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(external_bank_account)',
+ },
+ typescript: {
+ method: 'client.externalBankAccounts.unpause',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalBankAccount = await client.externalBankAccounts.unpause(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(externalBankAccount.company_id);",
+ },
+ },
},
{
name: 'create',
@@ -2344,6 +7142,103 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }",
markdown:
"## create\n\n`client.externalBankAccounts.microDeposits.create(external_bank_account_token: string, micro_deposits: number[]): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**post** `/v1/external_bank_accounts/{external_bank_account_token}/micro_deposits`\n\nVerify the external bank account by providing the micro deposit amounts.\n\n### Parameters\n\n- `external_bank_account_token: string`\n\n- `micro_deposits: number[]`\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'BUSINESS' | 'INDIVIDUAL'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst microDeposit = await client.externalBankAccounts.microDeposits.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { micro_deposits: [0, 0] });\n\nconsole.log(microDeposit);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ExternalBankAccounts.MicroDeposits.New',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tmicroDeposit, err := client.ExternalBankAccounts.MicroDeposits.New(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalBankAccountMicroDepositNewParams{\n\t\t\tMicroDeposits: lithic.F([]int64{int64(0), int64(0)}),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", microDeposit.CompanyID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/external_bank_accounts/$EXTERNAL_BANK_ACCOUNT_TOKEN/micro_deposits \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "micro_deposits": [\n 0,\n 0\n ]\n }\'',
+ },
+ java: {
+ method: 'externalBankAccounts().microDeposits().create',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ExternalBankAccountMicroDepositCreateParams;\nimport com.lithic.api.models.MicroDepositCreateResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ExternalBankAccountMicroDepositCreateParams params = ExternalBankAccountMicroDepositCreateParams.builder()\n .externalBankAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .addMicroDeposit(0L)\n .addMicroDeposit(0L)\n .build();\n MicroDepositCreateResponse microDeposit = client.externalBankAccounts().microDeposits().create(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'externalBankAccounts().microDeposits().create',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalBankAccountMicroDepositCreateParams\nimport com.lithic.api.models.MicroDepositCreateResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ExternalBankAccountMicroDepositCreateParams = ExternalBankAccountMicroDepositCreateParams.builder()\n .externalBankAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .addMicroDeposit(0L)\n .addMicroDeposit(0L)\n .build()\n val microDeposit: MicroDepositCreateResponse = client.externalBankAccounts().microDeposits().create(params)\n}',
+ },
+ python: {
+ method: 'external_bank_accounts.micro_deposits.create',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nmicro_deposit = client.external_bank_accounts.micro_deposits.create(\n external_bank_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n micro_deposits=[0, 0],\n)\nprint(micro_deposit.company_id)',
+ },
+ ruby: {
+ method: 'external_bank_accounts.micro_deposits.create',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nmicro_deposit = lithic.external_bank_accounts.micro_deposits.create(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n micro_deposits: [0, 0]\n)\n\nputs(micro_deposit)',
+ },
+ typescript: {
+ method: 'client.externalBankAccounts.microDeposits.create',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst microDeposit = await client.externalBankAccounts.microDeposits.create(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { micro_deposits: [0, 0] },\n);\n\nconsole.log(microDeposit.company_id);",
+ },
+ },
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/payments',
+ httpMethod: 'get',
+ summary: 'List payments',
+ description: 'List all the payments for the provided search criteria.',
+ stainlessPath: '(resource) payments > (method) list',
+ qualified: 'client.payments.list',
+ params: [
+ 'account_token?: string;',
+ 'begin?: string;',
+ 'business_account_token?: string;',
+ "category?: 'ACH';",
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'financial_account_token?: string;',
+ 'page_size?: number;',
+ "result?: 'APPROVED' | 'DECLINED';",
+ 'starting_after?: string;',
+ "status?: 'DECLINED' | 'PENDING' | 'RETURNED' | 'SETTLED';",
+ ],
+ response:
+ "{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: object[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: object | object; pending_amount: number; related_account_tokens: object; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }",
+ markdown:
+ "## list\n\n`client.payments.list(account_token?: string, begin?: string, business_account_token?: string, category?: 'ACH', end?: string, ending_before?: string, financial_account_token?: string, page_size?: number, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'DECLINED' | 'PENDING' | 'RETURNED' | 'SETTLED'): { token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: object[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: object | object; pending_amount: number; related_account_tokens: object; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n\n**get** `/v1/payments`\n\nList all the payments for the provided search criteria.\n\n### Parameters\n\n- `account_token?: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `business_account_token?: string`\n\n- `category?: 'ACH'`\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `financial_account_token?: string`\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `result?: 'APPROVED' | 'DECLINED'`\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'DECLINED' | 'PENDING' | 'RETURNED' | 'SETTLED'`\n\n### Returns\n\n- `{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: object; debtor?: object; message_id?: string; remittance_information?: string; }; pending_amount: number; related_account_tokens: { account_token: string; business_account_token: string; }; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n Payment transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `descriptor: string`\n - `direction: 'CREDIT' | 'DEBIT'`\n - `events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]`\n - `family: 'PAYMENT'`\n - `financial_account_token: string`\n - `method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'`\n - `method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: { account_number?: string; agent_id?: string; agent_name?: string; name?: string; }; debtor?: { account_number?: string; agent_id?: string; agent_name?: string; name?: string; }; message_id?: string; remittance_information?: string; }`\n - `pending_amount: number`\n - `related_account_tokens: { account_token: string; business_account_token: string; }`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `currency?: string`\n - `expected_release_date?: string`\n - `external_bank_account_token?: string`\n - `type?: string`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const payment of client.payments.list()) {\n console.log(payment);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Payments.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Payments.List(context.TODO(), lithic.PaymentListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example: 'curl https://api.lithic.com/v1/payments \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'payments().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.PaymentListPage;\nimport com.lithic.api.models.PaymentListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n PaymentListPage page = client.payments().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'payments().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.PaymentListPage\nimport com.lithic.api.models.PaymentListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: PaymentListPage = client.payments().list()\n}',
+ },
+ python: {
+ method: 'payments.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.payments.list()\npage = page.data[0]\nprint(page.user_defined_id)',
+ },
+ ruby: {
+ method: 'payments.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.payments.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.payments.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const payment of client.payments.list()) {\n console.log(payment.user_defined_id);\n}",
+ },
+ },
},
{
name: 'create',
@@ -2369,6 +7264,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: object[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: object | object; pending_amount: number; related_account_tokens: object; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }",
markdown:
"## create\n\n`client.payments.create(amount: number, external_bank_account_token: string, financial_account_token: string, method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY', method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB'; ach_hold_period?: number; addenda?: string; override_company_name?: string; }, type: 'COLLECTION' | 'PAYMENT', token?: string, hold?: { token: string; }, memo?: string, user_defined_id?: string): object`\n\n**post** `/v1/payments`\n\nInitiates a payment between a financial account and an external bank account.\n\n### Parameters\n\n- `amount: number`\n\n- `external_bank_account_token: string`\n\n- `financial_account_token: string`\n\n- `method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY'`\n\n- `method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB'; ach_hold_period?: number; addenda?: string; override_company_name?: string; }`\n - `sec_code: 'CCD' | 'PPD' | 'WEB'`\n - `ach_hold_period?: number`\n Number of days to hold the ACH payment\n - `addenda?: string`\n - `override_company_name?: string`\n Value to override the configured company name with. Can only be used if allowed to override\n\n- `type: 'COLLECTION' | 'PAYMENT'`\n\n- `token?: string`\n Customer-provided token that will serve as an idempotency token. This token will become the transaction token.\n\n- `hold?: { token: string; }`\n Optional hold to settle when this payment is initiated.\n - `token: string`\n Token of the hold to settle when this payment is initiated.\n\n- `memo?: string`\n\n- `user_defined_id?: string`\n\n### Returns\n\n- `{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: wire_party_details; debtor?: wire_party_details; message_id?: string; remittance_information?: string; }; pending_amount: number; related_account_tokens: { account_token: string; business_account_token: string; }; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n Payment transaction\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst payment = await client.payments.create({\n amount: 1,\n external_bank_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n method: 'ACH_NEXT_DAY',\n method_attributes: { sec_code: 'CCD' },\n type: 'COLLECTION',\n});\n\nconsole.log(payment);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Payments.New',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpayment, err := client.Payments.New(context.TODO(), lithic.PaymentNewParams{\n\t\tAmount: lithic.F(int64(1)),\n\t\tExternalBankAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tFinancialAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tMethod: lithic.F(lithic.PaymentNewParamsMethodACHNextDay),\n\t\tMethodAttributes: lithic.F(lithic.PaymentNewParamsMethodAttributes{\n\t\t\tSecCode: lithic.F(lithic.PaymentNewParamsMethodAttributesSecCodeCcd),\n\t\t}),\n\t\tType: lithic.F(lithic.PaymentNewParamsTypeCollection),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", payment)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/payments \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 1,\n "external_bank_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "method": "ACH_NEXT_DAY",\n "method_attributes": {\n "sec_code": "CCD"\n },\n "type": "COLLECTION"\n }\'',
+ },
+ java: {
+ method: 'payments().create',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.PaymentCreateParams;\nimport com.lithic.api.models.PaymentCreateResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n PaymentCreateParams params = PaymentCreateParams.builder()\n .amount(1L)\n .externalBankAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .method(PaymentCreateParams.Method.ACH_NEXT_DAY)\n .methodAttributes(PaymentCreateParams.PaymentMethodRequestAttributes.builder()\n .secCode(PaymentCreateParams.PaymentMethodRequestAttributes.SecCode.CCD)\n .build())\n .type(PaymentCreateParams.Type.COLLECTION)\n .build();\n PaymentCreateResponse payment = client.payments().create(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'payments().create',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.PaymentCreateParams\nimport com.lithic.api.models.PaymentCreateResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: PaymentCreateParams = PaymentCreateParams.builder()\n .amount(1L)\n .externalBankAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .method(PaymentCreateParams.Method.ACH_NEXT_DAY)\n .methodAttributes(PaymentCreateParams.PaymentMethodRequestAttributes.builder()\n .secCode(PaymentCreateParams.PaymentMethodRequestAttributes.SecCode.CCD)\n .build())\n .type(PaymentCreateParams.Type.COLLECTION)\n .build()\n val payment: PaymentCreateResponse = client.payments().create(params)\n}',
+ },
+ python: {
+ method: 'payments.create',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npayment = client.payments.create(\n amount=1,\n external_bank_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n method="ACH_NEXT_DAY",\n method_attributes={\n "sec_code": "CCD"\n },\n type="COLLECTION",\n)\nprint(payment)',
+ },
+ ruby: {
+ method: 'payments.create',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npayment = lithic.payments.create(\n amount: 1,\n external_bank_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n method_: :ACH_NEXT_DAY,\n method_attributes: {sec_code: :CCD},\n type: :COLLECTION\n)\n\nputs(payment)',
+ },
+ typescript: {
+ method: 'client.payments.create',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst payment = await client.payments.create({\n amount: 1,\n external_bank_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n method: 'ACH_NEXT_DAY',\n method_attributes: { sec_code: 'CCD' },\n type: 'COLLECTION',\n});\n\nconsole.log(payment);",
+ },
+ },
},
{
name: 'retrieve',
@@ -2383,32 +7314,142 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: object[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: object | object; pending_amount: number; related_account_tokens: object; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }",
markdown:
"## retrieve\n\n`client.payments.retrieve(payment_token: string): { token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: object[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: object | object; pending_amount: number; related_account_tokens: object; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n\n**get** `/v1/payments/{payment_token}`\n\nGet the payment by token.\n\n### Parameters\n\n- `payment_token: string`\n\n### Returns\n\n- `{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: object; debtor?: object; message_id?: string; remittance_information?: string; }; pending_amount: number; related_account_tokens: { account_token: string; business_account_token: string; }; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n Payment transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `descriptor: string`\n - `direction: 'CREDIT' | 'DEBIT'`\n - `events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]`\n - `family: 'PAYMENT'`\n - `financial_account_token: string`\n - `method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'`\n - `method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: { account_number?: string; agent_id?: string; agent_name?: string; name?: string; }; debtor?: { account_number?: string; agent_id?: string; agent_name?: string; name?: string; }; message_id?: string; remittance_information?: string; }`\n - `pending_amount: number`\n - `related_account_tokens: { account_token: string; business_account_token: string; }`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `currency?: string`\n - `expected_release_date?: string`\n - `external_bank_account_token?: string`\n - `type?: string`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst payment = await client.payments.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(payment);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Payments.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpayment, err := client.Payments.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", payment.UserDefinedID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/payments/$PAYMENT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'payments().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Payment;\nimport com.lithic.api.models.PaymentRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n Payment payment = client.payments().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'payments().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Payment\nimport com.lithic.api.models.PaymentRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val payment: Payment = client.payments().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'payments.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npayment = client.payments.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(payment.user_defined_id)',
+ },
+ ruby: {
+ method: 'payments.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npayment = lithic.payments.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(payment)',
+ },
+ typescript: {
+ method: 'client.payments.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst payment = await client.payments.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(payment.user_defined_id);",
+ },
+ },
},
{
- name: 'list',
- endpoint: '/v1/payments',
- httpMethod: 'get',
- summary: 'List payments',
- description: 'List all the payments for the provided search criteria.',
- stainlessPath: '(resource) payments > (method) list',
- qualified: 'client.payments.list',
- params: [
- 'account_token?: string;',
- 'begin?: string;',
- 'business_account_token?: string;',
- "category?: 'ACH';",
- 'end?: string;',
- 'ending_before?: string;',
- 'financial_account_token?: string;',
- 'page_size?: number;',
- "result?: 'APPROVED' | 'DECLINED';",
- 'starting_after?: string;',
- "status?: 'DECLINED' | 'PENDING' | 'RETURNED' | 'SETTLED';",
- ],
+ name: 'simulate_release',
+ endpoint: '/v1/simulate/payments/release',
+ httpMethod: 'post',
+ summary: 'Simulate release payment',
+ description: 'Simulates a release of a Payment.',
+ stainlessPath: '(resource) payments > (method) simulate_release',
+ qualified: 'client.payments.simulateRelease',
+ params: ['payment_token: string;'],
response:
- "{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: object[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: object | object; pending_amount: number; related_account_tokens: object; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }",
+ "{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }",
markdown:
- "## list\n\n`client.payments.list(account_token?: string, begin?: string, business_account_token?: string, category?: 'ACH', end?: string, ending_before?: string, financial_account_token?: string, page_size?: number, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'DECLINED' | 'PENDING' | 'RETURNED' | 'SETTLED'): { token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: object[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: object | object; pending_amount: number; related_account_tokens: object; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n\n**get** `/v1/payments`\n\nList all the payments for the provided search criteria.\n\n### Parameters\n\n- `account_token?: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `business_account_token?: string`\n\n- `category?: 'ACH'`\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `financial_account_token?: string`\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `result?: 'APPROVED' | 'DECLINED'`\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'DECLINED' | 'PENDING' | 'RETURNED' | 'SETTLED'`\n\n### Returns\n\n- `{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: object; debtor?: object; message_id?: string; remittance_information?: string; }; pending_amount: number; related_account_tokens: { account_token: string; business_account_token: string; }; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n Payment transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `descriptor: string`\n - `direction: 'CREDIT' | 'DEBIT'`\n - `events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]`\n - `family: 'PAYMENT'`\n - `financial_account_token: string`\n - `method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'`\n - `method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: { account_number?: string; agent_id?: string; agent_name?: string; name?: string; }; debtor?: { account_number?: string; agent_id?: string; agent_name?: string; name?: string; }; message_id?: string; remittance_information?: string; }`\n - `pending_amount: number`\n - `related_account_tokens: { account_token: string; business_account_token: string; }`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `currency?: string`\n - `expected_release_date?: string`\n - `external_bank_account_token?: string`\n - `type?: string`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const payment of client.payments.list()) {\n console.log(payment);\n}\n```",
+ "## simulate_release\n\n`client.payments.simulateRelease(payment_token: string): { debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n**post** `/v1/simulate/payments/release`\n\nSimulates a release of a Payment.\n\n### Parameters\n\n- `payment_token: string`\n Payment Token\n\n### Returns\n\n- `{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n - `debugging_request_id: string`\n - `result: 'APPROVED' | 'DECLINED'`\n - `transaction_event_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.payments.simulateRelease({ payment_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Payments.SimulateRelease',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Payments.SimulateRelease(context.TODO(), lithic.PaymentSimulateReleaseParams{\n\t\tPaymentToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/simulate/payments/release \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "payment_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n }\'',
+ },
+ java: {
+ method: 'payments().simulateRelease',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.PaymentSimulateReleaseParams;\nimport com.lithic.api.models.PaymentSimulateReleaseResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n PaymentSimulateReleaseParams params = PaymentSimulateReleaseParams.builder()\n .paymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build();\n PaymentSimulateReleaseResponse response = client.payments().simulateRelease(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'payments().simulateRelease',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.PaymentSimulateReleaseParams\nimport com.lithic.api.models.PaymentSimulateReleaseResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: PaymentSimulateReleaseParams = PaymentSimulateReleaseParams.builder()\n .paymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val response: PaymentSimulateReleaseResponse = client.payments().simulateRelease(params)\n}',
+ },
+ python: {
+ method: 'payments.simulate_release',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.payments.simulate_release(\n payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.debugging_request_id)',
+ },
+ ruby: {
+ method: 'payments.simulate_release',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.payments.simulate_release(payment_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.payments.simulateRelease',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.payments.simulateRelease({\n payment_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(response.debugging_request_id);",
+ },
+ },
+ },
+ {
+ name: 'simulate_return',
+ endpoint: '/v1/simulate/payments/return',
+ httpMethod: 'post',
+ summary: 'Simulate return payment',
+ description: 'Simulates a return of a Payment.',
+ stainlessPath: '(resource) payments > (method) simulate_return',
+ qualified: 'client.payments.simulateReturn',
+ params: ['payment_token: string;', 'return_reason_code?: string;'],
+ response:
+ "{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }",
+ markdown:
+ "## simulate_return\n\n`client.payments.simulateReturn(payment_token: string, return_reason_code?: string): { debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n**post** `/v1/simulate/payments/return`\n\nSimulates a return of a Payment.\n\n### Parameters\n\n- `payment_token: string`\n Payment Token\n\n- `return_reason_code?: string`\n Return Reason Code\n\n### Returns\n\n- `{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n - `debugging_request_id: string`\n - `result: 'APPROVED' | 'DECLINED'`\n - `transaction_event_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.payments.simulateReturn({ payment_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Payments.SimulateReturn',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Payments.SimulateReturn(context.TODO(), lithic.PaymentSimulateReturnParams{\n\t\tPaymentToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/simulate/payments/return \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "payment_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "return_reason_code": "R12"\n }\'',
+ },
+ java: {
+ method: 'payments().simulateReturn',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.PaymentSimulateReturnParams;\nimport com.lithic.api.models.PaymentSimulateReturnResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n PaymentSimulateReturnParams params = PaymentSimulateReturnParams.builder()\n .paymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build();\n PaymentSimulateReturnResponse response = client.payments().simulateReturn(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'payments().simulateReturn',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.PaymentSimulateReturnParams\nimport com.lithic.api.models.PaymentSimulateReturnResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: PaymentSimulateReturnParams = PaymentSimulateReturnParams.builder()\n .paymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val response: PaymentSimulateReturnResponse = client.payments().simulateReturn(params)\n}',
+ },
+ python: {
+ method: 'payments.simulate_return',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.payments.simulate_return(\n payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.debugging_request_id)',
+ },
+ ruby: {
+ method: 'payments.simulate_return',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.payments.simulate_return(payment_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.payments.simulateReturn',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.payments.simulateReturn({\n payment_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(response.debugging_request_id);",
+ },
+ },
},
{
name: 'retry',
@@ -2423,6 +7464,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: object[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: object | object; pending_amount: number; related_account_tokens: object; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }",
markdown:
"## retry\n\n`client.payments.retry(payment_token: string): object`\n\n**post** `/v1/payments/{payment_token}/retry`\n\nRetry an origination which has been returned.\n\n### Parameters\n\n- `payment_token: string`\n\n### Returns\n\n- `{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: wire_party_details; debtor?: wire_party_details; message_id?: string; remittance_information?: string; }; pending_amount: number; related_account_tokens: { account_token: string; business_account_token: string; }; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n Payment transaction\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.payments.retry('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Payments.Retry',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Payments.Retry(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/payments/$PAYMENT_TOKEN/retry \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'payments().retry',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.PaymentRetryParams;\nimport com.lithic.api.models.PaymentRetryResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n PaymentRetryResponse response = client.payments().retry("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'payments().retry',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.PaymentRetryParams\nimport com.lithic.api.models.PaymentRetryResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: PaymentRetryResponse = client.payments().retry("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'payments.retry',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.payments.retry(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response)',
+ },
+ ruby: {
+ method: 'payments.retry_',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.payments.retry_("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.payments.retry',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.payments.retry('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);",
+ },
+ },
},
{
name: 'return',
@@ -2445,27 +7522,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: object[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: object | object; pending_amount: number; related_account_tokens: object; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }",
markdown:
"## return\n\n`client.payments.return(payment_token: string, financial_account_token: string, return_reason_code: string, addenda?: string, date_of_death?: string, memo?: string): { token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: object[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: object | object; pending_amount: number; related_account_tokens: object; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n\n**post** `/v1/payments/{payment_token}/return`\n\nReturn an ACH payment with a specified return reason code. Returns must be initiated\nwithin the time window specified by NACHA rules for each return code (typically 2 banking\ndays for most codes, 60 calendar days for unauthorized debits). For a complete list of\nreturn codes and their meanings, see the [ACH Return Reasons documentation](https://docs.lithic.com/docs/ach-overview#ach-return-reasons).\n\nNote:\n * This endpoint does not modify the state of the financial account associated with the payment. If you would like to change the account state, use the [Update financial account status](https://docs.lithic.com/reference/updatefinancialaccountstatus) endpoint.\n * By default this endpoint is not enabled for your account. Please contact your implementations manager to enable this feature.\n\n\n### Parameters\n\n- `payment_token: string`\n\n- `financial_account_token: string`\n Globally unique identifier for the financial account\n\n- `return_reason_code: string`\n ACH return reason code indicating the reason for returning the payment. Supported codes include R01-R53 and R80-R85. For a complete list of return codes and their meanings, see [ACH Return Reasons](https://docs.lithic.com/docs/ach-overview#ach-return-reasons)\n\n- `addenda?: string`\n Optional additional information about the return. Limited to 44 characters\n\n- `date_of_death?: string`\n Date of death in YYYY-MM-DD format. Required when using return codes **R14** (representative payee deceased) or **R15** (beneficiary or account holder deceased)\n\n- `memo?: string`\n Optional memo for the return. Limited to 10 characters\n\n### Returns\n\n- `{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: object; debtor?: object; message_id?: string; remittance_information?: string; }; pending_amount: number; related_account_tokens: { account_token: string; business_account_token: string; }; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n Payment transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `descriptor: string`\n - `direction: 'CREDIT' | 'DEBIT'`\n - `events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]`\n - `family: 'PAYMENT'`\n - `financial_account_token: string`\n - `method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'`\n - `method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: { account_number?: string; agent_id?: string; agent_name?: string; name?: string; }; debtor?: { account_number?: string; agent_id?: string; agent_name?: string; name?: string; }; message_id?: string; remittance_information?: string; }`\n - `pending_amount: number`\n - `related_account_tokens: { account_token: string; business_account_token: string; }`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `currency?: string`\n - `expected_release_date?: string`\n - `external_bank_account_token?: string`\n - `type?: string`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst payment = await client.payments.return('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', return_reason_code: 'R01' });\n\nconsole.log(payment);\n```",
- },
- {
- name: 'simulate_action',
- endpoint: '/v1/simulate/payments/{payment_token}/action',
- httpMethod: 'post',
- summary: 'Simulate payment lifecycle event',
- description: 'Simulate payment lifecycle event',
- stainlessPath: '(resource) payments > (method) simulate_action',
- qualified: 'client.payments.simulateAction',
- params: [
- 'payment_token: string;',
- 'event_type: string;',
- 'date_of_death?: string;',
- 'decline_reason?: string;',
- 'return_addenda?: string;',
- 'return_reason_code?: string;',
- ],
- response:
- "{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }",
- markdown:
- "## simulate_action\n\n`client.payments.simulateAction(payment_token: string, event_type: string, date_of_death?: string, decline_reason?: string, return_addenda?: string, return_reason_code?: string): { debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n**post** `/v1/simulate/payments/{payment_token}/action`\n\nSimulate payment lifecycle event\n\n### Parameters\n\n- `payment_token: string`\n\n- `event_type: string`\n Event Type\n\n- `date_of_death?: string`\n Date of Death for ACH Return\n\n- `decline_reason?: string`\n Decline reason\n\n- `return_addenda?: string`\n Return Addenda\n\n- `return_reason_code?: string`\n Return Reason Code\n\n### Returns\n\n- `{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n - `debugging_request_id: string`\n - `result: 'APPROVED' | 'DECLINED'`\n - `transaction_event_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.payments.simulateAction('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { event_type: 'ACH_ORIGINATION_REVIEWED' });\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Payments.Return',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpayment, err := client.Payments.Return(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.PaymentReturnParams{\n\t\t\tFinancialAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\t\tReturnReasonCode: lithic.F("R01"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", payment.UserDefinedID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/payments/$PAYMENT_TOKEN/return \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "return_reason_code": "R01",\n "date_of_death": "2025-01-15"\n }\'',
+ },
+ java: {
+ method: 'payments().return_',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Payment;\nimport com.lithic.api.models.PaymentReturnParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n PaymentReturnParams params = PaymentReturnParams.builder()\n .paymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .returnReasonCode("R01")\n .build();\n Payment payment = client.payments().return_(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'payments().return_',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Payment\nimport com.lithic.api.models.PaymentReturnParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: PaymentReturnParams = PaymentReturnParams.builder()\n .paymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .returnReasonCode("R01")\n .build()\n val payment: Payment = client.payments().return_(params)\n}',
+ },
+ python: {
+ method: 'payments.return_',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npayment = client.payments.return_(\n payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n return_reason_code="R01",\n)\nprint(payment.user_defined_id)',
+ },
+ ruby: {
+ method: 'payments.return_',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npayment = lithic.payments.return_(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n return_reason_code: "R01"\n)\n\nputs(payment)',
+ },
+ typescript: {
+ method: 'client.payments.return',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst payment = await client.payments.return('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n return_reason_code: 'R01',\n});\n\nconsole.log(payment.user_defined_id);",
+ },
+ },
},
{
name: 'simulate_receipt',
@@ -2486,34 +7578,99 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }",
markdown:
"## simulate_receipt\n\n`client.payments.simulateReceipt(token: string, amount: number, financial_account_token: string, receipt_type: 'RECEIPT_CREDIT' | 'RECEIPT_DEBIT', memo?: string): { debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n**post** `/v1/simulate/payments/receipt`\n\nSimulates a receipt of a Payment.\n\n### Parameters\n\n- `token: string`\n Customer-generated payment token used to uniquely identify the simulated payment\n\n- `amount: number`\n Amount\n\n- `financial_account_token: string`\n Financial Account Token\n\n- `receipt_type: 'RECEIPT_CREDIT' | 'RECEIPT_DEBIT'`\n Receipt Type\n\n- `memo?: string`\n Memo\n\n### Returns\n\n- `{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n - `debugging_request_id: string`\n - `result: 'APPROVED' | 'DECLINED'`\n - `transaction_event_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.payments.simulateReceipt({\n token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n amount: 0,\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n receipt_type: 'RECEIPT_CREDIT',\n});\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Payments.SimulateReceipt',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Payments.SimulateReceipt(context.TODO(), lithic.PaymentSimulateReceiptParams{\n\t\tToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tAmount: lithic.F(int64(0)),\n\t\tFinancialAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tReceiptType: lithic.F(lithic.PaymentSimulateReceiptParamsReceiptTypeReceiptCredit),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/simulate/payments/receipt \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "amount": 0,\n "financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "receipt_type": "RECEIPT_CREDIT"\n }\'',
+ },
+ java: {
+ method: 'payments().simulateReceipt',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.PaymentSimulateReceiptParams;\nimport com.lithic.api.models.PaymentSimulateReceiptResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n PaymentSimulateReceiptParams params = PaymentSimulateReceiptParams.builder()\n .token("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .amount(0L)\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .receiptType(PaymentSimulateReceiptParams.ReceiptType.RECEIPT_CREDIT)\n .build();\n PaymentSimulateReceiptResponse response = client.payments().simulateReceipt(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'payments().simulateReceipt',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.PaymentSimulateReceiptParams\nimport com.lithic.api.models.PaymentSimulateReceiptResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: PaymentSimulateReceiptParams = PaymentSimulateReceiptParams.builder()\n .token("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .amount(0L)\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .receiptType(PaymentSimulateReceiptParams.ReceiptType.RECEIPT_CREDIT)\n .build()\n val response: PaymentSimulateReceiptResponse = client.payments().simulateReceipt(params)\n}',
+ },
+ python: {
+ method: 'payments.simulate_receipt',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.payments.simulate_receipt(\n token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n amount=0,\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n receipt_type="RECEIPT_CREDIT",\n)\nprint(response.debugging_request_id)',
+ },
+ ruby: {
+ method: 'payments.simulate_receipt',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.payments.simulate_receipt(\n token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n amount: 0,\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n receipt_type: :RECEIPT_CREDIT\n)\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.payments.simulateReceipt',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.payments.simulateReceipt({\n token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n amount: 0,\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n receipt_type: 'RECEIPT_CREDIT',\n});\n\nconsole.log(response.debugging_request_id);",
+ },
+ },
},
{
- name: 'simulate_release',
- endpoint: '/v1/simulate/payments/release',
- httpMethod: 'post',
- summary: 'Simulate release payment',
- description: 'Simulates a release of a Payment.',
- stainlessPath: '(resource) payments > (method) simulate_release',
- qualified: 'client.payments.simulateRelease',
- params: ['payment_token: string;'],
- response:
- "{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }",
- markdown:
- "## simulate_release\n\n`client.payments.simulateRelease(payment_token: string): { debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n**post** `/v1/simulate/payments/release`\n\nSimulates a release of a Payment.\n\n### Parameters\n\n- `payment_token: string`\n Payment Token\n\n### Returns\n\n- `{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n - `debugging_request_id: string`\n - `result: 'APPROVED' | 'DECLINED'`\n - `transaction_event_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.payments.simulateRelease({ payment_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(response);\n```",
- },
- {
- name: 'simulate_return',
- endpoint: '/v1/simulate/payments/return',
+ name: 'simulate_action',
+ endpoint: '/v1/simulate/payments/{payment_token}/action',
httpMethod: 'post',
- summary: 'Simulate return payment',
- description: 'Simulates a return of a Payment.',
- stainlessPath: '(resource) payments > (method) simulate_return',
- qualified: 'client.payments.simulateReturn',
- params: ['payment_token: string;', 'return_reason_code?: string;'],
+ summary: 'Simulate payment lifecycle event',
+ description: 'Simulate payment lifecycle event',
+ stainlessPath: '(resource) payments > (method) simulate_action',
+ qualified: 'client.payments.simulateAction',
+ params: [
+ 'payment_token: string;',
+ 'event_type: string;',
+ 'date_of_death?: string;',
+ 'decline_reason?: string;',
+ 'return_addenda?: string;',
+ 'return_reason_code?: string;',
+ ],
response:
"{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }",
markdown:
- "## simulate_return\n\n`client.payments.simulateReturn(payment_token: string, return_reason_code?: string): { debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n**post** `/v1/simulate/payments/return`\n\nSimulates a return of a Payment.\n\n### Parameters\n\n- `payment_token: string`\n Payment Token\n\n- `return_reason_code?: string`\n Return Reason Code\n\n### Returns\n\n- `{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n - `debugging_request_id: string`\n - `result: 'APPROVED' | 'DECLINED'`\n - `transaction_event_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.payments.simulateReturn({ payment_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(response);\n```",
+ "## simulate_action\n\n`client.payments.simulateAction(payment_token: string, event_type: string, date_of_death?: string, decline_reason?: string, return_addenda?: string, return_reason_code?: string): { debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n**post** `/v1/simulate/payments/{payment_token}/action`\n\nSimulate payment lifecycle event\n\n### Parameters\n\n- `payment_token: string`\n\n- `event_type: string`\n Event Type\n\n- `date_of_death?: string`\n Date of Death for ACH Return\n\n- `decline_reason?: string`\n Decline reason\n\n- `return_addenda?: string`\n Return Addenda\n\n- `return_reason_code?: string`\n Return Reason Code\n\n### Returns\n\n- `{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n - `debugging_request_id: string`\n - `result: 'APPROVED' | 'DECLINED'`\n - `transaction_event_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.payments.simulateAction('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { event_type: 'ACH_ORIGINATION_REVIEWED' });\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Payments.SimulateAction',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Payments.SimulateAction(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.PaymentSimulateActionParams{\n\t\t\tEventType: lithic.F(lithic.PaymentSimulateActionParamsEventTypeACHOriginationReviewed),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/simulate/payments/$PAYMENT_TOKEN/action \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "event_type": "ACH_ORIGINATION_REVIEWED"\n }\'',
+ },
+ java: {
+ method: 'payments().simulateAction',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.PaymentSimulateActionParams;\nimport com.lithic.api.models.PaymentSimulateActionResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n PaymentSimulateActionParams params = PaymentSimulateActionParams.builder()\n .paymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .eventType(PaymentSimulateActionParams.SupportedSimulationTypes.ACH_ORIGINATION_REVIEWED)\n .build();\n PaymentSimulateActionResponse response = client.payments().simulateAction(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'payments().simulateAction',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.PaymentSimulateActionParams\nimport com.lithic.api.models.PaymentSimulateActionResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: PaymentSimulateActionParams = PaymentSimulateActionParams.builder()\n .paymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .eventType(PaymentSimulateActionParams.SupportedSimulationTypes.ACH_ORIGINATION_REVIEWED)\n .build()\n val response: PaymentSimulateActionResponse = client.payments().simulateAction(params)\n}',
+ },
+ python: {
+ method: 'payments.simulate_action',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.payments.simulate_action(\n payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n event_type="ACH_ORIGINATION_REVIEWED",\n)\nprint(response.debugging_request_id)',
+ },
+ ruby: {
+ method: 'payments.simulate_action',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.payments.simulate_action(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n event_type: :ACH_ORIGINATION_REVIEWED\n)\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.payments.simulateAction',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.payments.simulateAction('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n event_type: 'ACH_ORIGINATION_REVIEWED',\n});\n\nconsole.log(response.debugging_request_id);",
+ },
+ },
},
{
name: 'retrieve',
@@ -2528,6 +7685,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; account_type: 'CREDIT' | 'DEBIT' | 'NOT_APPLICABLE'; authentication_result: 'DECLINE' | 'SUCCESS' | 'PENDING_CHALLENGE' | 'PENDING_DECISION'; card_expiry_check: 'MATCH' | 'MISMATCH' | 'NOT_PRESENT'; card_token: string; cardholder: object; channel: 'APP_BASED' | 'BROWSER' | 'THREE_DS_REQUESTOR_INITIATED'; created: string; merchant: object; message_category: 'NON_PAYMENT_AUTHENTICATION' | 'PAYMENT_AUTHENTICATION'; three_ds_requestor_challenge_indicator: string; additional_data?: object; app?: object; authentication_request_type?: string; browser?: object; challenge_metadata?: object; challenge_orchestrated_by?: 'LITHIC' | 'CUSTOMER' | 'NO_CHALLENGE'; decision_made_by?: 'LITHIC_RULES' | 'LITHIC_DEFAULT' | 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'NETWORK' | 'UNKNOWN'; three_ri_request_type?: string; transaction?: object; }",
markdown:
"## retrieve\n\n`client.threeDS.authentication.retrieve(three_ds_authentication_token: string): { token: string; account_type: 'CREDIT' | 'DEBIT' | 'NOT_APPLICABLE'; authentication_result: 'DECLINE' | 'SUCCESS' | 'PENDING_CHALLENGE' | 'PENDING_DECISION'; card_expiry_check: 'MATCH' | 'MISMATCH' | 'NOT_PRESENT'; card_token: string; cardholder: object; channel: 'APP_BASED' | 'BROWSER' | 'THREE_DS_REQUESTOR_INITIATED'; created: string; merchant: object; message_category: 'NON_PAYMENT_AUTHENTICATION' | 'PAYMENT_AUTHENTICATION'; three_ds_requestor_challenge_indicator: string; additional_data?: object; app?: object; authentication_request_type?: string; browser?: object; challenge_metadata?: object; challenge_orchestrated_by?: 'LITHIC' | 'CUSTOMER' | 'NO_CHALLENGE'; decision_made_by?: 'LITHIC_RULES' | 'LITHIC_DEFAULT' | 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'NETWORK' | 'UNKNOWN'; three_ri_request_type?: string; transaction?: object; }`\n\n**get** `/v1/three_ds_authentication/{three_ds_authentication_token}`\n\nGet 3DS Authentication by token\n\n### Parameters\n\n- `three_ds_authentication_token: string`\n\n### Returns\n\n- `{ token: string; account_type: 'CREDIT' | 'DEBIT' | 'NOT_APPLICABLE'; authentication_result: 'DECLINE' | 'SUCCESS' | 'PENDING_CHALLENGE' | 'PENDING_DECISION'; card_expiry_check: 'MATCH' | 'MISMATCH' | 'NOT_PRESENT'; card_token: string; cardholder: { address_match?: boolean; address_on_file_match?: 'MATCH' | 'MATCH_ADDRESS_ONLY' | 'MATCH_ZIP_ONLY' | 'MISMATCH' | 'NOT_PRESENT'; billing_address?: { address1?: string; address2?: string; address3?: string; city?: string; country?: string; postal_code?: string; }; email?: string; name?: string; phone_number_home?: string; phone_number_mobile?: string; phone_number_work?: string; shipping_address?: { address1?: string; address2?: string; address3?: string; city?: string; country?: string; postal_code?: string; }; }; channel: 'APP_BASED' | 'BROWSER' | 'THREE_DS_REQUESTOR_INITIATED'; created: string; merchant: { risk_indicator: { delivery_email_address?: string; delivery_time_frame?: 'ELECTRONIC_DELIVERY' | 'OVERNIGHT_SHIPPING' | 'SAME_DAY_SHIPPING' | 'TWO_DAY_OR_MORE_SHIPPING'; gift_card_amount?: number; gift_card_count?: number; gift_card_currency?: string; order_availability?: 'FUTURE_AVAILABILITY' | 'MERCHANDISE_AVAILABLE'; pre_order_available_date?: string; reorder_items?: 'FIRST_TIME_ORDERED' | 'REORDERED'; shipping_method?: string; }; id?: string; country?: string; mcc?: string; name?: string; }; message_category: 'NON_PAYMENT_AUTHENTICATION' | 'PAYMENT_AUTHENTICATION'; three_ds_requestor_challenge_indicator: string; additional_data?: { network_decision?: 'LOW_RISK' | 'NOT_LOW_RISK'; network_risk_score?: number; }; app?: { device?: string; device_info?: string; ip?: string; latitude?: number; locale?: string; longitude?: number; os?: string; platform?: string; screen_height?: number; screen_width?: number; time_zone?: string; }; authentication_request_type?: string; browser?: { accept_header?: string; ip?: string; java_enabled?: boolean; javascript_enabled?: boolean; language?: string; time_zone?: string; user_agent?: string; }; challenge_metadata?: { method_type: 'SMS_OTP' | 'OUT_OF_BAND'; status: string; phone_number?: string; }; challenge_orchestrated_by?: 'LITHIC' | 'CUSTOMER' | 'NO_CHALLENGE'; decision_made_by?: 'LITHIC_RULES' | 'LITHIC_DEFAULT' | 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'NETWORK' | 'UNKNOWN'; three_ri_request_type?: string; transaction?: { amount: number; cardholder_amount: number; currency: string; currency_exponent: number; date_time: string; type: string; }; }`\n Represents a 3DS authentication\n\n - `token: string`\n - `account_type: 'CREDIT' | 'DEBIT' | 'NOT_APPLICABLE'`\n - `authentication_result: 'DECLINE' | 'SUCCESS' | 'PENDING_CHALLENGE' | 'PENDING_DECISION'`\n - `card_expiry_check: 'MATCH' | 'MISMATCH' | 'NOT_PRESENT'`\n - `card_token: string`\n - `cardholder: { address_match?: boolean; address_on_file_match?: 'MATCH' | 'MATCH_ADDRESS_ONLY' | 'MATCH_ZIP_ONLY' | 'MISMATCH' | 'NOT_PRESENT'; billing_address?: { address1?: string; address2?: string; address3?: string; city?: string; country?: string; postal_code?: string; }; email?: string; name?: string; phone_number_home?: string; phone_number_mobile?: string; phone_number_work?: string; shipping_address?: { address1?: string; address2?: string; address3?: string; city?: string; country?: string; postal_code?: string; }; }`\n - `channel: 'APP_BASED' | 'BROWSER' | 'THREE_DS_REQUESTOR_INITIATED'`\n - `created: string`\n - `merchant: { risk_indicator: { delivery_email_address?: string; delivery_time_frame?: 'ELECTRONIC_DELIVERY' | 'OVERNIGHT_SHIPPING' | 'SAME_DAY_SHIPPING' | 'TWO_DAY_OR_MORE_SHIPPING'; gift_card_amount?: number; gift_card_count?: number; gift_card_currency?: string; order_availability?: 'FUTURE_AVAILABILITY' | 'MERCHANDISE_AVAILABLE'; pre_order_available_date?: string; reorder_items?: 'FIRST_TIME_ORDERED' | 'REORDERED'; shipping_method?: string; }; id?: string; country?: string; mcc?: string; name?: string; }`\n - `message_category: 'NON_PAYMENT_AUTHENTICATION' | 'PAYMENT_AUTHENTICATION'`\n - `three_ds_requestor_challenge_indicator: string`\n - `additional_data?: { network_decision?: 'LOW_RISK' | 'NOT_LOW_RISK'; network_risk_score?: number; }`\n - `app?: { device?: string; device_info?: string; ip?: string; latitude?: number; locale?: string; longitude?: number; os?: string; platform?: string; screen_height?: number; screen_width?: number; time_zone?: string; }`\n - `authentication_request_type?: string`\n - `browser?: { accept_header?: string; ip?: string; java_enabled?: boolean; javascript_enabled?: boolean; language?: string; time_zone?: string; user_agent?: string; }`\n - `challenge_metadata?: { method_type: 'SMS_OTP' | 'OUT_OF_BAND'; status: string; phone_number?: string; }`\n - `challenge_orchestrated_by?: 'LITHIC' | 'CUSTOMER' | 'NO_CHALLENGE'`\n - `decision_made_by?: 'LITHIC_RULES' | 'LITHIC_DEFAULT' | 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'NETWORK' | 'UNKNOWN'`\n - `three_ri_request_type?: string`\n - `transaction?: { amount: number; cardholder_amount: number; currency: string; currency_exponent: number; date_time: string; type: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst threeDSAuthentication = await client.threeDS.authentication.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(threeDSAuthentication);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ThreeDS.Authentication.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tthreeDSAuthentication, err := client.ThreeDS.Authentication.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", threeDSAuthentication.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/three_ds_authentication/$THREE_DS_AUTHENTICATION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'threeDS().authentication().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ThreeDSAuthentication;\nimport com.lithic.api.models.ThreeDSAuthenticationRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ThreeDSAuthentication threeDSAuthentication = client.threeDS().authentication().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'threeDS().authentication().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ThreeDSAuthentication\nimport com.lithic.api.models.ThreeDSAuthenticationRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val threeDSAuthentication: ThreeDSAuthentication = client.threeDS().authentication().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'three_ds.authentication.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nthree_ds_authentication = client.three_ds.authentication.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(three_ds_authentication.token)',
+ },
+ ruby: {
+ method: 'three_ds.authentication.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nthree_ds_authentication = lithic.three_ds.authentication.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(three_ds_authentication)',
+ },
+ typescript: {
+ method: 'client.threeDS.authentication.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst threeDSAuthentication = await client.threeDS.authentication.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(threeDSAuthentication.token);",
+ },
+ },
},
{
name: 'simulate',
@@ -2547,6 +7740,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response: '{ token?: string; }',
markdown:
"## simulate\n\n`client.threeDS.authentication.simulate(merchant: { id: string; country: string; mcc: string; name: string; }, pan: string, transaction: { amount: number; currency: string; }, card_expiry_check?: 'MATCH' | 'MISMATCH' | 'NOT_PRESENT'): { token?: string; }`\n\n**post** `/v1/three_ds_authentication/simulate`\n\nSimulates a 3DS authentication request from the payment network as if it came from an ACS. If you're configured for 3DS Customer Decisioning, simulating authentications requires your customer decisioning endpoint to be set up properly (respond with a valid JSON). If the authentication decision is to challenge, ensure that the account holder associated with the card transaction has a valid phone number configured to receive the OTP code via SMS. \n\n### Parameters\n\n- `merchant: { id: string; country: string; mcc: string; name: string; }`\n Merchant information for the simulated transaction\n - `id: string`\n Unique identifier to identify the payment card acceptor. Corresponds to `merchant_acceptor_id` in authorization.\n - `country: string`\n Country of the address provided by the cardholder in ISO 3166-1 alpha-3 format (e.g. USA)\n - `mcc: string`\n Merchant category code for the transaction to be simulated. A four-digit number listed in ISO 18245. Supported merchant category codes can be found [here](https://docs.lithic.com/docs/transactions#merchant-category-codes-mccs).\n - `name: string`\n Merchant descriptor, corresponds to `descriptor` in authorization. If CHALLENGE keyword is included, Lithic will trigger a challenge.\n\n- `pan: string`\n Sixteen digit card number.\n\n- `transaction: { amount: number; currency: string; }`\n Transaction details for the simulation\n - `amount: number`\n Amount (in cents) to authenticate.\n - `currency: string`\n 3-character alphabetic ISO 4217 currency code.\n\n- `card_expiry_check?: 'MATCH' | 'MISMATCH' | 'NOT_PRESENT'`\n When set will use the following values as part of the Simulated Authentication. When not set defaults to MATCH\n\n### Returns\n\n- `{ token?: string; }`\n\n - `token?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.threeDS.authentication.simulate({\n merchant: {\n id: 'OODKZAPJVN4YS7O',\n country: 'USA',\n mcc: '5812',\n name: 'COFFEE SHOP',\n},\n pan: '4111111289144142',\n transaction: { amount: 0, currency: 'GBP' },\n});\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ThreeDS.Authentication.Simulate',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.ThreeDS.Authentication.Simulate(context.TODO(), lithic.ThreeDSAuthenticationSimulateParams{\n\t\tMerchant: lithic.F(lithic.ThreeDSAuthenticationSimulateParamsMerchant{\n\t\t\tID: lithic.F("OODKZAPJVN4YS7O"),\n\t\t\tCountry: lithic.F("USA"),\n\t\t\tMcc: lithic.F("5812"),\n\t\t\tName: lithic.F("COFFEE SHOP"),\n\t\t}),\n\t\tPan: lithic.F("4111111289144142"),\n\t\tTransaction: lithic.F(lithic.ThreeDSAuthenticationSimulateParamsTransaction{\n\t\t\tAmount: lithic.F(int64(0)),\n\t\t\tCurrency: lithic.F("GBP"),\n\t\t}),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/three_ds_authentication/simulate \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "merchant": {\n "id": "OODKZAPJVN4YS7O",\n "country": "USA",\n "mcc": "5812",\n "name": "COFFEE SHOP"\n },\n "pan": "4111111289144142",\n "transaction": {\n "amount": 0,\n "currency": "GBP"\n }\n }\'',
+ },
+ java: {
+ method: 'threeDS().authentication().simulate',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AuthenticationSimulateResponse;\nimport com.lithic.api.models.ThreeDSAuthenticationSimulateParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ThreeDSAuthenticationSimulateParams params = ThreeDSAuthenticationSimulateParams.builder()\n .merchant(ThreeDSAuthenticationSimulateParams.Merchant.builder()\n .id("OODKZAPJVN4YS7O")\n .country("USA")\n .mcc("5812")\n .name("COFFEE SHOP")\n .build())\n .pan("4111111289144142")\n .transaction(ThreeDSAuthenticationSimulateParams.Transaction.builder()\n .amount(0L)\n .currency("GBP")\n .build())\n .build();\n AuthenticationSimulateResponse response = client.threeDS().authentication().simulate(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'threeDS().authentication().simulate',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthenticationSimulateResponse\nimport com.lithic.api.models.ThreeDSAuthenticationSimulateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ThreeDSAuthenticationSimulateParams = ThreeDSAuthenticationSimulateParams.builder()\n .merchant(ThreeDSAuthenticationSimulateParams.Merchant.builder()\n .id("OODKZAPJVN4YS7O")\n .country("USA")\n .mcc("5812")\n .name("COFFEE SHOP")\n .build())\n .pan("4111111289144142")\n .transaction(ThreeDSAuthenticationSimulateParams.Transaction.builder()\n .amount(0L)\n .currency("GBP")\n .build())\n .build()\n val response: AuthenticationSimulateResponse = client.threeDS().authentication().simulate(params)\n}',
+ },
+ python: {
+ method: 'three_ds.authentication.simulate',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.three_ds.authentication.simulate(\n merchant={\n "id": "OODKZAPJVN4YS7O",\n "country": "USA",\n "mcc": "5812",\n "name": "COFFEE SHOP",\n },\n pan="4111111289144142",\n transaction={\n "amount": 0,\n "currency": "GBP",\n },\n)\nprint(response.token)',
+ },
+ ruby: {
+ method: 'three_ds.authentication.simulate',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.three_ds.authentication.simulate(\n merchant: {id: "OODKZAPJVN4YS7O", country: "USA", mcc: "5812", name: "COFFEE SHOP"},\n pan: "4111111289144142",\n transaction: {amount: 0, currency: "GBP"}\n)\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.threeDS.authentication.simulate',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.threeDS.authentication.simulate({\n merchant: {\n id: 'OODKZAPJVN4YS7O',\n country: 'USA',\n mcc: '5812',\n name: 'COFFEE SHOP',\n },\n pan: '4111111289144142',\n transaction: { amount: 0, currency: 'GBP' },\n});\n\nconsole.log(response.token);",
+ },
+ },
},
{
name: 'simulate_otp_entry',
@@ -2560,19 +7789,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
params: ['token: string;', 'otp: string;'],
markdown:
"## simulate_otp_entry\n\n`client.threeDS.authentication.simulateOtpEntry(token: string, otp: string): void`\n\n**post** `/v1/three_ds_decisioning/simulate/enter_otp`\n\nEndpoint for simulating entering OTP into 3DS Challenge UI. A call to [/v1/three_ds_authentication/simulate](https://docs.lithic.com/reference/postsimulateauthentication) that resulted in triggered SMS-OTP challenge must precede. Only a single attempt is supported; upon entering OTP, the challenge is either approved or declined.\n\n### Parameters\n\n- `token: string`\n A unique token returned as part of a /v1/three_ds_authentication/simulate call that resulted in PENDING_CHALLENGE authentication result.\n\n- `otp: string`\n The OTP entered by the cardholder\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.threeDS.authentication.simulateOtpEntry({ token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac', otp: '123456' })\n```",
- },
- {
- name: 'challenge_response',
- endpoint: '/v1/three_ds_decisioning/challenge_response',
- httpMethod: 'post',
- summary: 'Respond to a Challenge Request',
- description:
- "Card program's response to a 3DS Challenge Request.\nChallenge Request is emitted as a webhook [three_ds_authentication.challenge](https://docs.lithic.com/reference/post_three-ds-authentication-challenge) and your Card Program needs to be configured with Out of Band (OOB) Challenges in order to receive it (see https://docs.lithic.com/docs/3ds-challenge-flow for more information).",
- stainlessPath: '(resource) three_ds.decisioning > (method) challenge_response',
- qualified: 'client.threeDS.decisioning.challengeResponse',
- params: ['token: string;', "challenge_response: 'APPROVE' | 'DECLINE_BY_CUSTOMER';"],
- markdown:
- "## challenge_response\n\n`client.threeDS.decisioning.challengeResponse(token: string, challenge_response: 'APPROVE' | 'DECLINE_BY_CUSTOMER'): void`\n\n**post** `/v1/three_ds_decisioning/challenge_response`\n\nCard program's response to a 3DS Challenge Request.\nChallenge Request is emitted as a webhook [three_ds_authentication.challenge](https://docs.lithic.com/reference/post_three-ds-authentication-challenge) and your Card Program needs to be configured with Out of Band (OOB) Challenges in order to receive it (see https://docs.lithic.com/docs/3ds-challenge-flow for more information).\n\n### Parameters\n\n- `token: string`\n Globally unique identifier for 3DS Authentication that resulted in PENDING_CHALLENGE authentication result.\n\n- `challenge_response: 'APPROVE' | 'DECLINE_BY_CUSTOMER'`\n Whether the Cardholder has approved or declined the issued Challenge\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.threeDS.decisioning.challengeResponse({ token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', challenge_response: 'APPROVE' })\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ThreeDS.Authentication.SimulateOtpEntry',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.ThreeDS.Authentication.SimulateOtpEntry(context.TODO(), lithic.ThreeDSAuthenticationSimulateOtpEntryParams{\n\t\tToken: lithic.F("fabd829d-7f7b-4432-a8f2-07ea4889aaac"),\n\t\tOtp: lithic.F("123456"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/three_ds_decisioning/simulate/enter_otp \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "token": "fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n "otp": "123456"\n }\'',
+ },
+ java: {
+ method: 'threeDS().authentication().simulateOtpEntry',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ThreeDSAuthenticationSimulateOtpEntryParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ThreeDSAuthenticationSimulateOtpEntryParams params = ThreeDSAuthenticationSimulateOtpEntryParams.builder()\n .token("fabd829d-7f7b-4432-a8f2-07ea4889aaac")\n .otp("123456")\n .build();\n client.threeDS().authentication().simulateOtpEntry(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'threeDS().authentication().simulateOtpEntry',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ThreeDSAuthenticationSimulateOtpEntryParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ThreeDSAuthenticationSimulateOtpEntryParams = ThreeDSAuthenticationSimulateOtpEntryParams.builder()\n .token("fabd829d-7f7b-4432-a8f2-07ea4889aaac")\n .otp("123456")\n .build()\n client.threeDS().authentication().simulateOtpEntry(params)\n}',
+ },
+ python: {
+ method: 'three_ds.authentication.simulate_otp_entry',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.three_ds.authentication.simulate_otp_entry(\n token="fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n otp="123456",\n)',
+ },
+ ruby: {
+ method: 'three_ds.authentication.simulate_otp_entry',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.three_ds.authentication.simulate_otp_entry(\n token: "fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n otp: "123456"\n)\n\nputs(result)',
+ },
+ typescript: {
+ method: 'client.threeDS.authentication.simulateOtpEntry',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.threeDS.authentication.simulateOtpEntry({\n token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac',\n otp: '123456',\n});",
+ },
+ },
},
{
name: 'retrieve_secret',
@@ -2586,6 +7838,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response: '{ secret?: string; }',
markdown:
"## retrieve_secret\n\n`client.threeDS.decisioning.retrieveSecret(): { secret?: string; }`\n\n**get** `/v1/three_ds_decisioning/secret`\n\nRetrieve the 3DS Decisioning HMAC secret key. If one does not exist for your program yet, calling this endpoint will create one for you. The headers (which you can use to verify 3DS Decisioning requests) will begin appearing shortly after calling this endpoint for the first time. See [this page](https://docs.lithic.com/docs/3ds-decisioning#3ds-decisioning-hmac-secrets) for more detail about verifying 3DS Decisioning requests.\n\n\n### Returns\n\n- `{ secret?: string; }`\n\n - `secret?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.threeDS.decisioning.retrieveSecret();\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ThreeDS.Decisioning.GetSecret',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.ThreeDS.Decisioning.GetSecret(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Secret)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/three_ds_decisioning/secret \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'threeDS().decisioning().retrieveSecret',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.DecisioningRetrieveSecretResponse;\nimport com.lithic.api.models.ThreeDSDecisioningRetrieveSecretParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n DecisioningRetrieveSecretResponse response = client.threeDS().decisioning().retrieveSecret();\n }\n}',
+ },
+ kotlin: {
+ method: 'threeDS().decisioning().retrieveSecret',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.DecisioningRetrieveSecretResponse\nimport com.lithic.api.models.ThreeDSDecisioningRetrieveSecretParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: DecisioningRetrieveSecretResponse = client.threeDS().decisioning().retrieveSecret()\n}',
+ },
+ python: {
+ method: 'three_ds.decisioning.retrieve_secret',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.three_ds.decisioning.retrieve_secret()\nprint(response.secret)',
+ },
+ ruby: {
+ method: 'three_ds.decisioning.retrieve_secret',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.three_ds.decisioning.retrieve_secret\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.threeDS.decisioning.retrieveSecret',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.threeDS.decisioning.retrieveSecret();\n\nconsole.log(response.secret);",
+ },
+ },
},
{
name: 'rotate_secret',
@@ -2598,6 +7886,91 @@ const EMBEDDED_METHODS: MethodEntry[] = [
qualified: 'client.threeDS.decisioning.rotateSecret',
markdown:
"## rotate_secret\n\n`client.threeDS.decisioning.rotateSecret(): void`\n\n**post** `/v1/three_ds_decisioning/secret/rotate`\n\nGenerate a new 3DS Decisioning HMAC secret key. The old secret key will be deactivated 24 hours after a successful request to this endpoint. Make a [`GET /three_ds_decisioning/secret`](https://docs.lithic.com/reference/getthreedsdecisioningsecret) request to retrieve the new secret key.\n\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.threeDS.decisioning.rotateSecret()\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ThreeDS.Decisioning.RotateSecret',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.ThreeDS.Decisioning.RotateSecret(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/three_ds_decisioning/secret/rotate \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'threeDS().decisioning().rotateSecret',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ThreeDSDecisioningRotateSecretParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n client.threeDS().decisioning().rotateSecret();\n }\n}',
+ },
+ kotlin: {
+ method: 'threeDS().decisioning().rotateSecret',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ThreeDSDecisioningRotateSecretParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.threeDS().decisioning().rotateSecret()\n}',
+ },
+ python: {
+ method: 'three_ds.decisioning.rotate_secret',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.three_ds.decisioning.rotate_secret()',
+ },
+ ruby: {
+ method: 'three_ds.decisioning.rotate_secret',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.three_ds.decisioning.rotate_secret\n\nputs(result)',
+ },
+ typescript: {
+ method: 'client.threeDS.decisioning.rotateSecret',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.threeDS.decisioning.rotateSecret();",
+ },
+ },
+ },
+ {
+ name: 'challenge_response',
+ endpoint: '/v1/three_ds_decisioning/challenge_response',
+ httpMethod: 'post',
+ summary: 'Respond to a Challenge Request',
+ description:
+ "Card program's response to a 3DS Challenge Request.\nChallenge Request is emitted as a webhook [three_ds_authentication.challenge](https://docs.lithic.com/reference/post_three-ds-authentication-challenge) and your Card Program needs to be configured with Out of Band (OOB) Challenges in order to receive it (see https://docs.lithic.com/docs/3ds-challenge-flow for more information).",
+ stainlessPath: '(resource) three_ds.decisioning > (method) challenge_response',
+ qualified: 'client.threeDS.decisioning.challengeResponse',
+ params: ['token: string;', "challenge_response: 'APPROVE' | 'DECLINE_BY_CUSTOMER';"],
+ markdown:
+ "## challenge_response\n\n`client.threeDS.decisioning.challengeResponse(token: string, challenge_response: 'APPROVE' | 'DECLINE_BY_CUSTOMER'): void`\n\n**post** `/v1/three_ds_decisioning/challenge_response`\n\nCard program's response to a 3DS Challenge Request.\nChallenge Request is emitted as a webhook [three_ds_authentication.challenge](https://docs.lithic.com/reference/post_three-ds-authentication-challenge) and your Card Program needs to be configured with Out of Band (OOB) Challenges in order to receive it (see https://docs.lithic.com/docs/3ds-challenge-flow for more information).\n\n### Parameters\n\n- `token: string`\n Globally unique identifier for 3DS Authentication that resulted in PENDING_CHALLENGE authentication result.\n\n- `challenge_response: 'APPROVE' | 'DECLINE_BY_CUSTOMER'`\n Whether the Cardholder has approved or declined the issued Challenge\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.threeDS.decisioning.challengeResponse({ token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', challenge_response: 'APPROVE' })\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ThreeDS.Decisioning.ChallengeResponse',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.ThreeDS.Decisioning.ChallengeResponse(context.TODO(), lithic.ThreeDSDecisioningChallengeResponseParams{\n\t\tChallengeResponse: lithic.ChallengeResponseParam{\n\t\t\tToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\t\tChallengeResponse: lithic.F(lithic.ChallengeResultApprove),\n\t\t},\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/three_ds_decisioning/challenge_response \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "challenge_response": "APPROVE"\n }\'',
+ },
+ java: {
+ method: 'threeDS().decisioning().challengeResponse',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ChallengeResponse;\nimport com.lithic.api.models.ChallengeResult;\nimport com.lithic.api.models.ThreeDSDecisioningChallengeResponseParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ChallengeResponse params = ChallengeResponse.builder()\n .token("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .challengeResponse(ChallengeResult.APPROVE)\n .build();\n client.threeDS().decisioning().challengeResponse(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'threeDS().decisioning().challengeResponse',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ChallengeResponse\nimport com.lithic.api.models.ChallengeResult\nimport com.lithic.api.models.ThreeDSDecisioningChallengeResponseParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ChallengeResponse = ChallengeResponse.builder()\n .token("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .challengeResponse(ChallengeResult.APPROVE)\n .build()\n client.threeDS().decisioning().challengeResponse(params)\n}',
+ },
+ python: {
+ method: 'three_ds.decisioning.challenge_response',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.three_ds.decisioning.challenge_response(\n token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n challenge_response="APPROVE",\n)',
+ },
+ ruby: {
+ method: 'three_ds.decisioning.challenge_response',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.three_ds.decisioning.challenge_response(\n token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n challenge_response: :APPROVE\n)\n\nputs(result)',
+ },
+ typescript: {
+ method: 'client.threeDS.decisioning.challengeResponse',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.threeDS.decisioning.challengeResponse({\n token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n challenge_response: 'APPROVE',\n});",
+ },
+ },
},
{
name: 'list_details',
@@ -2617,6 +7990,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; account_token: string; card_program_token: string; card_token: string; created: string; currency: string; disputes_gross_amount: number; event_tokens: string[]; institution: string; interchange_fee_extended_precision: number; interchange_gross_amount: number; network: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_details: { ISA?: number; }; other_fees_gross_amount: number; report_date: string; settlement_date: string; transaction_token: string; transactions_gross_amount: number; type: string; updated: string; fee_description?: string; }",
markdown:
"## list_details\n\n`client.reports.settlement.listDetails(report_date: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; account_token: string; card_program_token: string; card_token: string; created: string; currency: string; disputes_gross_amount: number; event_tokens: string[]; institution: string; interchange_fee_extended_precision: number; interchange_gross_amount: number; network: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_details: object; other_fees_gross_amount: number; report_date: string; settlement_date: string; transaction_token: string; transactions_gross_amount: number; type: string; updated: string; fee_description?: string; }`\n\n**get** `/v1/reports/settlement/details/{report_date}`\n\nList details.\n\n### Parameters\n\n- `report_date: string`\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Number of records per page.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; card_token: string; created: string; currency: string; disputes_gross_amount: number; event_tokens: string[]; institution: string; interchange_fee_extended_precision: number; interchange_gross_amount: number; network: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_details: { ISA?: number; }; other_fees_gross_amount: number; report_date: string; settlement_date: string; transaction_token: string; transactions_gross_amount: number; type: string; updated: string; fee_description?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `card_program_token: string`\n - `card_token: string`\n - `created: string`\n - `currency: string`\n - `disputes_gross_amount: number`\n - `event_tokens: string[]`\n - `institution: string`\n - `interchange_fee_extended_precision: number`\n - `interchange_gross_amount: number`\n - `network: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'`\n - `other_fees_details: { ISA?: number; }`\n - `other_fees_gross_amount: number`\n - `report_date: string`\n - `settlement_date: string`\n - `transaction_token: string`\n - `transactions_gross_amount: number`\n - `type: string`\n - `updated: string`\n - `fee_description?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const settlementDetail of client.reports.settlement.listDetails('2023-09-01')) {\n console.log(settlementDetail);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Reports.Settlement.ListDetails',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Reports.Settlement.ListDetails(\n\t\tcontext.TODO(),\n\t\ttime.Now(),\n\t\tlithic.ReportSettlementListDetailsParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/reports/settlement/details/$REPORT_DATE \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'reports().settlement().listDetails',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ReportSettlementListDetailsPage;\nimport com.lithic.api.models.ReportSettlementListDetailsParams;\nimport java.time.LocalDate;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ReportSettlementListDetailsPage page = client.reports().settlement().listDetails(LocalDate.parse("2023-09-01"));\n }\n}',
+ },
+ kotlin: {
+ method: 'reports().settlement().listDetails',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ReportSettlementListDetailsPage\nimport com.lithic.api.models.ReportSettlementListDetailsParams\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: ReportSettlementListDetailsPage = client.reports().settlement().listDetails(LocalDate.parse("2023-09-01"))\n}',
+ },
+ python: {
+ method: 'reports.settlement.list_details',
+ example:
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.reports.settlement.list_details(\n report_date=date.fromisoformat("2023-09-01"),\n)\npage = page.data[0]\nprint(page.token)',
+ },
+ ruby: {
+ method: 'reports.settlement.list_details',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.reports.settlement.list_details("2023-09-01")\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.reports.settlement.listDetails',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const settlementDetail of client.reports.settlement.listDetails('2023-09-01')) {\n console.log(settlementDetail.token);\n}",
+ },
+ },
},
{
name: 'summary',
@@ -2631,20 +8040,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ created: string; currency: string; details: { currency?: string; disputes_gross_amount?: number; institution?: string; interchange_gross_amount?: number; network?: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_gross_amount?: number; settled_net_amount?: number; transactions_gross_amount?: number; }[]; disputes_gross_amount: number; interchange_gross_amount: number; is_complete: boolean; other_fees_gross_amount: number; report_date: string; settled_net_amount: number; transactions_gross_amount: number; updated: string; }",
markdown:
"## summary\n\n`client.reports.settlement.summary(report_date: string): { created: string; currency: string; details: settlement_summary_details[]; disputes_gross_amount: number; interchange_gross_amount: number; is_complete: boolean; other_fees_gross_amount: number; report_date: string; settled_net_amount: number; transactions_gross_amount: number; updated: string; }`\n\n**get** `/v1/reports/settlement/summary/{report_date}`\n\nGet the settlement report for a specified report date. Not available in sandbox.\n\n### Parameters\n\n- `report_date: string`\n\n### Returns\n\n- `{ created: string; currency: string; details: { currency?: string; disputes_gross_amount?: number; institution?: string; interchange_gross_amount?: number; network?: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_gross_amount?: number; settled_net_amount?: number; transactions_gross_amount?: number; }[]; disputes_gross_amount: number; interchange_gross_amount: number; is_complete: boolean; other_fees_gross_amount: number; report_date: string; settled_net_amount: number; transactions_gross_amount: number; updated: string; }`\n\n - `created: string`\n - `currency: string`\n - `details: { currency?: string; disputes_gross_amount?: number; institution?: string; interchange_gross_amount?: number; network?: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_gross_amount?: number; settled_net_amount?: number; transactions_gross_amount?: number; }[]`\n - `disputes_gross_amount: number`\n - `interchange_gross_amount: number`\n - `is_complete: boolean`\n - `other_fees_gross_amount: number`\n - `report_date: string`\n - `settled_net_amount: number`\n - `transactions_gross_amount: number`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst settlementReport = await client.reports.settlement.summary('2023-09-01');\n\nconsole.log(settlementReport);\n```",
- },
- {
- name: 'retrieve',
- endpoint: '/v1/reports/settlement/network_totals/{token}',
- httpMethod: 'get',
- summary: 'Get network total',
- description: 'Retrieve a specific network total record by token. Not available in sandbox.',
- stainlessPath: '(resource) reports.settlement.network_totals > (method) retrieve',
- qualified: 'client.reports.settlement.networkTotals.retrieve',
- params: ['token: string;'],
- response:
- "{ token: string; amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }",
- markdown:
- "## retrieve\n\n`client.reports.settlement.networkTotals.retrieve(token: string): { token: string; amounts: object; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }`\n\n**get** `/v1/reports/settlement/network_totals/{token}`\n\nRetrieve a specific network total record by token. Not available in sandbox.\n\n### Parameters\n\n- `token: string`\n\n### Returns\n\n- `{ token: string; amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }`\n\n - `token: string`\n - `amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }`\n - `created: string`\n - `currency: string`\n - `institution_id: string`\n - `is_complete: boolean`\n - `network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'`\n - `report_date: string`\n - `settlement_institution_id: string`\n - `settlement_service: string`\n - `updated: string`\n - `cycle?: number`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst networkTotal = await client.reports.settlement.networkTotals.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(networkTotal);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Reports.Settlement.Summary',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tsettlementReport, err := client.Reports.Settlement.Summary(context.TODO(), time.Now())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", settlementReport.Created)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/reports/settlement/summary/$REPORT_DATE \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'reports().settlement().summary',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ReportSettlementSummaryParams;\nimport com.lithic.api.models.SettlementReport;\nimport java.time.LocalDate;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n SettlementReport settlementReport = client.reports().settlement().summary(LocalDate.parse("2023-09-01"));\n }\n}',
+ },
+ kotlin: {
+ method: 'reports().settlement().summary',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ReportSettlementSummaryParams\nimport com.lithic.api.models.SettlementReport\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val settlementReport: SettlementReport = client.reports().settlement().summary(LocalDate.parse("2023-09-01"))\n}',
+ },
+ python: {
+ method: 'reports.settlement.summary',
+ example:
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nsettlement_report = client.reports.settlement.summary(\n date.fromisoformat("2023-09-01"),\n)\nprint(settlement_report.created)',
+ },
+ ruby: {
+ method: 'reports.settlement.summary',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nsettlement_report = lithic.reports.settlement.summary("2023-09-01")\n\nputs(settlement_report)',
+ },
+ typescript: {
+ method: 'client.reports.settlement.summary',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst settlementReport = await client.reports.settlement.summary('2023-09-01');\n\nconsole.log(settlementReport.created);",
+ },
+ },
},
{
name: 'list',
@@ -2671,6 +8102,141 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }",
markdown:
"## list\n\n`client.reports.settlement.networkTotals.list(begin?: string, end?: string, ending_before?: string, institution_id?: string, network?: 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK', page_size?: number, report_date?: string, report_date_begin?: string, report_date_end?: string, settlement_institution_id?: string, starting_after?: string): { token: string; amounts: object; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }`\n\n**get** `/v1/reports/settlement/network_totals`\n\nList network total records with optional filters. Not available in sandbox.\n\n### Parameters\n\n- `begin?: string`\n Datetime in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Datetime in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `institution_id?: string`\n Institution ID to filter on.\n\n- `network?: 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'`\n Network to filter on.\n\n- `page_size?: number`\n Number of records per page.\n\n- `report_date?: string`\n Singular report date to filter on (YYYY-MM-DD). Cannot be populated in conjunction with report_date_begin or report_date_end.\n\n- `report_date_begin?: string`\n Earliest report date to filter on, inclusive (YYYY-MM-DD).\n\n- `report_date_end?: string`\n Latest report date to filter on, inclusive (YYYY-MM-DD).\n\n- `settlement_institution_id?: string`\n Settlement institution ID to filter on.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }`\n\n - `token: string`\n - `amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }`\n - `created: string`\n - `currency: string`\n - `institution_id: string`\n - `is_complete: boolean`\n - `network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'`\n - `report_date: string`\n - `settlement_institution_id: string`\n - `settlement_service: string`\n - `updated: string`\n - `cycle?: number`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const networkTotal of client.reports.settlement.networkTotals.list()) {\n console.log(networkTotal);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Reports.Settlement.NetworkTotals.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Reports.Settlement.NetworkTotals.List(context.TODO(), lithic.ReportSettlementNetworkTotalListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/reports/settlement/network_totals \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'reports().settlement().networkTotals().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ReportSettlementNetworkTotalListPage;\nimport com.lithic.api.models.ReportSettlementNetworkTotalListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ReportSettlementNetworkTotalListPage page = client.reports().settlement().networkTotals().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'reports().settlement().networkTotals().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ReportSettlementNetworkTotalListPage\nimport com.lithic.api.models.ReportSettlementNetworkTotalListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: ReportSettlementNetworkTotalListPage = client.reports().settlement().networkTotals().list()\n}',
+ },
+ python: {
+ method: 'reports.settlement.network_totals.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.reports.settlement.network_totals.list()\npage = page.data[0]\nprint(page.institution_id)',
+ },
+ ruby: {
+ method: 'reports.settlement.network_totals.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.reports.settlement.network_totals.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.reports.settlement.networkTotals.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const networkTotal of client.reports.settlement.networkTotals.list()) {\n console.log(networkTotal.institution_id);\n}",
+ },
+ },
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/reports/settlement/network_totals/{token}',
+ httpMethod: 'get',
+ summary: 'Get network total',
+ description: 'Retrieve a specific network total record by token. Not available in sandbox.',
+ stainlessPath: '(resource) reports.settlement.network_totals > (method) retrieve',
+ qualified: 'client.reports.settlement.networkTotals.retrieve',
+ params: ['token: string;'],
+ response:
+ "{ token: string; amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }",
+ markdown:
+ "## retrieve\n\n`client.reports.settlement.networkTotals.retrieve(token: string): { token: string; amounts: object; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }`\n\n**get** `/v1/reports/settlement/network_totals/{token}`\n\nRetrieve a specific network total record by token. Not available in sandbox.\n\n### Parameters\n\n- `token: string`\n\n### Returns\n\n- `{ token: string; amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }`\n\n - `token: string`\n - `amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }`\n - `created: string`\n - `currency: string`\n - `institution_id: string`\n - `is_complete: boolean`\n - `network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'`\n - `report_date: string`\n - `settlement_institution_id: string`\n - `settlement_service: string`\n - `updated: string`\n - `cycle?: number`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst networkTotal = await client.reports.settlement.networkTotals.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(networkTotal);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Reports.Settlement.NetworkTotals.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tnetworkTotal, err := client.Reports.Settlement.NetworkTotals.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", networkTotal.InstitutionID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/reports/settlement/network_totals/$TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'reports().settlement().networkTotals().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.NetworkTotal;\nimport com.lithic.api.models.ReportSettlementNetworkTotalRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n NetworkTotal networkTotal = client.reports().settlement().networkTotals().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'reports().settlement().networkTotals().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.NetworkTotal\nimport com.lithic.api.models.ReportSettlementNetworkTotalRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val networkTotal: NetworkTotal = client.reports().settlement().networkTotals().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'reports.settlement.network_totals.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nnetwork_total = client.reports.settlement.network_totals.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(network_total.institution_id)',
+ },
+ ruby: {
+ method: 'reports.settlement.network_totals.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nnetwork_total = lithic.reports.settlement.network_totals.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(network_total)',
+ },
+ typescript: {
+ method: 'client.reports.settlement.networkTotals.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst networkTotal = await client.reports.settlement.networkTotals.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(networkTotal.institution_id);",
+ },
+ },
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/card_programs',
+ httpMethod: 'get',
+ summary: 'List card programs',
+ description: 'List card programs.',
+ stainlessPath: '(resource) card_programs > (method) list',
+ qualified: 'client.cardPrograms.list',
+ params: ['ending_before?: string;', 'page_size?: number;', 'starting_after?: string;'],
+ response:
+ '{ token: string; account_level_management_enabled: boolean; created: string; name: string; pan_range_end: string; pan_range_start: string; cardholder_currency?: string; settlement_currencies?: string[]; }',
+ markdown:
+ "## list\n\n`client.cardPrograms.list(ending_before?: string, page_size?: number, starting_after?: string): { token: string; account_level_management_enabled: boolean; created: string; name: string; pan_range_end: string; pan_range_start: string; cardholder_currency?: string; settlement_currencies?: string[]; }`\n\n**get** `/v1/card_programs`\n\nList card programs.\n\n### Parameters\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_level_management_enabled: boolean; created: string; name: string; pan_range_end: string; pan_range_start: string; cardholder_currency?: string; settlement_currencies?: string[]; }`\n\n - `token: string`\n - `account_level_management_enabled: boolean`\n - `created: string`\n - `name: string`\n - `pan_range_end: string`\n - `pan_range_start: string`\n - `cardholder_currency?: string`\n - `settlement_currencies?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const cardProgram of client.cardPrograms.list()) {\n console.log(cardProgram);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.CardPrograms.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.CardPrograms.List(context.TODO(), lithic.CardProgramListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example: 'curl https://api.lithic.com/v1/card_programs \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'cardPrograms().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.CardProgramListPage;\nimport com.lithic.api.models.CardProgramListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n CardProgramListPage page = client.cardPrograms().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'cardPrograms().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardProgramListPage\nimport com.lithic.api.models.CardProgramListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: CardProgramListPage = client.cardPrograms().list()\n}',
+ },
+ python: {
+ method: 'card_programs.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.card_programs.list()\npage = page.data[0]\nprint(page.token)',
+ },
+ ruby: {
+ method: 'card_programs.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.card_programs.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.cardPrograms.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const cardProgram of client.cardPrograms.list()) {\n console.log(cardProgram.token);\n}",
+ },
+ },
},
{
name: 'retrieve',
@@ -2685,20 +8251,92 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'{ token: string; account_level_management_enabled: boolean; created: string; name: string; pan_range_end: string; pan_range_start: string; cardholder_currency?: string; settlement_currencies?: string[]; }',
markdown:
"## retrieve\n\n`client.cardPrograms.retrieve(card_program_token: string): { token: string; account_level_management_enabled: boolean; created: string; name: string; pan_range_end: string; pan_range_start: string; cardholder_currency?: string; settlement_currencies?: string[]; }`\n\n**get** `/v1/card_programs/{card_program_token}`\n\nGet card program.\n\n### Parameters\n\n- `card_program_token: string`\n\n### Returns\n\n- `{ token: string; account_level_management_enabled: boolean; created: string; name: string; pan_range_end: string; pan_range_start: string; cardholder_currency?: string; settlement_currencies?: string[]; }`\n\n - `token: string`\n - `account_level_management_enabled: boolean`\n - `created: string`\n - `name: string`\n - `pan_range_end: string`\n - `pan_range_start: string`\n - `cardholder_currency?: string`\n - `settlement_currencies?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst cardProgram = await client.cardPrograms.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(cardProgram);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.CardPrograms.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcardProgram, err := client.CardPrograms.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", cardProgram.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/card_programs/$CARD_PROGRAM_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'cardPrograms().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.CardProgram;\nimport com.lithic.api.models.CardProgramRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n CardProgram cardProgram = client.cardPrograms().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'cardPrograms().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardProgram\nimport com.lithic.api.models.CardProgramRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val cardProgram: CardProgram = client.cardPrograms().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'card_programs.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard_program = client.card_programs.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(card_program.token)',
+ },
+ ruby: {
+ method: 'card_programs.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard_program = lithic.card_programs.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(card_program)',
+ },
+ typescript: {
+ method: 'client.cardPrograms.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst cardProgram = await client.cardPrograms.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(cardProgram.token);",
+ },
+ },
},
{
name: 'list',
- endpoint: '/v1/card_programs',
+ endpoint: '/v1/digital_card_art',
httpMethod: 'get',
- summary: 'List card programs',
- description: 'List card programs.',
- stainlessPath: '(resource) card_programs > (method) list',
- qualified: 'client.cardPrograms.list',
+ summary: 'List digital card art',
+ description: 'List digital card art.',
+ stainlessPath: '(resource) digital_card_art > (method) list',
+ qualified: 'client.digitalCardArt.list',
params: ['ending_before?: string;', 'page_size?: number;', 'starting_after?: string;'],
response:
- '{ token: string; account_level_management_enabled: boolean; created: string; name: string; pan_range_end: string; pan_range_start: string; cardholder_currency?: string; settlement_currencies?: string[]; }',
+ "{ token: string; card_program_token: string; created: string; description: string; is_enabled: boolean; network: 'MASTERCARD' | 'VISA'; is_card_program_default?: boolean; }",
markdown:
- "## list\n\n`client.cardPrograms.list(ending_before?: string, page_size?: number, starting_after?: string): { token: string; account_level_management_enabled: boolean; created: string; name: string; pan_range_end: string; pan_range_start: string; cardholder_currency?: string; settlement_currencies?: string[]; }`\n\n**get** `/v1/card_programs`\n\nList card programs.\n\n### Parameters\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_level_management_enabled: boolean; created: string; name: string; pan_range_end: string; pan_range_start: string; cardholder_currency?: string; settlement_currencies?: string[]; }`\n\n - `token: string`\n - `account_level_management_enabled: boolean`\n - `created: string`\n - `name: string`\n - `pan_range_end: string`\n - `pan_range_start: string`\n - `cardholder_currency?: string`\n - `settlement_currencies?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const cardProgram of client.cardPrograms.list()) {\n console.log(cardProgram);\n}\n```",
+ "## list\n\n`client.digitalCardArt.list(ending_before?: string, page_size?: number, starting_after?: string): { token: string; card_program_token: string; created: string; description: string; is_enabled: boolean; network: 'MASTERCARD' | 'VISA'; is_card_program_default?: boolean; }`\n\n**get** `/v1/digital_card_art`\n\nList digital card art.\n\n### Parameters\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; card_program_token: string; created: string; description: string; is_enabled: boolean; network: 'MASTERCARD' | 'VISA'; is_card_program_default?: boolean; }`\n\n - `token: string`\n - `card_program_token: string`\n - `created: string`\n - `description: string`\n - `is_enabled: boolean`\n - `network: 'MASTERCARD' | 'VISA'`\n - `is_card_program_default?: boolean`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const digitalCardArt of client.digitalCardArt.list()) {\n console.log(digitalCardArt);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.DigitalCardArt.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.DigitalCardArt.List(context.TODO(), lithic.DigitalCardArtListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/digital_card_art \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'digitalCardArt().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.DigitalCardArtListPage;\nimport com.lithic.api.models.DigitalCardArtListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n DigitalCardArtListPage page = client.digitalCardArt().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'digitalCardArt().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.DigitalCardArtListPage\nimport com.lithic.api.models.DigitalCardArtListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: DigitalCardArtListPage = client.digitalCardArt().list()\n}',
+ },
+ python: {
+ method: 'digital_card_art.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.digital_card_art.list()\npage = page.data[0]\nprint(page.token)',
+ },
+ ruby: {
+ method: 'digital_card_art.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.digital_card_art.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.digitalCardArt.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const digitalCardArt of client.digitalCardArt.list()) {\n console.log(digitalCardArt.token);\n}",
+ },
+ },
},
{
name: 'retrieve',
@@ -2713,20 +8351,103 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; card_program_token: string; created: string; description: string; is_enabled: boolean; network: 'MASTERCARD' | 'VISA'; is_card_program_default?: boolean; }",
markdown:
"## retrieve\n\n`client.digitalCardArt.retrieve(digital_card_art_token: string): { token: string; card_program_token: string; created: string; description: string; is_enabled: boolean; network: 'MASTERCARD' | 'VISA'; is_card_program_default?: boolean; }`\n\n**get** `/v1/digital_card_art/{digital_card_art_token}`\n\nGet digital card art by token.\n\n### Parameters\n\n- `digital_card_art_token: string`\n\n### Returns\n\n- `{ token: string; card_program_token: string; created: string; description: string; is_enabled: boolean; network: 'MASTERCARD' | 'VISA'; is_card_program_default?: boolean; }`\n\n - `token: string`\n - `card_program_token: string`\n - `created: string`\n - `description: string`\n - `is_enabled: boolean`\n - `network: 'MASTERCARD' | 'VISA'`\n - `is_card_program_default?: boolean`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst digitalCardArt = await client.digitalCardArt.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(digitalCardArt);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.DigitalCardArt.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdigitalCardArt, err := client.DigitalCardArt.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", digitalCardArt.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/digital_card_art/$DIGITAL_CARD_ART_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'digitalCardArt().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.DigitalCardArt;\nimport com.lithic.api.models.DigitalCardArtRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n DigitalCardArt digitalCardArt = client.digitalCardArt().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'digitalCardArt().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.DigitalCardArt\nimport com.lithic.api.models.DigitalCardArtRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val digitalCardArt: DigitalCardArt = client.digitalCardArt().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'digital_card_art.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndigital_card_art = client.digital_card_art.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(digital_card_art.token)',
+ },
+ ruby: {
+ method: 'digital_card_art.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndigital_card_art = lithic.digital_card_art.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(digital_card_art)',
+ },
+ typescript: {
+ method: 'client.digitalCardArt.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst digitalCardArt = await client.digitalCardArt.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(digitalCardArt.token);",
+ },
+ },
},
{
name: 'list',
- endpoint: '/v1/digital_card_art',
+ endpoint: '/v1/book_transfers',
httpMethod: 'get',
- summary: 'List digital card art',
- description: 'List digital card art.',
- stainlessPath: '(resource) digital_card_art > (method) list',
- qualified: 'client.digitalCardArt.list',
- params: ['ending_before?: string;', 'page_size?: number;', 'starting_after?: string;'],
+ summary: 'List book transfers',
+ description: 'List book transfers',
+ stainlessPath: '(resource) book_transfers > (method) list',
+ qualified: 'client.bookTransfers.list',
+ params: [
+ 'account_token?: string;',
+ 'begin?: string;',
+ 'business_account_token?: string;',
+ 'category?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'financial_account_token?: string;',
+ 'page_size?: number;',
+ "result?: 'APPROVED' | 'DECLINED';",
+ 'starting_after?: string;',
+ "status?: 'DECLINED' | 'SETTLED';",
+ ],
response:
- "{ token: string; card_program_token: string; created: string; description: string; is_enabled: boolean; network: 'MASTERCARD' | 'VISA'; is_card_program_default?: boolean; }",
+ "{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }",
markdown:
- "## list\n\n`client.digitalCardArt.list(ending_before?: string, page_size?: number, starting_after?: string): { token: string; card_program_token: string; created: string; description: string; is_enabled: boolean; network: 'MASTERCARD' | 'VISA'; is_card_program_default?: boolean; }`\n\n**get** `/v1/digital_card_art`\n\nList digital card art.\n\n### Parameters\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; card_program_token: string; created: string; description: string; is_enabled: boolean; network: 'MASTERCARD' | 'VISA'; is_card_program_default?: boolean; }`\n\n - `token: string`\n - `card_program_token: string`\n - `created: string`\n - `description: string`\n - `is_enabled: boolean`\n - `network: 'MASTERCARD' | 'VISA'`\n - `is_card_program_default?: boolean`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const digitalCardArt of client.digitalCardArt.list()) {\n console.log(digitalCardArt);\n}\n```",
+ "## list\n\n`client.bookTransfers.list(account_token?: string, begin?: string, business_account_token?: string, category?: string, end?: string, ending_before?: string, financial_account_token?: string, page_size?: number, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'DECLINED' | 'SETTLED'): { token: string; category: string; created: string; currency: string; events: object[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: external_resource; transaction_series?: object; }`\n\n**get** `/v1/book_transfers`\n\nList book transfers\n\n### Parameters\n\n- `account_token?: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `business_account_token?: string`\n\n- `category?: string`\n Book Transfer category to be returned.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `financial_account_token?: string`\n Globally unique identifier for the financial account or card that will send the funds. Accepted type dependent on the program's use case.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `result?: 'APPROVED' | 'DECLINED'`\n Book transfer result to be returned.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'DECLINED' | 'SETTLED'`\n Book transfer status to be returned.\n\n### Returns\n\n- `{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }`\n Book transfer transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `currency: string`\n - `events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]`\n - `family: 'TRANSFER'`\n - `from_financial_account_token: string`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `to_financial_account_token: string`\n - `updated: string`\n - `external_id?: string`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const bookTransferResponse of client.bookTransfers.list()) {\n console.log(bookTransferResponse);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.BookTransfers.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.BookTransfers.List(context.TODO(), lithic.BookTransferListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example: 'curl https://api.lithic.com/v1/book_transfers \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'bookTransfers().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.BookTransferListPage;\nimport com.lithic.api.models.BookTransferListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n BookTransferListPage page = client.bookTransfers().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'bookTransfers().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.BookTransferListPage\nimport com.lithic.api.models.BookTransferListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: BookTransferListPage = client.bookTransfers().list()\n}',
+ },
+ python: {
+ method: 'book_transfers.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.book_transfers.list()\npage = page.data[0]\nprint(page.external_id)',
+ },
+ ruby: {
+ method: 'book_transfers.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.book_transfers.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.bookTransfers.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const bookTransferResponse of client.bookTransfers.list()) {\n console.log(bookTransferResponse.external_id);\n}",
+ },
+ },
},
{
name: 'create',
@@ -2753,6 +8474,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }",
markdown:
"## create\n\n`client.bookTransfers.create(amount: number, category: string, from_financial_account_token: string, subtype: string, to_financial_account_token: string, type: string, token?: string, external_id?: string, hold_token?: string, memo?: string, on_closed_account?: 'FAIL' | 'USE_SUSPENSE'): { token: string; category: string; created: string; currency: string; events: object[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: external_resource; transaction_series?: object; }`\n\n**post** `/v1/book_transfers`\n\nBook transfer funds between two financial accounts or between a financial account and card\n\n### Parameters\n\n- `amount: number`\n Amount to be transferred in the currency's smallest unit (e.g., cents for USD). This should always be a positive value.\n\n- `category: string`\n\n- `from_financial_account_token: string`\n Globally unique identifier for the financial account or card that will send the funds. Accepted type dependent on the program's use case.\n\n- `subtype: string`\n The program specific subtype code for the specified category/type.\n\n- `to_financial_account_token: string`\n Globally unique identifier for the financial account or card that will receive the funds. Accepted type dependent on the program's use case.\n\n- `type: string`\n Type of the book transfer\n\n- `token?: string`\n Customer-provided token that will serve as an idempotency token. This token will become the transaction token.\n\n- `external_id?: string`\n External ID defined by the customer\n\n- `hold_token?: string`\n Token of an existing hold to settle when this transfer is initiated\n\n- `memo?: string`\n Optional descriptor for the transfer.\n\n- `on_closed_account?: 'FAIL' | 'USE_SUSPENSE'`\n What to do if the financial account is closed when posting an operation\n\n### Returns\n\n- `{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }`\n Book transfer transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `currency: string`\n - `events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]`\n - `family: 'TRANSFER'`\n - `from_financial_account_token: string`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `to_financial_account_token: string`\n - `updated: string`\n - `external_id?: string`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst bookTransferResponse = await client.bookTransfers.create({\n amount: 1,\n category: 'ADJUSTMENT',\n from_financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n subtype: 'subtype',\n to_financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n type: 'ATM_BALANCE_INQUIRY',\n});\n\nconsole.log(bookTransferResponse);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.BookTransfers.New',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tbookTransferResponse, err := client.BookTransfers.New(context.TODO(), lithic.BookTransferNewParams{\n\t\tAmount: lithic.F(int64(1)),\n\t\tCategory: lithic.F(lithic.BookTransferNewParamsCategoryAdjustment),\n\t\tFromFinancialAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tSubtype: lithic.F("subtype"),\n\t\tToFinancialAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tType: lithic.F(lithic.BookTransferNewParamsTypeAtmBalanceInquiry),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", bookTransferResponse.ExternalID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/book_transfers \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 1,\n "category": "ADJUSTMENT",\n "from_financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "subtype": "subtype",\n "to_financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "type": "ATM_BALANCE_INQUIRY"\n }\'',
+ },
+ java: {
+ method: 'bookTransfers().create',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.BookTransferCreateParams;\nimport com.lithic.api.models.BookTransferResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n BookTransferCreateParams params = BookTransferCreateParams.builder()\n .amount(1L)\n .category(BookTransferCreateParams.BookTransferCategory.ADJUSTMENT)\n .fromFinancialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .subtype("subtype")\n .toFinancialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .type(BookTransferCreateParams.BookTransferType.ATM_BALANCE_INQUIRY)\n .build();\n BookTransferResponse bookTransferResponse = client.bookTransfers().create(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'bookTransfers().create',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.BookTransferCreateParams\nimport com.lithic.api.models.BookTransferResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: BookTransferCreateParams = BookTransferCreateParams.builder()\n .amount(1L)\n .category(BookTransferCreateParams.BookTransferCategory.ADJUSTMENT)\n .fromFinancialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .subtype("subtype")\n .toFinancialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .type(BookTransferCreateParams.BookTransferType.ATM_BALANCE_INQUIRY)\n .build()\n val bookTransferResponse: BookTransferResponse = client.bookTransfers().create(params)\n}',
+ },
+ python: {
+ method: 'book_transfers.create',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nbook_transfer_response = client.book_transfers.create(\n amount=1,\n category="ADJUSTMENT",\n from_financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n subtype="subtype",\n to_financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n type="ATM_BALANCE_INQUIRY",\n)\nprint(book_transfer_response.external_id)',
+ },
+ ruby: {
+ method: 'book_transfers.create',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nbook_transfer_response = lithic.book_transfers.create(\n amount: 1,\n category: :ADJUSTMENT,\n from_financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n subtype: "subtype",\n to_financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n type: :ATM_BALANCE_INQUIRY\n)\n\nputs(book_transfer_response)',
+ },
+ typescript: {
+ method: 'client.bookTransfers.create',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst bookTransferResponse = await client.bookTransfers.create({\n amount: 1,\n category: 'ADJUSTMENT',\n from_financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n subtype: 'subtype',\n to_financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n type: 'ATM_BALANCE_INQUIRY',\n});\n\nconsole.log(bookTransferResponse.external_id);",
+ },
+ },
},
{
name: 'retrieve',
@@ -2767,32 +8524,92 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }",
markdown:
"## retrieve\n\n`client.bookTransfers.retrieve(book_transfer_token: string): { token: string; category: string; created: string; currency: string; events: object[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: external_resource; transaction_series?: object; }`\n\n**get** `/v1/book_transfers/{book_transfer_token}`\n\nGet book transfer by token\n\n### Parameters\n\n- `book_transfer_token: string`\n\n### Returns\n\n- `{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }`\n Book transfer transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `currency: string`\n - `events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]`\n - `family: 'TRANSFER'`\n - `from_financial_account_token: string`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `to_financial_account_token: string`\n - `updated: string`\n - `external_id?: string`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst bookTransferResponse = await client.bookTransfers.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(bookTransferResponse);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.BookTransfers.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tbookTransferResponse, err := client.BookTransfers.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", bookTransferResponse.ExternalID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/book_transfers/$BOOK_TRANSFER_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'bookTransfers().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.BookTransferResponse;\nimport com.lithic.api.models.BookTransferRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n BookTransferResponse bookTransferResponse = client.bookTransfers().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'bookTransfers().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.BookTransferResponse\nimport com.lithic.api.models.BookTransferRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val bookTransferResponse: BookTransferResponse = client.bookTransfers().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'book_transfers.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nbook_transfer_response = client.book_transfers.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(book_transfer_response.external_id)',
+ },
+ ruby: {
+ method: 'book_transfers.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nbook_transfer_response = lithic.book_transfers.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(book_transfer_response)',
+ },
+ typescript: {
+ method: 'client.bookTransfers.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst bookTransferResponse = await client.bookTransfers.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(bookTransferResponse.external_id);",
+ },
+ },
},
{
- name: 'list',
- endpoint: '/v1/book_transfers',
- httpMethod: 'get',
- summary: 'List book transfers',
- description: 'List book transfers',
- stainlessPath: '(resource) book_transfers > (method) list',
- qualified: 'client.bookTransfers.list',
- params: [
- 'account_token?: string;',
- 'begin?: string;',
- 'business_account_token?: string;',
- 'category?: string;',
- 'end?: string;',
- 'ending_before?: string;',
- 'financial_account_token?: string;',
- 'page_size?: number;',
- "result?: 'APPROVED' | 'DECLINED';",
- 'starting_after?: string;',
- "status?: 'DECLINED' | 'SETTLED';",
- ],
+ name: 'reverse',
+ endpoint: '/v1/book_transfers/{book_transfer_token}/reverse',
+ httpMethod: 'post',
+ summary: 'Reverse book transfer',
+ description: 'Reverse a book transfer',
+ stainlessPath: '(resource) book_transfers > (method) reverse',
+ qualified: 'client.bookTransfers.reverse',
+ params: ['book_transfer_token: string;', 'memo?: string;'],
response:
"{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }",
markdown:
- "## list\n\n`client.bookTransfers.list(account_token?: string, begin?: string, business_account_token?: string, category?: string, end?: string, ending_before?: string, financial_account_token?: string, page_size?: number, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'DECLINED' | 'SETTLED'): { token: string; category: string; created: string; currency: string; events: object[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: external_resource; transaction_series?: object; }`\n\n**get** `/v1/book_transfers`\n\nList book transfers\n\n### Parameters\n\n- `account_token?: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `business_account_token?: string`\n\n- `category?: string`\n Book Transfer category to be returned.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `financial_account_token?: string`\n Globally unique identifier for the financial account or card that will send the funds. Accepted type dependent on the program's use case.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `result?: 'APPROVED' | 'DECLINED'`\n Book transfer result to be returned.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'DECLINED' | 'SETTLED'`\n Book transfer status to be returned.\n\n### Returns\n\n- `{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }`\n Book transfer transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `currency: string`\n - `events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]`\n - `family: 'TRANSFER'`\n - `from_financial_account_token: string`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `to_financial_account_token: string`\n - `updated: string`\n - `external_id?: string`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const bookTransferResponse of client.bookTransfers.list()) {\n console.log(bookTransferResponse);\n}\n```",
+ "## reverse\n\n`client.bookTransfers.reverse(book_transfer_token: string, memo?: string): { token: string; category: string; created: string; currency: string; events: object[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: external_resource; transaction_series?: object; }`\n\n**post** `/v1/book_transfers/{book_transfer_token}/reverse`\n\nReverse a book transfer\n\n### Parameters\n\n- `book_transfer_token: string`\n\n- `memo?: string`\n Optional descriptor for the reversal.\n\n### Returns\n\n- `{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }`\n Book transfer transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `currency: string`\n - `events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]`\n - `family: 'TRANSFER'`\n - `from_financial_account_token: string`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `to_financial_account_token: string`\n - `updated: string`\n - `external_id?: string`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst bookTransferResponse = await client.bookTransfers.reverse('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(bookTransferResponse);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.BookTransfers.Reverse',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tbookTransferResponse, err := client.BookTransfers.Reverse(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.BookTransferReverseParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", bookTransferResponse.ExternalID)\n}\n',
+ },
+ http: {
+ example:
+ "curl https://api.lithic.com/v1/book_transfers/$BOOK_TRANSFER_TOKEN/reverse \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ },
+ java: {
+ method: 'bookTransfers().reverse',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.BookTransferResponse;\nimport com.lithic.api.models.BookTransferReverseParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n BookTransferResponse bookTransferResponse = client.bookTransfers().reverse("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'bookTransfers().reverse',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.BookTransferResponse\nimport com.lithic.api.models.BookTransferReverseParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val bookTransferResponse: BookTransferResponse = client.bookTransfers().reverse("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'book_transfers.reverse',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nbook_transfer_response = client.book_transfers.reverse(\n book_transfer_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(book_transfer_response.external_id)',
+ },
+ ruby: {
+ method: 'book_transfers.reverse',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nbook_transfer_response = lithic.book_transfers.reverse("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(book_transfer_response)',
+ },
+ typescript: {
+ method: 'client.bookTransfers.reverse',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst bookTransferResponse = await client.bookTransfers.reverse(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(bookTransferResponse.external_id);",
+ },
+ },
},
{
name: 'retry',
@@ -2807,20 +8624,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }",
markdown:
"## retry\n\n`client.bookTransfers.retry(book_transfer_token: string, retry_token: string): { token: string; category: string; created: string; currency: string; events: object[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: external_resource; transaction_series?: object; }`\n\n**post** `/v1/book_transfers/{book_transfer_token}/retry`\n\nRetry a book transfer that has been declined\n\n### Parameters\n\n- `book_transfer_token: string`\n\n- `retry_token: string`\n Customer-provided token that will serve as an idempotency token. This token will become the transaction token.\n\n### Returns\n\n- `{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }`\n Book transfer transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `currency: string`\n - `events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]`\n - `family: 'TRANSFER'`\n - `from_financial_account_token: string`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `to_financial_account_token: string`\n - `updated: string`\n - `external_id?: string`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst bookTransferResponse = await client.bookTransfers.retry('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { retry_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(bookTransferResponse);\n```",
- },
- {
- name: 'reverse',
- endpoint: '/v1/book_transfers/{book_transfer_token}/reverse',
- httpMethod: 'post',
- summary: 'Reverse book transfer',
- description: 'Reverse a book transfer',
- stainlessPath: '(resource) book_transfers > (method) reverse',
- qualified: 'client.bookTransfers.reverse',
- params: ['book_transfer_token: string;', 'memo?: string;'],
- response:
- "{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }",
- markdown:
- "## reverse\n\n`client.bookTransfers.reverse(book_transfer_token: string, memo?: string): { token: string; category: string; created: string; currency: string; events: object[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: external_resource; transaction_series?: object; }`\n\n**post** `/v1/book_transfers/{book_transfer_token}/reverse`\n\nReverse a book transfer\n\n### Parameters\n\n- `book_transfer_token: string`\n\n- `memo?: string`\n Optional descriptor for the reversal.\n\n### Returns\n\n- `{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }`\n Book transfer transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `currency: string`\n - `events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]`\n - `family: 'TRANSFER'`\n - `from_financial_account_token: string`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `to_financial_account_token: string`\n - `updated: string`\n - `external_id?: string`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst bookTransferResponse = await client.bookTransfers.reverse('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(bookTransferResponse);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.BookTransfers.Retry',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tbookTransferResponse, err := client.BookTransfers.Retry(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.BookTransferRetryParams{\n\t\t\tRetryToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", bookTransferResponse.ExternalID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/book_transfers/$BOOK_TRANSFER_TOKEN/retry \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "retry_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n }\'',
+ },
+ java: {
+ method: 'bookTransfers().retry',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.BookTransferResponse;\nimport com.lithic.api.models.BookTransferRetryParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n BookTransferRetryParams params = BookTransferRetryParams.builder()\n .bookTransferToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .retryToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build();\n BookTransferResponse bookTransferResponse = client.bookTransfers().retry(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'bookTransfers().retry',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.BookTransferResponse\nimport com.lithic.api.models.BookTransferRetryParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: BookTransferRetryParams = BookTransferRetryParams.builder()\n .bookTransferToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .retryToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val bookTransferResponse: BookTransferResponse = client.bookTransfers().retry(params)\n}',
+ },
+ python: {
+ method: 'book_transfers.retry',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nbook_transfer_response = client.book_transfers.retry(\n book_transfer_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n retry_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(book_transfer_response.external_id)',
+ },
+ ruby: {
+ method: 'book_transfers.retry_',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nbook_transfer_response = lithic.book_transfers.retry_(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n retry_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(book_transfer_response)',
+ },
+ typescript: {
+ method: 'client.bookTransfers.retry',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst bookTransferResponse = await client.bookTransfers.retry(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { retry_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(bookTransferResponse.external_id);",
+ },
+ },
},
{
name: 'retrieve',
@@ -2833,7 +8672,92 @@ const EMBEDDED_METHODS: MethodEntry[] = [
params: ['credit_product_token: string;'],
response: '{ credit_extended: number; }',
markdown:
- "## retrieve\n\n`client.creditProducts.extendedCredit.retrieve(credit_product_token: string): { credit_extended: number; }`\n\n**get** `/v1/credit_products/{credit_product_token}/extended_credit`\n\nGet the extended credit for a given credit product under a program\n\n### Parameters\n\n- `credit_product_token: string`\n\n### Returns\n\n- `{ credit_extended: number; }`\n\n - `credit_extended: number`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst extendedCredit = await client.creditProducts.extendedCredit.retrieve('credit_product_token');\n\nconsole.log(extendedCredit);\n```",
+ "## retrieve\n\n`client.creditProducts.extendedCredit.retrieve(credit_product_token: string): { credit_extended: number; }`\n\n**get** `/v1/credit_products/{credit_product_token}/extended_credit`\n\nGet the extended credit for a given credit product under a program\n\n### Parameters\n\n- `credit_product_token: string`\n\n### Returns\n\n- `{ credit_extended: number; }`\n\n - `credit_extended: number`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst extendedCredit = await client.creditProducts.extendedCredit.retrieve('credit_product_token');\n\nconsole.log(extendedCredit);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.CreditProducts.ExtendedCredit.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\textendedCredit, err := client.CreditProducts.ExtendedCredit.Get(context.TODO(), "credit_product_token")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", extendedCredit.CreditExtended)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/credit_products/$CREDIT_PRODUCT_TOKEN/extended_credit \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'creditProducts().extendedCredit().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.CreditProductExtendedCreditRetrieveParams;\nimport com.lithic.api.models.ExtendedCredit;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ExtendedCredit extendedCredit = client.creditProducts().extendedCredit().retrieve("credit_product_token");\n }\n}',
+ },
+ kotlin: {
+ method: 'creditProducts().extendedCredit().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CreditProductExtendedCreditRetrieveParams\nimport com.lithic.api.models.ExtendedCredit\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val extendedCredit: ExtendedCredit = client.creditProducts().extendedCredit().retrieve("credit_product_token")\n}',
+ },
+ python: {
+ method: 'credit_products.extended_credit.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nextended_credit = client.credit_products.extended_credit.retrieve(\n "credit_product_token",\n)\nprint(extended_credit.credit_extended)',
+ },
+ ruby: {
+ method: 'credit_products.extended_credit.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nextended_credit = lithic.credit_products.extended_credit.retrieve("credit_product_token")\n\nputs(extended_credit)',
+ },
+ typescript: {
+ method: 'client.creditProducts.extendedCredit.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst extendedCredit = await client.creditProducts.extendedCredit.retrieve('credit_product_token');\n\nconsole.log(extendedCredit.credit_extended);",
+ },
+ },
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/credit_products/{credit_product_token}/prime_rates',
+ httpMethod: 'get',
+ summary: 'Get Credit Product Prime Rates',
+ description: 'Get Credit Product Prime Rates',
+ stainlessPath: '(resource) credit_products.prime_rates > (method) retrieve',
+ qualified: 'client.creditProducts.primeRates.retrieve',
+ params: ['credit_product_token: string;', 'ending_before?: string;', 'starting_after?: string;'],
+ response: '{ data: { effective_date: string; rate: string; }[]; has_more: boolean; }',
+ markdown:
+ "## retrieve\n\n`client.creditProducts.primeRates.retrieve(credit_product_token: string, ending_before?: string, starting_after?: string): { data: object[]; has_more: boolean; }`\n\n**get** `/v1/credit_products/{credit_product_token}/prime_rates`\n\nGet Credit Product Prime Rates\n\n### Parameters\n\n- `credit_product_token: string`\n Globally unique identifier for credit products.\n\n- `ending_before?: string`\n The effective date that the prime rates ends before\n\n- `starting_after?: string`\n The effective date that the prime rate starts after\n\n### Returns\n\n- `{ data: { effective_date: string; rate: string; }[]; has_more: boolean; }`\n\n - `data: { effective_date: string; rate: string; }[]`\n - `has_more: boolean`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst primeRate = await client.creditProducts.primeRates.retrieve('credit_product_token');\n\nconsole.log(primeRate);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.CreditProducts.PrimeRates.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tprimeRate, err := client.CreditProducts.PrimeRates.Get(\n\t\tcontext.TODO(),\n\t\t"credit_product_token",\n\t\tlithic.CreditProductPrimeRateGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", primeRate.Data)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/credit_products/$CREDIT_PRODUCT_TOKEN/prime_rates \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'creditProducts().primeRates().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.CreditProductPrimeRateRetrieveParams;\nimport com.lithic.api.models.PrimeRateRetrieveResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n PrimeRateRetrieveResponse primeRate = client.creditProducts().primeRates().retrieve("credit_product_token");\n }\n}',
+ },
+ kotlin: {
+ method: 'creditProducts().primeRates().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CreditProductPrimeRateRetrieveParams\nimport com.lithic.api.models.PrimeRateRetrieveResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val primeRate: PrimeRateRetrieveResponse = client.creditProducts().primeRates().retrieve("credit_product_token")\n}',
+ },
+ python: {
+ method: 'credit_products.prime_rates.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nprime_rate = client.credit_products.prime_rates.retrieve(\n credit_product_token="credit_product_token",\n)\nprint(prime_rate.data)',
+ },
+ ruby: {
+ method: 'credit_products.prime_rates.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nprime_rate = lithic.credit_products.prime_rates.retrieve("credit_product_token")\n\nputs(prime_rate)',
+ },
+ typescript: {
+ method: 'client.creditProducts.primeRates.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst primeRate = await client.creditProducts.primeRates.retrieve('credit_product_token');\n\nconsole.log(primeRate.data);",
+ },
+ },
},
{
name: 'create',
@@ -2846,19 +8770,103 @@ const EMBEDDED_METHODS: MethodEntry[] = [
params: ['credit_product_token: string;', 'effective_date: string;', 'rate: string;'],
markdown:
"## create\n\n`client.creditProducts.primeRates.create(credit_product_token: string, effective_date: string, rate: string): void`\n\n**post** `/v1/credit_products/{credit_product_token}/prime_rates`\n\nPost Credit Product Prime Rate\n\n### Parameters\n\n- `credit_product_token: string`\n Globally unique identifier for credit products.\n\n- `effective_date: string`\n Date the rate goes into effect\n\n- `rate: string`\n The rate in decimal format\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.creditProducts.primeRates.create('credit_product_token', { effective_date: '2019-12-27', rate: 'rate' })\n```",
+ perLanguage: {
+ go: {
+ method: 'client.CreditProducts.PrimeRates.New',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.CreditProducts.PrimeRates.New(\n\t\tcontext.TODO(),\n\t\t"credit_product_token",\n\t\tlithic.CreditProductPrimeRateNewParams{\n\t\t\tEffectiveDate: lithic.F(time.Now()),\n\t\t\tRate: lithic.F("rate"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/credit_products/$CREDIT_PRODUCT_TOKEN/prime_rates \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "effective_date": "2019-12-27",\n "rate": "rate"\n }\'',
+ },
+ java: {
+ method: 'creditProducts().primeRates().create',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.CreditProductPrimeRateCreateParams;\nimport java.time.LocalDate;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n CreditProductPrimeRateCreateParams params = CreditProductPrimeRateCreateParams.builder()\n .creditProductToken("credit_product_token")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .rate("rate")\n .build();\n client.creditProducts().primeRates().create(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'creditProducts().primeRates().create',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CreditProductPrimeRateCreateParams\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: CreditProductPrimeRateCreateParams = CreditProductPrimeRateCreateParams.builder()\n .creditProductToken("credit_product_token")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .rate("rate")\n .build()\n client.creditProducts().primeRates().create(params)\n}',
+ },
+ python: {
+ method: 'credit_products.prime_rates.create',
+ example:
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.credit_products.prime_rates.create(\n credit_product_token="credit_product_token",\n effective_date=date.fromisoformat("2019-12-27"),\n rate="rate",\n)',
+ },
+ ruby: {
+ method: 'credit_products.prime_rates.create',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.credit_products.prime_rates.create(\n "credit_product_token",\n effective_date: "2019-12-27",\n rate: "rate"\n)\n\nputs(result)',
+ },
+ typescript: {
+ method: 'client.creditProducts.primeRates.create',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.creditProducts.primeRates.create('credit_product_token', {\n effective_date: '2019-12-27',\n rate: 'rate',\n});",
+ },
+ },
},
{
- name: 'retrieve',
- endpoint: '/v1/credit_products/{credit_product_token}/prime_rates',
+ name: 'list',
+ endpoint: '/v1/external_payments',
httpMethod: 'get',
- summary: 'Get Credit Product Prime Rates',
- description: 'Get Credit Product Prime Rates',
- stainlessPath: '(resource) credit_products.prime_rates > (method) retrieve',
- qualified: 'client.creditProducts.primeRates.retrieve',
- params: ['credit_product_token: string;', 'ending_before?: string;', 'starting_after?: string;'],
- response: '{ data: { effective_date: string; rate: string; }[]; has_more: boolean; }',
+ summary: 'List external payments',
+ description: 'List external payments',
+ stainlessPath: '(resource) external_payments > (method) list',
+ qualified: 'client.externalPayments.list',
+ params: [
+ 'begin?: string;',
+ 'business_account_token?: string;',
+ 'category?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'financial_account_token?: string;',
+ 'page_size?: number;',
+ "result?: 'APPROVED' | 'DECLINED';",
+ 'starting_after?: string;',
+ "status?: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED';",
+ ],
+ response:
+ "{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }",
markdown:
- "## retrieve\n\n`client.creditProducts.primeRates.retrieve(credit_product_token: string, ending_before?: string, starting_after?: string): { data: object[]; has_more: boolean; }`\n\n**get** `/v1/credit_products/{credit_product_token}/prime_rates`\n\nGet Credit Product Prime Rates\n\n### Parameters\n\n- `credit_product_token: string`\n Globally unique identifier for credit products.\n\n- `ending_before?: string`\n The effective date that the prime rates ends before\n\n- `starting_after?: string`\n The effective date that the prime rate starts after\n\n### Returns\n\n- `{ data: { effective_date: string; rate: string; }[]; has_more: boolean; }`\n\n - `data: { effective_date: string; rate: string; }[]`\n - `has_more: boolean`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst primeRate = await client.creditProducts.primeRates.retrieve('credit_product_token');\n\nconsole.log(primeRate);\n```",
+ "## list\n\n`client.externalPayments.list(begin?: string, business_account_token?: string, category?: string, end?: string, ending_before?: string, financial_account_token?: string, page_size?: number, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**get** `/v1/external_payments`\n\nList external payments\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `business_account_token?: string`\n\n- `category?: string`\n External Payment category to be returned.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `financial_account_token?: string`\n Globally unique identifier for the financial account or card that will send the funds. Accepted type dependent on the program's use case.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `result?: 'APPROVED' | 'DECLINED'`\n External Payment result to be returned.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n Book transfer status to be returned.\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const externalPayment of client.externalPayments.list()) {\n console.log(externalPayment);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ExternalPayments.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.ExternalPayments.List(context.TODO(), lithic.ExternalPaymentListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/external_payments \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'externalPayments().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ExternalPaymentListPage;\nimport com.lithic.api.models.ExternalPaymentListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ExternalPaymentListPage page = client.externalPayments().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'externalPayments().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalPaymentListPage\nimport com.lithic.api.models.ExternalPaymentListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: ExternalPaymentListPage = client.externalPayments().list()\n}',
+ },
+ python: {
+ method: 'external_payments.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.external_payments.list()\npage = page.data[0]\nprint(page.user_defined_id)',
+ },
+ ruby: {
+ method: 'external_payments.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.external_payments.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.externalPayments.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const externalPayment of client.externalPayments.list()) {\n console.log(externalPayment.user_defined_id);\n}",
+ },
+ },
},
{
name: 'create',
@@ -2883,6 +8891,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }",
markdown:
"## create\n\n`client.externalPayments.create(amount: number, category: string, effective_date: string, financial_account_token: string, payment_type: 'DEPOSIT' | 'WITHDRAWAL', token?: string, memo?: string, progress_to?: 'SETTLED' | 'RELEASED', user_defined_id?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**post** `/v1/external_payments`\n\nCreate external payment\n\n### Parameters\n\n- `amount: number`\n\n- `category: string`\n\n- `effective_date: string`\n\n- `financial_account_token: string`\n\n- `payment_type: 'DEPOSIT' | 'WITHDRAWAL'`\n\n- `token?: string`\n Customer-provided token that will serve as an idempotency token. This token will become the transaction token.\n\n- `memo?: string`\n\n- `progress_to?: 'SETTLED' | 'RELEASED'`\n\n- `user_defined_id?: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalPayment = await client.externalPayments.create({\n amount: 0,\n category: 'EXTERNAL_WIRE',\n effective_date: '2019-12-27',\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n payment_type: 'DEPOSIT',\n});\n\nconsole.log(externalPayment);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ExternalPayments.New',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalPayment, err := client.ExternalPayments.New(context.TODO(), lithic.ExternalPaymentNewParams{\n\t\tAmount: lithic.F(int64(0)),\n\t\tCategory: lithic.F(lithic.ExternalPaymentNewParamsCategoryExternalWire),\n\t\tEffectiveDate: lithic.F(time.Now()),\n\t\tFinancialAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tPaymentType: lithic.F(lithic.ExternalPaymentNewParamsPaymentTypeDeposit),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalPayment.UserDefinedID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/external_payments \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 0,\n "category": "EXTERNAL_WIRE",\n "effective_date": "2019-12-27",\n "financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "payment_type": "DEPOSIT"\n }\'',
+ },
+ java: {
+ method: 'externalPayments().create',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ExternalPayment;\nimport com.lithic.api.models.ExternalPaymentCreateParams;\nimport java.time.LocalDate;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ExternalPaymentCreateParams params = ExternalPaymentCreateParams.builder()\n .amount(0L)\n .category(ExternalPaymentCreateParams.ExternalPaymentCategory.EXTERNAL_WIRE)\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .paymentType(ExternalPaymentCreateParams.ExternalPaymentDirection.DEPOSIT)\n .build();\n ExternalPayment externalPayment = client.externalPayments().create(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'externalPayments().create',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalPayment\nimport com.lithic.api.models.ExternalPaymentCreateParams\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ExternalPaymentCreateParams = ExternalPaymentCreateParams.builder()\n .amount(0L)\n .category(ExternalPaymentCreateParams.ExternalPaymentCategory.EXTERNAL_WIRE)\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .paymentType(ExternalPaymentCreateParams.ExternalPaymentDirection.DEPOSIT)\n .build()\n val externalPayment: ExternalPayment = client.externalPayments().create(params)\n}',
+ },
+ python: {
+ method: 'external_payments.create',
+ example:
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_payment = client.external_payments.create(\n amount=0,\n category="EXTERNAL_WIRE",\n effective_date=date.fromisoformat("2019-12-27"),\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n payment_type="DEPOSIT",\n)\nprint(external_payment.user_defined_id)',
+ },
+ ruby: {
+ method: 'external_payments.create',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_payment = lithic.external_payments.create(\n amount: 0,\n category: :EXTERNAL_WIRE,\n effective_date: "2019-12-27",\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n payment_type: :DEPOSIT\n)\n\nputs(external_payment)',
+ },
+ typescript: {
+ method: 'client.externalPayments.create',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalPayment = await client.externalPayments.create({\n amount: 0,\n category: 'EXTERNAL_WIRE',\n effective_date: '2019-12-27',\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n payment_type: 'DEPOSIT',\n});\n\nconsole.log(externalPayment.user_defined_id);",
+ },
+ },
},
{
name: 'retrieve',
@@ -2897,45 +8941,97 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }",
markdown:
"## retrieve\n\n`client.externalPayments.retrieve(external_payment_token: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**get** `/v1/external_payments/{external_payment_token}`\n\nGet external payment\n\n### Parameters\n\n- `external_payment_token: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalPayment = await client.externalPayments.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(externalPayment);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ExternalPayments.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalPayment, err := client.ExternalPayments.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalPayment.UserDefinedID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/external_payments/$EXTERNAL_PAYMENT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'externalPayments().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ExternalPayment;\nimport com.lithic.api.models.ExternalPaymentRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ExternalPayment externalPayment = client.externalPayments().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'externalPayments().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalPayment\nimport com.lithic.api.models.ExternalPaymentRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val externalPayment: ExternalPayment = client.externalPayments().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'external_payments.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_payment = client.external_payments.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(external_payment.user_defined_id)',
+ },
+ ruby: {
+ method: 'external_payments.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_payment = lithic.external_payments.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(external_payment)',
+ },
+ typescript: {
+ method: 'client.externalPayments.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalPayment = await client.externalPayments.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(externalPayment.user_defined_id);",
+ },
+ },
},
{
- name: 'list',
- endpoint: '/v1/external_payments',
- httpMethod: 'get',
- summary: 'List external payments',
- description: 'List external payments',
- stainlessPath: '(resource) external_payments > (method) list',
- qualified: 'client.externalPayments.list',
+ name: 'settle',
+ endpoint: '/v1/external_payments/{external_payment_token}/settle',
+ httpMethod: 'post',
+ summary: 'Settle external payment',
+ description: 'Settle external payment',
+ stainlessPath: '(resource) external_payments > (method) settle',
+ qualified: 'client.externalPayments.settle',
params: [
- 'begin?: string;',
- 'business_account_token?: string;',
- 'category?: string;',
- 'end?: string;',
- 'ending_before?: string;',
- 'financial_account_token?: string;',
- 'page_size?: number;',
- "result?: 'APPROVED' | 'DECLINED';",
- 'starting_after?: string;',
- "status?: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED';",
+ 'external_payment_token: string;',
+ 'effective_date: string;',
+ 'memo?: string;',
+ "progress_to?: 'SETTLED' | 'RELEASED';",
],
response:
"{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }",
markdown:
- "## list\n\n`client.externalPayments.list(begin?: string, business_account_token?: string, category?: string, end?: string, ending_before?: string, financial_account_token?: string, page_size?: number, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**get** `/v1/external_payments`\n\nList external payments\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `business_account_token?: string`\n\n- `category?: string`\n External Payment category to be returned.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `financial_account_token?: string`\n Globally unique identifier for the financial account or card that will send the funds. Accepted type dependent on the program's use case.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `result?: 'APPROVED' | 'DECLINED'`\n External Payment result to be returned.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n Book transfer status to be returned.\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const externalPayment of client.externalPayments.list()) {\n console.log(externalPayment);\n}\n```",
- },
- {
- name: 'cancel',
- endpoint: '/v1/external_payments/{external_payment_token}/cancel',
- httpMethod: 'post',
- summary: 'Cancel external payment',
- description: 'Cancel external payment',
- stainlessPath: '(resource) external_payments > (method) cancel',
- qualified: 'client.externalPayments.cancel',
- params: ['external_payment_token: string;', 'effective_date: string;', 'memo?: string;'],
- response:
- "{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }",
- markdown:
- "## cancel\n\n`client.externalPayments.cancel(external_payment_token: string, effective_date: string, memo?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**post** `/v1/external_payments/{external_payment_token}/cancel`\n\nCancel external payment\n\n### Parameters\n\n- `external_payment_token: string`\n\n- `effective_date: string`\n\n- `memo?: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalPayment = await client.externalPayments.cancel('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { effective_date: '2019-12-27' });\n\nconsole.log(externalPayment);\n```",
+ "## settle\n\n`client.externalPayments.settle(external_payment_token: string, effective_date: string, memo?: string, progress_to?: 'SETTLED' | 'RELEASED'): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**post** `/v1/external_payments/{external_payment_token}/settle`\n\nSettle external payment\n\n### Parameters\n\n- `external_payment_token: string`\n\n- `effective_date: string`\n\n- `memo?: string`\n\n- `progress_to?: 'SETTLED' | 'RELEASED'`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalPayment = await client.externalPayments.settle('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { effective_date: '2019-12-27' });\n\nconsole.log(externalPayment);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ExternalPayments.Settle',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalPayment, err := client.ExternalPayments.Settle(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalPaymentSettleParams{\n\t\t\tEffectiveDate: lithic.F(time.Now()),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalPayment.UserDefinedID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/external_payments/$EXTERNAL_PAYMENT_TOKEN/settle \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "effective_date": "2019-12-27"\n }\'',
+ },
+ java: {
+ method: 'externalPayments().settle',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ExternalPayment;\nimport com.lithic.api.models.ExternalPaymentSettleParams;\nimport java.time.LocalDate;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ExternalPaymentSettleParams params = ExternalPaymentSettleParams.builder()\n .externalPaymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build();\n ExternalPayment externalPayment = client.externalPayments().settle(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'externalPayments().settle',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalPayment\nimport com.lithic.api.models.ExternalPaymentSettleParams\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ExternalPaymentSettleParams = ExternalPaymentSettleParams.builder()\n .externalPaymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build()\n val externalPayment: ExternalPayment = client.externalPayments().settle(params)\n}',
+ },
+ python: {
+ method: 'external_payments.settle',
+ example:
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_payment = client.external_payments.settle(\n external_payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n effective_date=date.fromisoformat("2019-12-27"),\n)\nprint(external_payment.user_defined_id)',
+ },
+ ruby: {
+ method: 'external_payments.settle',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_payment = lithic.external_payments.settle("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", effective_date: "2019-12-27")\n\nputs(external_payment)',
+ },
+ typescript: {
+ method: 'client.externalPayments.settle',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalPayment = await client.externalPayments.settle(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { effective_date: '2019-12-27' },\n);\n\nconsole.log(externalPayment.user_defined_id);",
+ },
+ },
},
{
name: 'release',
@@ -2950,6 +9046,92 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }",
markdown:
"## release\n\n`client.externalPayments.release(external_payment_token: string, effective_date: string, memo?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**post** `/v1/external_payments/{external_payment_token}/release`\n\nRelease external payment\n\n### Parameters\n\n- `external_payment_token: string`\n\n- `effective_date: string`\n\n- `memo?: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalPayment = await client.externalPayments.release('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { effective_date: '2019-12-27' });\n\nconsole.log(externalPayment);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ExternalPayments.Release',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalPayment, err := client.ExternalPayments.Release(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalPaymentReleaseParams{\n\t\t\tEffectiveDate: lithic.F(time.Now()),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalPayment.UserDefinedID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/external_payments/$EXTERNAL_PAYMENT_TOKEN/release \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "effective_date": "2019-12-27"\n }\'',
+ },
+ java: {
+ method: 'externalPayments().release',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ExternalPayment;\nimport com.lithic.api.models.ExternalPaymentReleaseParams;\nimport java.time.LocalDate;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ExternalPaymentReleaseParams params = ExternalPaymentReleaseParams.builder()\n .externalPaymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build();\n ExternalPayment externalPayment = client.externalPayments().release(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'externalPayments().release',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalPayment\nimport com.lithic.api.models.ExternalPaymentReleaseParams\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ExternalPaymentReleaseParams = ExternalPaymentReleaseParams.builder()\n .externalPaymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build()\n val externalPayment: ExternalPayment = client.externalPayments().release(params)\n}',
+ },
+ python: {
+ method: 'external_payments.release',
+ example:
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_payment = client.external_payments.release(\n external_payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n effective_date=date.fromisoformat("2019-12-27"),\n)\nprint(external_payment.user_defined_id)',
+ },
+ ruby: {
+ method: 'external_payments.release',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_payment = lithic.external_payments.release("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", effective_date: "2019-12-27")\n\nputs(external_payment)',
+ },
+ typescript: {
+ method: 'client.externalPayments.release',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalPayment = await client.externalPayments.release(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { effective_date: '2019-12-27' },\n);\n\nconsole.log(externalPayment.user_defined_id);",
+ },
+ },
+ },
+ {
+ name: 'cancel',
+ endpoint: '/v1/external_payments/{external_payment_token}/cancel',
+ httpMethod: 'post',
+ summary: 'Cancel external payment',
+ description: 'Cancel external payment',
+ stainlessPath: '(resource) external_payments > (method) cancel',
+ qualified: 'client.externalPayments.cancel',
+ params: ['external_payment_token: string;', 'effective_date: string;', 'memo?: string;'],
+ response:
+ "{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }",
+ markdown:
+ "## cancel\n\n`client.externalPayments.cancel(external_payment_token: string, effective_date: string, memo?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**post** `/v1/external_payments/{external_payment_token}/cancel`\n\nCancel external payment\n\n### Parameters\n\n- `external_payment_token: string`\n\n- `effective_date: string`\n\n- `memo?: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalPayment = await client.externalPayments.cancel('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { effective_date: '2019-12-27' });\n\nconsole.log(externalPayment);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ExternalPayments.Cancel',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalPayment, err := client.ExternalPayments.Cancel(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalPaymentCancelParams{\n\t\t\tEffectiveDate: lithic.F(time.Now()),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalPayment.UserDefinedID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/external_payments/$EXTERNAL_PAYMENT_TOKEN/cancel \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "effective_date": "2019-12-27"\n }\'',
+ },
+ java: {
+ method: 'externalPayments().cancel',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ExternalPayment;\nimport com.lithic.api.models.ExternalPaymentCancelParams;\nimport java.time.LocalDate;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ExternalPaymentCancelParams params = ExternalPaymentCancelParams.builder()\n .externalPaymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build();\n ExternalPayment externalPayment = client.externalPayments().cancel(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'externalPayments().cancel',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalPayment\nimport com.lithic.api.models.ExternalPaymentCancelParams\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ExternalPaymentCancelParams = ExternalPaymentCancelParams.builder()\n .externalPaymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build()\n val externalPayment: ExternalPayment = client.externalPayments().cancel(params)\n}',
+ },
+ python: {
+ method: 'external_payments.cancel',
+ example:
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_payment = client.external_payments.cancel(\n external_payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n effective_date=date.fromisoformat("2019-12-27"),\n)\nprint(external_payment.user_defined_id)',
+ },
+ ruby: {
+ method: 'external_payments.cancel',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_payment = lithic.external_payments.cancel("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", effective_date: "2019-12-27")\n\nputs(external_payment)',
+ },
+ typescript: {
+ method: 'client.externalPayments.cancel',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalPayment = await client.externalPayments.cancel(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { effective_date: '2019-12-27' },\n);\n\nconsole.log(externalPayment.user_defined_id);",
+ },
+ },
},
{
name: 'reverse',
@@ -2964,25 +9146,102 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }",
markdown:
"## reverse\n\n`client.externalPayments.reverse(external_payment_token: string, effective_date: string, memo?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**post** `/v1/external_payments/{external_payment_token}/reverse`\n\nReverse external payment\n\n### Parameters\n\n- `external_payment_token: string`\n\n- `effective_date: string`\n\n- `memo?: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalPayment = await client.externalPayments.reverse('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { effective_date: '2019-12-27' });\n\nconsole.log(externalPayment);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ExternalPayments.Reverse',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalPayment, err := client.ExternalPayments.Reverse(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalPaymentReverseParams{\n\t\t\tEffectiveDate: lithic.F(time.Now()),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalPayment.UserDefinedID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/external_payments/$EXTERNAL_PAYMENT_TOKEN/reverse \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "effective_date": "2019-12-27"\n }\'',
+ },
+ java: {
+ method: 'externalPayments().reverse',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ExternalPayment;\nimport com.lithic.api.models.ExternalPaymentReverseParams;\nimport java.time.LocalDate;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ExternalPaymentReverseParams params = ExternalPaymentReverseParams.builder()\n .externalPaymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build();\n ExternalPayment externalPayment = client.externalPayments().reverse(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'externalPayments().reverse',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalPayment\nimport com.lithic.api.models.ExternalPaymentReverseParams\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ExternalPaymentReverseParams = ExternalPaymentReverseParams.builder()\n .externalPaymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build()\n val externalPayment: ExternalPayment = client.externalPayments().reverse(params)\n}',
+ },
+ python: {
+ method: 'external_payments.reverse',
+ example:
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_payment = client.external_payments.reverse(\n external_payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n effective_date=date.fromisoformat("2019-12-27"),\n)\nprint(external_payment.user_defined_id)',
+ },
+ ruby: {
+ method: 'external_payments.reverse',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_payment = lithic.external_payments.reverse("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", effective_date: "2019-12-27")\n\nputs(external_payment)',
+ },
+ typescript: {
+ method: 'client.externalPayments.reverse',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalPayment = await client.externalPayments.reverse(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { effective_date: '2019-12-27' },\n);\n\nconsole.log(externalPayment.user_defined_id);",
+ },
+ },
},
{
- name: 'settle',
- endpoint: '/v1/external_payments/{external_payment_token}/settle',
- httpMethod: 'post',
- summary: 'Settle external payment',
- description: 'Settle external payment',
- stainlessPath: '(resource) external_payments > (method) settle',
- qualified: 'client.externalPayments.settle',
+ name: 'list',
+ endpoint: '/v1/management_operations',
+ httpMethod: 'get',
+ summary: 'List management operations',
+ description: 'List management operations',
+ stainlessPath: '(resource) management_operations > (method) list',
+ qualified: 'client.managementOperations.list',
params: [
- 'external_payment_token: string;',
- 'effective_date: string;',
- 'memo?: string;',
- "progress_to?: 'SETTLED' | 'RELEASED';",
+ 'begin?: string;',
+ 'business_account_token?: string;',
+ 'category?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'financial_account_token?: string;',
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ "status?: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED';",
],
response:
- "{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }",
+ "{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; }",
markdown:
- "## settle\n\n`client.externalPayments.settle(external_payment_token: string, effective_date: string, memo?: string, progress_to?: 'SETTLED' | 'RELEASED'): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**post** `/v1/external_payments/{external_payment_token}/settle`\n\nSettle external payment\n\n### Parameters\n\n- `external_payment_token: string`\n\n- `effective_date: string`\n\n- `memo?: string`\n\n- `progress_to?: 'SETTLED' | 'RELEASED'`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalPayment = await client.externalPayments.settle('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { effective_date: '2019-12-27' });\n\nconsole.log(externalPayment);\n```",
+ "## list\n\n`client.managementOperations.list(begin?: string, business_account_token?: string, category?: string, end?: string, ending_before?: string, financial_account_token?: string, page_size?: number, starting_after?: string, status?: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: object[]; external_resource?: external_resource; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: object; user_defined_id?: string; }`\n\n**get** `/v1/management_operations`\n\nList management operations\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `business_account_token?: string`\n\n- `category?: string`\n Management operation category to be returned.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `financial_account_token?: string`\n Globally unique identifier for the financial account. Accepted type dependent on the program's use case.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n Management operation status to be returned.\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `direction?: 'CREDIT' | 'DEBIT'`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `family?: 'MANAGEMENT_OPERATION'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const managementOperationTransaction of client.managementOperations.list()) {\n console.log(managementOperationTransaction);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ManagementOperations.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.ManagementOperations.List(context.TODO(), lithic.ManagementOperationListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/management_operations \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'managementOperations().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ManagementOperationListPage;\nimport com.lithic.api.models.ManagementOperationListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ManagementOperationListPage page = client.managementOperations().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'managementOperations().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ManagementOperationListPage\nimport com.lithic.api.models.ManagementOperationListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: ManagementOperationListPage = client.managementOperations().list()\n}',
+ },
+ python: {
+ method: 'management_operations.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.management_operations.list()\npage = page.data[0]\nprint(page.user_defined_id)',
+ },
+ ruby: {
+ method: 'management_operations.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.management_operations.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.managementOperations.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const managementOperationTransaction of client.managementOperations.list()) {\n console.log(managementOperationTransaction.user_defined_id);\n}",
+ },
+ },
},
{
name: 'create',
@@ -3009,6 +9268,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; }",
markdown:
"## create\n\n`client.managementOperations.create(amount: number, category: string, direction: 'CREDIT' | 'DEBIT', effective_date: string, event_type: string, financial_account_token: string, token?: string, memo?: string, on_closed_account?: 'FAIL' | 'USE_SUSPENSE', subtype?: string, user_defined_id?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: object[]; external_resource?: external_resource; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: object; user_defined_id?: string; }`\n\n**post** `/v1/management_operations`\n\nCreate management operation\n\n### Parameters\n\n- `amount: number`\n\n- `category: string`\n\n- `direction: 'CREDIT' | 'DEBIT'`\n\n- `effective_date: string`\n\n- `event_type: string`\n\n- `financial_account_token: string`\n\n- `token?: string`\n Customer-provided token that will serve as an idempotency token. This token will become the transaction token.\n\n- `memo?: string`\n\n- `on_closed_account?: 'FAIL' | 'USE_SUSPENSE'`\n What to do if the financial account is closed when posting an operation\n\n- `subtype?: string`\n\n- `user_defined_id?: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `direction?: 'CREDIT' | 'DEBIT'`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `family?: 'MANAGEMENT_OPERATION'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst managementOperationTransaction = await client.managementOperations.create({\n amount: 1,\n category: 'MANAGEMENT_FEE',\n direction: 'CREDIT',\n effective_date: '2019-12-27',\n event_type: 'LOSS_WRITE_OFF',\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(managementOperationTransaction);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ManagementOperations.New',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tmanagementOperationTransaction, err := client.ManagementOperations.New(context.TODO(), lithic.ManagementOperationNewParams{\n\t\tAmount: lithic.F(int64(1)),\n\t\tCategory: lithic.F(lithic.ManagementOperationNewParamsCategoryManagementFee),\n\t\tDirection: lithic.F(lithic.ManagementOperationNewParamsDirectionCredit),\n\t\tEffectiveDate: lithic.F(time.Now()),\n\t\tEventType: lithic.F(lithic.ManagementOperationNewParamsEventTypeLossWriteOff),\n\t\tFinancialAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", managementOperationTransaction.UserDefinedID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/management_operations \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 1,\n "category": "MANAGEMENT_FEE",\n "direction": "CREDIT",\n "effective_date": "2019-12-27",\n "event_type": "LOSS_WRITE_OFF",\n "financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n }\'',
+ },
+ java: {
+ method: 'managementOperations().create',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ManagementOperationCreateParams;\nimport com.lithic.api.models.ManagementOperationTransaction;\nimport java.time.LocalDate;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ManagementOperationCreateParams params = ManagementOperationCreateParams.builder()\n .amount(1L)\n .category(ManagementOperationCreateParams.ManagementOperationCategory.MANAGEMENT_FEE)\n .direction(ManagementOperationCreateParams.ManagementOperationDirection.CREDIT)\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .eventType(ManagementOperationCreateParams.ManagementOperationEventType.LOSS_WRITE_OFF)\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build();\n ManagementOperationTransaction managementOperationTransaction = client.managementOperations().create(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'managementOperations().create',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ManagementOperationCreateParams\nimport com.lithic.api.models.ManagementOperationTransaction\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ManagementOperationCreateParams = ManagementOperationCreateParams.builder()\n .amount(1L)\n .category(ManagementOperationCreateParams.ManagementOperationCategory.MANAGEMENT_FEE)\n .direction(ManagementOperationCreateParams.ManagementOperationDirection.CREDIT)\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .eventType(ManagementOperationCreateParams.ManagementOperationEventType.LOSS_WRITE_OFF)\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val managementOperationTransaction: ManagementOperationTransaction = client.managementOperations().create(params)\n}',
+ },
+ python: {
+ method: 'management_operations.create',
+ example:
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nmanagement_operation_transaction = client.management_operations.create(\n amount=1,\n category="MANAGEMENT_FEE",\n direction="CREDIT",\n effective_date=date.fromisoformat("2019-12-27"),\n event_type="LOSS_WRITE_OFF",\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(management_operation_transaction.user_defined_id)',
+ },
+ ruby: {
+ method: 'management_operations.create',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nmanagement_operation_transaction = lithic.management_operations.create(\n amount: 1,\n category: :MANAGEMENT_FEE,\n direction: :CREDIT,\n effective_date: "2019-12-27",\n event_type: :LOSS_WRITE_OFF,\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(management_operation_transaction)',
+ },
+ typescript: {
+ method: 'client.managementOperations.create',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst managementOperationTransaction = await client.managementOperations.create({\n amount: 1,\n category: 'MANAGEMENT_FEE',\n direction: 'CREDIT',\n effective_date: '2019-12-27',\n event_type: 'LOSS_WRITE_OFF',\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(managementOperationTransaction.user_defined_id);",
+ },
+ },
},
{
name: 'retrieve',
@@ -3023,30 +9318,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; }",
markdown:
"## retrieve\n\n`client.managementOperations.retrieve(management_operation_token: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: object[]; external_resource?: external_resource; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: object; user_defined_id?: string; }`\n\n**get** `/v1/management_operations/{management_operation_token}`\n\nGet management operation\n\n### Parameters\n\n- `management_operation_token: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `direction?: 'CREDIT' | 'DEBIT'`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `family?: 'MANAGEMENT_OPERATION'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst managementOperationTransaction = await client.managementOperations.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(managementOperationTransaction);\n```",
- },
- {
- name: 'list',
- endpoint: '/v1/management_operations',
- httpMethod: 'get',
- summary: 'List management operations',
- description: 'List management operations',
- stainlessPath: '(resource) management_operations > (method) list',
- qualified: 'client.managementOperations.list',
- params: [
- 'begin?: string;',
- 'business_account_token?: string;',
- 'category?: string;',
- 'end?: string;',
- 'ending_before?: string;',
- 'financial_account_token?: string;',
- 'page_size?: number;',
- 'starting_after?: string;',
- "status?: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED';",
- ],
- response:
- "{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; }",
- markdown:
- "## list\n\n`client.managementOperations.list(begin?: string, business_account_token?: string, category?: string, end?: string, ending_before?: string, financial_account_token?: string, page_size?: number, starting_after?: string, status?: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: object[]; external_resource?: external_resource; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: object; user_defined_id?: string; }`\n\n**get** `/v1/management_operations`\n\nList management operations\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `business_account_token?: string`\n\n- `category?: string`\n Management operation category to be returned.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `financial_account_token?: string`\n Globally unique identifier for the financial account. Accepted type dependent on the program's use case.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n Management operation status to be returned.\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `direction?: 'CREDIT' | 'DEBIT'`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `family?: 'MANAGEMENT_OPERATION'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const managementOperationTransaction of client.managementOperations.list()) {\n console.log(managementOperationTransaction);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ManagementOperations.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tmanagementOperationTransaction, err := client.ManagementOperations.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", managementOperationTransaction.UserDefinedID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/management_operations/$MANAGEMENT_OPERATION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'managementOperations().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ManagementOperationRetrieveParams;\nimport com.lithic.api.models.ManagementOperationTransaction;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ManagementOperationTransaction managementOperationTransaction = client.managementOperations().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'managementOperations().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ManagementOperationRetrieveParams\nimport com.lithic.api.models.ManagementOperationTransaction\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val managementOperationTransaction: ManagementOperationTransaction = client.managementOperations().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'management_operations.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nmanagement_operation_transaction = client.management_operations.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(management_operation_transaction.user_defined_id)',
+ },
+ ruby: {
+ method: 'management_operations.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nmanagement_operation_transaction = lithic.management_operations.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(management_operation_transaction)',
+ },
+ typescript: {
+ method: 'client.managementOperations.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst managementOperationTransaction = await client.managementOperations.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(managementOperationTransaction.user_defined_id);",
+ },
+ },
},
{
name: 'reverse',
@@ -3061,20 +9368,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; }",
markdown:
"## reverse\n\n`client.managementOperations.reverse(management_operation_token: string, effective_date: string, memo?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: object[]; external_resource?: external_resource; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: object; user_defined_id?: string; }`\n\n**post** `/v1/management_operations/{management_operation_token}/reverse`\n\nReverse a management operation\n\n### Parameters\n\n- `management_operation_token: string`\n\n- `effective_date: string`\n\n- `memo?: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `direction?: 'CREDIT' | 'DEBIT'`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `family?: 'MANAGEMENT_OPERATION'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst managementOperationTransaction = await client.managementOperations.reverse('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { effective_date: '2019-12-27' });\n\nconsole.log(managementOperationTransaction);\n```",
- },
- {
- name: 'retrieve',
- endpoint: '/v1/funding_events/{funding_event_token}',
- httpMethod: 'get',
- summary: 'Get funding event by ID',
- description: 'Get funding event for program by id',
- stainlessPath: '(resource) funding_events > (method) retrieve',
- qualified: 'client.fundingEvents.retrieve',
- params: ['funding_event_token: string;'],
- response:
- "{ token: string; collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'; collection_tokens: string[]; created: string; high_watermark: string; network_settlement_summary: { network_settlement_date: string; settled_gross_amount: number; }[]; previous_high_watermark: string; updated: string; }",
- markdown:
- "## retrieve\n\n`client.fundingEvents.retrieve(funding_event_token: string): { token: string; collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'; collection_tokens: string[]; created: string; high_watermark: string; network_settlement_summary: object[]; previous_high_watermark: string; updated: string; }`\n\n**get** `/v1/funding_events/{funding_event_token}`\n\nGet funding event for program by id\n\n### Parameters\n\n- `funding_event_token: string`\n\n### Returns\n\n- `{ token: string; collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'; collection_tokens: string[]; created: string; high_watermark: string; network_settlement_summary: { network_settlement_date: string; settled_gross_amount: number; }[]; previous_high_watermark: string; updated: string; }`\n\n - `token: string`\n - `collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'`\n - `collection_tokens: string[]`\n - `created: string`\n - `high_watermark: string`\n - `network_settlement_summary: { network_settlement_date: string; settled_gross_amount: number; }[]`\n - `previous_high_watermark: string`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst fundingEvent = await client.fundingEvents.retrieve('funding_event_token');\n\nconsole.log(fundingEvent);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ManagementOperations.Reverse',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tmanagementOperationTransaction, err := client.ManagementOperations.Reverse(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ManagementOperationReverseParams{\n\t\t\tEffectiveDate: lithic.F(time.Now()),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", managementOperationTransaction.UserDefinedID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/management_operations/$MANAGEMENT_OPERATION_TOKEN/reverse \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "effective_date": "2019-12-27"\n }\'',
+ },
+ java: {
+ method: 'managementOperations().reverse',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ManagementOperationReverseParams;\nimport com.lithic.api.models.ManagementOperationTransaction;\nimport java.time.LocalDate;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ManagementOperationReverseParams params = ManagementOperationReverseParams.builder()\n .managementOperationToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build();\n ManagementOperationTransaction managementOperationTransaction = client.managementOperations().reverse(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'managementOperations().reverse',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ManagementOperationReverseParams\nimport com.lithic.api.models.ManagementOperationTransaction\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ManagementOperationReverseParams = ManagementOperationReverseParams.builder()\n .managementOperationToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build()\n val managementOperationTransaction: ManagementOperationTransaction = client.managementOperations().reverse(params)\n}',
+ },
+ python: {
+ method: 'management_operations.reverse',
+ example:
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nmanagement_operation_transaction = client.management_operations.reverse(\n management_operation_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n effective_date=date.fromisoformat("2019-12-27"),\n)\nprint(management_operation_transaction.user_defined_id)',
+ },
+ ruby: {
+ method: 'management_operations.reverse',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nmanagement_operation_transaction = lithic.management_operations.reverse("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", effective_date: "2019-12-27")\n\nputs(management_operation_transaction)',
+ },
+ typescript: {
+ method: 'client.managementOperations.reverse',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst managementOperationTransaction = await client.managementOperations.reverse(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { effective_date: '2019-12-27' },\n);\n\nconsole.log(managementOperationTransaction.user_defined_id);",
+ },
+ },
},
{
name: 'list',
@@ -3089,6 +9418,91 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'; collection_tokens: string[]; created: string; high_watermark: string; network_settlement_summary: { network_settlement_date: string; settled_gross_amount: number; }[]; previous_high_watermark: string; updated: string; }",
markdown:
"## list\n\n`client.fundingEvents.list(ending_before?: string, page_size?: number, starting_after?: string): { token: string; collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'; collection_tokens: string[]; created: string; high_watermark: string; network_settlement_summary: object[]; previous_high_watermark: string; updated: string; }`\n\n**get** `/v1/funding_events`\n\nGet all funding events for program\n\n### Parameters\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'; collection_tokens: string[]; created: string; high_watermark: string; network_settlement_summary: { network_settlement_date: string; settled_gross_amount: number; }[]; previous_high_watermark: string; updated: string; }`\n\n - `token: string`\n - `collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'`\n - `collection_tokens: string[]`\n - `created: string`\n - `high_watermark: string`\n - `network_settlement_summary: { network_settlement_date: string; settled_gross_amount: number; }[]`\n - `previous_high_watermark: string`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const fundingEvent of client.fundingEvents.list()) {\n console.log(fundingEvent);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FundingEvents.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FundingEvents.List(context.TODO(), lithic.FundingEventListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example: 'curl https://api.lithic.com/v1/funding_events \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'fundingEvents().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FundingEventListPage;\nimport com.lithic.api.models.FundingEventListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FundingEventListPage page = client.fundingEvents().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'fundingEvents().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FundingEventListPage\nimport com.lithic.api.models.FundingEventListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: FundingEventListPage = client.fundingEvents().list()\n}',
+ },
+ python: {
+ method: 'funding_events.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.funding_events.list()\npage = page.data[0]\nprint(page.token)',
+ },
+ ruby: {
+ method: 'funding_events.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.funding_events.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.fundingEvents.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const fundingEvent of client.fundingEvents.list()) {\n console.log(fundingEvent.token);\n}",
+ },
+ },
+ },
+ {
+ name: 'retrieve',
+ endpoint: '/v1/funding_events/{funding_event_token}',
+ httpMethod: 'get',
+ summary: 'Get funding event by ID',
+ description: 'Get funding event for program by id',
+ stainlessPath: '(resource) funding_events > (method) retrieve',
+ qualified: 'client.fundingEvents.retrieve',
+ params: ['funding_event_token: string;'],
+ response:
+ "{ token: string; collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'; collection_tokens: string[]; created: string; high_watermark: string; network_settlement_summary: { network_settlement_date: string; settled_gross_amount: number; }[]; previous_high_watermark: string; updated: string; }",
+ markdown:
+ "## retrieve\n\n`client.fundingEvents.retrieve(funding_event_token: string): { token: string; collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'; collection_tokens: string[]; created: string; high_watermark: string; network_settlement_summary: object[]; previous_high_watermark: string; updated: string; }`\n\n**get** `/v1/funding_events/{funding_event_token}`\n\nGet funding event for program by id\n\n### Parameters\n\n- `funding_event_token: string`\n\n### Returns\n\n- `{ token: string; collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'; collection_tokens: string[]; created: string; high_watermark: string; network_settlement_summary: { network_settlement_date: string; settled_gross_amount: number; }[]; previous_high_watermark: string; updated: string; }`\n\n - `token: string`\n - `collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'`\n - `collection_tokens: string[]`\n - `created: string`\n - `high_watermark: string`\n - `network_settlement_summary: { network_settlement_date: string; settled_gross_amount: number; }[]`\n - `previous_high_watermark: string`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst fundingEvent = await client.fundingEvents.retrieve('funding_event_token');\n\nconsole.log(fundingEvent);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FundingEvents.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfundingEvent, err := client.FundingEvents.Get(context.TODO(), "funding_event_token")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", fundingEvent.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/funding_events/$FUNDING_EVENT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'fundingEvents().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FundingEvent;\nimport com.lithic.api.models.FundingEventRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FundingEvent fundingEvent = client.fundingEvents().retrieve("funding_event_token");\n }\n}',
+ },
+ kotlin: {
+ method: 'fundingEvents().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FundingEvent\nimport com.lithic.api.models.FundingEventRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val fundingEvent: FundingEvent = client.fundingEvents().retrieve("funding_event_token")\n}',
+ },
+ python: {
+ method: 'funding_events.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfunding_event = client.funding_events.retrieve(\n "funding_event_token",\n)\nprint(funding_event.token)',
+ },
+ ruby: {
+ method: 'funding_events.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nfunding_event = lithic.funding_events.retrieve("funding_event_token")\n\nputs(funding_event)',
+ },
+ typescript: {
+ method: 'client.fundingEvents.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst fundingEvent = await client.fundingEvents.retrieve('funding_event_token');\n\nconsole.log(fundingEvent.token);",
+ },
+ },
},
{
name: 'retrieve_details',
@@ -3102,6 +9516,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response: '{ token: string; settlement_details_url: string; settlement_summary_url: string; }',
markdown:
"## retrieve_details\n\n`client.fundingEvents.retrieveDetails(funding_event_token: string): { token: string; settlement_details_url: string; settlement_summary_url: string; }`\n\n**get** `/v1/funding_events/{funding_event_token}/details`\n\nGet funding event details by id\n\n### Parameters\n\n- `funding_event_token: string`\n\n### Returns\n\n- `{ token: string; settlement_details_url: string; settlement_summary_url: string; }`\n\n - `token: string`\n - `settlement_details_url: string`\n - `settlement_summary_url: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.fundingEvents.retrieveDetails('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.FundingEvents.GetDetails',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.FundingEvents.GetDetails(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Token)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/funding_events/$FUNDING_EVENT_TOKEN/details \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'fundingEvents().retrieveDetails',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FundingEventRetrieveDetailsParams;\nimport com.lithic.api.models.FundingEventRetrieveDetailsResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FundingEventRetrieveDetailsResponse response = client.fundingEvents().retrieveDetails("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'fundingEvents().retrieveDetails',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FundingEventRetrieveDetailsParams\nimport com.lithic.api.models.FundingEventRetrieveDetailsResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: FundingEventRetrieveDetailsResponse = client.fundingEvents().retrieveDetails("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'funding_events.retrieve_details',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.funding_events.retrieve_details(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.token)',
+ },
+ ruby: {
+ method: 'funding_events.retrieve_details',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.funding_events.retrieve_details("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.fundingEvents.retrieveDetails',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.fundingEvents.retrieveDetails('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response.token);",
+ },
+ },
},
{
name: 'retrieve',
@@ -3117,6 +9567,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT' | 'NO_REPORTED_FRAUD'; transaction_token: string; comment?: string; created_at?: string; fraud_type?: string; updated_at?: string; }",
markdown:
"## retrieve\n\n`client.fraud.transactions.retrieve(transaction_token: string): { fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT' | 'NO_REPORTED_FRAUD'; transaction_token: string; comment?: string; created_at?: string; fraud_type?: string; updated_at?: string; }`\n\n**get** `/v1/fraud/transactions/{transaction_token}`\n\nRetrieve a fraud report for a specific transaction identified by its unique transaction token.\n\n\n### Parameters\n\n- `transaction_token: string`\n\n### Returns\n\n- `{ fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT' | 'NO_REPORTED_FRAUD'; transaction_token: string; comment?: string; created_at?: string; fraud_type?: string; updated_at?: string; }`\n\n - `fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT' | 'NO_REPORTED_FRAUD'`\n - `transaction_token: string`\n - `comment?: string`\n - `created_at?: string`\n - `fraud_type?: string`\n - `updated_at?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst transaction = await client.fraud.transactions.retrieve('00000000-0000-0000-0000-000000000000');\n\nconsole.log(transaction);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Fraud.Transactions.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\ttransaction, err := client.Fraud.Transactions.Get(context.TODO(), "00000000-0000-0000-0000-000000000000")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", transaction.FraudStatus)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/fraud/transactions/$TRANSACTION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'fraud().transactions().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FraudTransactionRetrieveParams;\nimport com.lithic.api.models.TransactionRetrieveResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n TransactionRetrieveResponse transaction = client.fraud().transactions().retrieve("00000000-0000-0000-0000-000000000000");\n }\n}',
+ },
+ kotlin: {
+ method: 'fraud().transactions().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FraudTransactionRetrieveParams\nimport com.lithic.api.models.TransactionRetrieveResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val transaction: TransactionRetrieveResponse = client.fraud().transactions().retrieve("00000000-0000-0000-0000-000000000000")\n}',
+ },
+ python: {
+ method: 'fraud.transactions.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ntransaction = client.fraud.transactions.retrieve(\n "00000000-0000-0000-0000-000000000000",\n)\nprint(transaction.fraud_status)',
+ },
+ ruby: {
+ method: 'fraud.transactions.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ntransaction = lithic.fraud.transactions.retrieve("00000000-0000-0000-0000-000000000000")\n\nputs(transaction)',
+ },
+ typescript: {
+ method: 'client.fraud.transactions.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst transaction = await client.fraud.transactions.retrieve(\n '00000000-0000-0000-0000-000000000000',\n);\n\nconsole.log(transaction.fraud_status);",
+ },
+ },
},
{
name: 'report',
@@ -3137,6 +9623,92 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT' | 'NO_REPORTED_FRAUD'; transaction_token: string; comment?: string; created_at?: string; fraud_type?: string; updated_at?: string; }",
markdown:
"## report\n\n`client.fraud.transactions.report(transaction_token: string, fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT', comment?: string, fraud_type?: string): { fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT' | 'NO_REPORTED_FRAUD'; transaction_token: string; comment?: string; created_at?: string; fraud_type?: string; updated_at?: string; }`\n\n**post** `/v1/fraud/transactions/{transaction_token}`\n\nReport fraud for a specific transaction token by providing details such as fraud type, fraud status, and any additional comments.\n\n\n### Parameters\n\n- `transaction_token: string`\n\n- `fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT'`\n The fraud status of the transaction, string (enum) supporting the following values:\n\n - `SUSPECTED_FRAUD`: The transaction is suspected to be fraudulent, but this hasn’t been confirmed.\n - `FRAUDULENT`: The transaction is confirmed to be fraudulent. A transaction may immediately be moved into this state, or be graduated into this state from the `SUSPECTED_FRAUD` state.\n - `NOT_FRAUDULENT`: The transaction is (explicitly) marked as not fraudulent. A transaction may immediately be moved into this state, or be graduated into this state from the `SUSPECTED_FRAUD` state.\n\n- `comment?: string`\n Optional field providing additional information or context about why the transaction is considered fraudulent.\n\n- `fraud_type?: string`\n Specifies the type or category of fraud that the transaction is suspected or confirmed to involve, string (enum) supporting the following values:\n\n - `FIRST_PARTY_FRAUD`: First-party fraud occurs when a legitimate account or cardholder intentionally misuses financial services for personal gain. This includes actions such as disputing legitimate transactions to obtain a refund, abusing return policies, or defaulting on credit obligations without intent to repay.\n - `ACCOUNT_TAKEOVER`: Account takeover fraud occurs when a fraudster gains unauthorized access to an existing account, modifies account settings, and carries out fraudulent transactions.\n - `CARD_COMPROMISED`: Card compromised fraud occurs when a fraudster gains access to card details without taking over the account, such as through physical card theft, cloning, or online data breaches.\n - `IDENTITY_THEFT`: Identity theft fraud occurs when a fraudster uses stolen personal information, such as Social Security numbers or addresses, to open accounts, apply for loans, or conduct financial transactions in someone's name.\n - `CARDHOLDER_MANIPULATION`: This type of fraud occurs when a fraudster manipulates or coerces a legitimate cardholder into unauthorized transactions, often through social engineering tactics.\n\n### Returns\n\n- `{ fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT' | 'NO_REPORTED_FRAUD'; transaction_token: string; comment?: string; created_at?: string; fraud_type?: string; updated_at?: string; }`\n\n - `fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT' | 'NO_REPORTED_FRAUD'`\n - `transaction_token: string`\n - `comment?: string`\n - `created_at?: string`\n - `fraud_type?: string`\n - `updated_at?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.fraud.transactions.report('00000000-0000-0000-0000-000000000000', { fraud_status: 'SUSPECTED_FRAUD' });\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Fraud.Transactions.Report',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Fraud.Transactions.Report(\n\t\tcontext.TODO(),\n\t\t"00000000-0000-0000-0000-000000000000",\n\t\tlithic.FraudTransactionReportParams{\n\t\t\tFraudStatus: lithic.F(lithic.FraudTransactionReportParamsFraudStatusSuspectedFraud),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.FraudStatus)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/fraud/transactions/$TRANSACTION_TOKEN \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "fraud_status": "SUSPECTED_FRAUD"\n }\'',
+ },
+ java: {
+ method: 'fraud().transactions().report',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.FraudTransactionReportParams;\nimport com.lithic.api.models.TransactionReportResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n FraudTransactionReportParams params = FraudTransactionReportParams.builder()\n .transactionToken("00000000-0000-0000-0000-000000000000")\n .fraudStatus(FraudTransactionReportParams.FraudStatus.SUSPECTED_FRAUD)\n .build();\n TransactionReportResponse response = client.fraud().transactions().report(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'fraud().transactions().report',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FraudTransactionReportParams\nimport com.lithic.api.models.TransactionReportResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FraudTransactionReportParams = FraudTransactionReportParams.builder()\n .transactionToken("00000000-0000-0000-0000-000000000000")\n .fraudStatus(FraudTransactionReportParams.FraudStatus.SUSPECTED_FRAUD)\n .build()\n val response: TransactionReportResponse = client.fraud().transactions().report(params)\n}',
+ },
+ python: {
+ method: 'fraud.transactions.report',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.fraud.transactions.report(\n transaction_token="00000000-0000-0000-0000-000000000000",\n fraud_status="SUSPECTED_FRAUD",\n)\nprint(response.fraud_status)',
+ },
+ ruby: {
+ method: 'fraud.transactions.report',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.fraud.transactions.report("00000000-0000-0000-0000-000000000000", fraud_status: :SUSPECTED_FRAUD)\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.fraud.transactions.report',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.fraud.transactions.report('00000000-0000-0000-0000-000000000000', {\n fraud_status: 'SUSPECTED_FRAUD',\n});\n\nconsole.log(response.fraud_status);",
+ },
+ },
+ },
+ {
+ name: 'list',
+ endpoint: '/v1/network_programs',
+ httpMethod: 'get',
+ summary: 'List network programs',
+ description: 'List network programs.',
+ stainlessPath: '(resource) network_programs > (method) list',
+ qualified: 'client.networkPrograms.list',
+ params: ['begin?: string;', 'end?: string;', 'page_size?: number;'],
+ response:
+ '{ token: string; default_product_code: string; name: string; registered_program_identification_number: string; }',
+ markdown:
+ "## list\n\n`client.networkPrograms.list(begin?: string, end?: string, page_size?: number): { token: string; default_product_code: string; name: string; registered_program_identification_number: string; }`\n\n**get** `/v1/network_programs`\n\nList network programs.\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `page_size?: number`\n Page size (for pagination).\n\n### Returns\n\n- `{ token: string; default_product_code: string; name: string; registered_program_identification_number: string; }`\n\n - `token: string`\n - `default_product_code: string`\n - `name: string`\n - `registered_program_identification_number: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const networkProgram of client.networkPrograms.list()) {\n console.log(networkProgram);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.NetworkPrograms.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.NetworkPrograms.List(context.TODO(), lithic.NetworkProgramListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/network_programs \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'networkPrograms().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.NetworkProgramListPage;\nimport com.lithic.api.models.NetworkProgramListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n NetworkProgramListPage page = client.networkPrograms().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'networkPrograms().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.NetworkProgramListPage\nimport com.lithic.api.models.NetworkProgramListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: NetworkProgramListPage = client.networkPrograms().list()\n}',
+ },
+ python: {
+ method: 'network_programs.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.network_programs.list()\npage = page.data[0]\nprint(page.registered_program_identification_number)',
+ },
+ ruby: {
+ method: 'network_programs.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.network_programs.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.networkPrograms.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const networkProgram of client.networkPrograms.list()) {\n console.log(networkProgram.registered_program_identification_number);\n}",
+ },
+ },
},
{
name: 'retrieve',
@@ -3151,20 +9723,100 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'{ token: string; default_product_code: string; name: string; registered_program_identification_number: string; }',
markdown:
"## retrieve\n\n`client.networkPrograms.retrieve(network_program_token: string): { token: string; default_product_code: string; name: string; registered_program_identification_number: string; }`\n\n**get** `/v1/network_programs/{network_program_token}`\n\nGet network program.\n\n### Parameters\n\n- `network_program_token: string`\n\n### Returns\n\n- `{ token: string; default_product_code: string; name: string; registered_program_identification_number: string; }`\n\n - `token: string`\n - `default_product_code: string`\n - `name: string`\n - `registered_program_identification_number: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst networkProgram = await client.networkPrograms.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(networkProgram);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.NetworkPrograms.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tnetworkProgram, err := client.NetworkPrograms.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", networkProgram.RegisteredProgramIdentificationNumber)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/network_programs/$NETWORK_PROGRAM_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'networkPrograms().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.NetworkProgram;\nimport com.lithic.api.models.NetworkProgramRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n NetworkProgram networkProgram = client.networkPrograms().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'networkPrograms().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.NetworkProgram\nimport com.lithic.api.models.NetworkProgramRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val networkProgram: NetworkProgram = client.networkPrograms().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'network_programs.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nnetwork_program = client.network_programs.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(network_program.registered_program_identification_number)',
+ },
+ ruby: {
+ method: 'network_programs.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nnetwork_program = lithic.network_programs.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(network_program)',
+ },
+ typescript: {
+ method: 'client.networkPrograms.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst networkProgram = await client.networkPrograms.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(networkProgram.registered_program_identification_number);",
+ },
+ },
},
{
name: 'list',
- endpoint: '/v1/network_programs',
+ endpoint: '/v1/financial_accounts/{financial_account_token}/holds',
httpMethod: 'get',
- summary: 'List network programs',
- description: 'List network programs.',
- stainlessPath: '(resource) network_programs > (method) list',
- qualified: 'client.networkPrograms.list',
- params: ['begin?: string;', 'end?: string;', 'page_size?: number;'],
+ summary: 'List holds',
+ description: 'List holds for a financial account.',
+ stainlessPath: '(resource) holds > (method) list',
+ qualified: 'client.holds.list',
+ params: [
+ 'financial_account_token: string;',
+ 'begin?: string;',
+ 'end?: string;',
+ 'ending_before?: string;',
+ 'page_size?: number;',
+ 'starting_after?: string;',
+ "status?: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED';",
+ ],
response:
- '{ token: string; default_product_code: string; name: string; registered_program_identification_number: string; }',
+ "{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }",
markdown:
- "## list\n\n`client.networkPrograms.list(begin?: string, end?: string, page_size?: number): { token: string; default_product_code: string; name: string; registered_program_identification_number: string; }`\n\n**get** `/v1/network_programs`\n\nList network programs.\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `page_size?: number`\n Page size (for pagination).\n\n### Returns\n\n- `{ token: string; default_product_code: string; name: string; registered_program_identification_number: string; }`\n\n - `token: string`\n - `default_product_code: string`\n - `name: string`\n - `registered_program_identification_number: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const networkProgram of client.networkPrograms.list()) {\n console.log(networkProgram);\n}\n```",
+ "## list\n\n`client.holds.list(financial_account_token: string, begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string, status?: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED'): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: hold_event[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/holds`\n\nList holds for a financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED'`\n Hold status to filter by.\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n A hold transaction representing reserved funds on a financial account. Holds move funds from available to pending balance in anticipation of future payments. They can be resolved via settlement (linked to payment), manual release, or expiration.\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]`\n - `expiration_datetime?: string`\n - `family?: 'HOLD'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const hold of client.holds.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(hold);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Holds.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Holds.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.HoldListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/holds \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'holds().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.HoldListPage;\nimport com.lithic.api.models.HoldListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n HoldListPage page = client.holds().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'holds().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.HoldListPage\nimport com.lithic.api.models.HoldListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: HoldListPage = client.holds().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'holds.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.holds.list(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.user_defined_id)',
+ },
+ ruby: {
+ method: 'holds.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.holds.list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.holds.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const hold of client.holds.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(hold.user_defined_id);\n}",
+ },
+ },
},
{
name: 'create',
@@ -3187,6 +9839,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }",
markdown:
"## create\n\n`client.holds.create(financial_account_token: string, amount: number, token?: string, expiration_datetime?: string, memo?: string, user_defined_id?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: hold_event[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n\n**post** `/v1/financial_accounts/{financial_account_token}/holds`\n\nCreate a hold on a financial account. Holds reserve funds by moving them\nfrom available to pending balance. They can be resolved via settlement\n(linked to a payment or book transfer), voiding, or expiration.\n\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `amount: number`\n Amount to hold in cents\n\n- `token?: string`\n Customer-provided token for idempotency. Becomes the hold token.\n\n- `expiration_datetime?: string`\n When the hold should auto-expire\n\n- `memo?: string`\n Reason for the hold\n\n- `user_defined_id?: string`\n User-provided identifier for the hold\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n A hold transaction representing reserved funds on a financial account. Holds move funds from available to pending balance in anticipation of future payments. They can be resolved via settlement (linked to payment), manual release, or expiration.\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]`\n - `expiration_datetime?: string`\n - `family?: 'HOLD'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst hold = await client.holds.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { amount: 1 });\n\nconsole.log(hold);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Holds.New',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\thold, err := client.Holds.New(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.HoldNewParams{\n\t\t\tAmount: lithic.F(int64(1)),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", hold.UserDefinedID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/holds \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 1\n }\'',
+ },
+ java: {
+ method: 'holds().create',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Hold;\nimport com.lithic.api.models.HoldCreateParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n HoldCreateParams params = HoldCreateParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .amount(1L)\n .build();\n Hold hold = client.holds().create(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'holds().create',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Hold\nimport com.lithic.api.models.HoldCreateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: HoldCreateParams = HoldCreateParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .amount(1L)\n .build()\n val hold: Hold = client.holds().create(params)\n}',
+ },
+ python: {
+ method: 'holds.create',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nhold = client.holds.create(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n amount=1,\n)\nprint(hold.user_defined_id)',
+ },
+ ruby: {
+ method: 'holds.create',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nhold = lithic.holds.create("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", amount: 1)\n\nputs(hold)',
+ },
+ typescript: {
+ method: 'client.holds.create',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst hold = await client.holds.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { amount: 1 });\n\nconsole.log(hold.user_defined_id);",
+ },
+ },
},
{
name: 'retrieve',
@@ -3201,28 +9889,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }",
markdown:
"## retrieve\n\n`client.holds.retrieve(hold_token: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: hold_event[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n\n**get** `/v1/holds/{hold_token}`\n\nGet hold by token.\n\n### Parameters\n\n- `hold_token: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n A hold transaction representing reserved funds on a financial account. Holds move funds from available to pending balance in anticipation of future payments. They can be resolved via settlement (linked to payment), manual release, or expiration.\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]`\n - `expiration_datetime?: string`\n - `family?: 'HOLD'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst hold = await client.holds.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(hold);\n```",
- },
- {
- name: 'list',
- endpoint: '/v1/financial_accounts/{financial_account_token}/holds',
- httpMethod: 'get',
- summary: 'List holds',
- description: 'List holds for a financial account.',
- stainlessPath: '(resource) holds > (method) list',
- qualified: 'client.holds.list',
- params: [
- 'financial_account_token: string;',
- 'begin?: string;',
- 'end?: string;',
- 'ending_before?: string;',
- 'page_size?: number;',
- 'starting_after?: string;',
- "status?: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED';",
- ],
- response:
- "{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }",
- markdown:
- "## list\n\n`client.holds.list(financial_account_token: string, begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string, status?: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED'): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: hold_event[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/holds`\n\nList holds for a financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED'`\n Hold status to filter by.\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n A hold transaction representing reserved funds on a financial account. Holds move funds from available to pending balance in anticipation of future payments. They can be resolved via settlement (linked to payment), manual release, or expiration.\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]`\n - `expiration_datetime?: string`\n - `family?: 'HOLD'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const hold of client.holds.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(hold);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Holds.Get',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\thold, err := client.Holds.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", hold.UserDefinedID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/holds/$HOLD_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'holds().retrieve',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Hold;\nimport com.lithic.api.models.HoldRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n Hold hold = client.holds().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'holds().retrieve',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Hold\nimport com.lithic.api.models.HoldRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val hold: Hold = client.holds().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'holds.retrieve',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nhold = client.holds.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(hold.user_defined_id)',
+ },
+ ruby: {
+ method: 'holds.retrieve',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nhold = lithic.holds.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(hold)',
+ },
+ typescript: {
+ method: 'client.holds.retrieve',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst hold = await client.holds.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(hold.user_defined_id);",
+ },
+ },
},
{
name: 'void',
@@ -3238,6 +9940,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }",
markdown:
"## void\n\n`client.holds.void(hold_token: string, memo?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: hold_event[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n\n**post** `/v1/holds/{hold_token}/void`\n\nVoid an active hold. This returns the held funds from pending back to\navailable balance. Only holds in PENDING status can be voided.\n\n\n### Parameters\n\n- `hold_token: string`\n\n- `memo?: string`\n Reason for voiding the hold\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n A hold transaction representing reserved funds on a financial account. Holds move funds from available to pending balance in anticipation of future payments. They can be resolved via settlement (linked to payment), manual release, or expiration.\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]`\n - `expiration_datetime?: string`\n - `family?: 'HOLD'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst hold = await client.holds.void('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(hold);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.Holds.Void',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\thold, err := client.Holds.Void(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.HoldVoidParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", hold.UserDefinedID)\n}\n',
+ },
+ http: {
+ example:
+ "curl https://api.lithic.com/v1/holds/$HOLD_TOKEN/void \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ },
+ java: {
+ method: 'holds().void_',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Hold;\nimport com.lithic.api.models.HoldVoidParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n Hold hold = client.holds().void_("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'holds().void',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Hold\nimport com.lithic.api.models.HoldVoidParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val hold: Hold = client.holds().void("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'holds.void',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nhold = client.holds.void(\n hold_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(hold.user_defined_id)',
+ },
+ ruby: {
+ method: 'holds.void',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nhold = lithic.holds.void("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(hold)',
+ },
+ typescript: {
+ method: 'client.holds.void',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst hold = await client.holds.void('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(hold.user_defined_id);",
+ },
+ },
},
{
name: 'list',
@@ -3264,6 +10002,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; category: string; created: string; currency: string; descriptor: string; events: financial_event[]; family: 'INTERNAL'; financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; } | object | object | object | object | object | object",
markdown:
"## list\n\n`client.accountActivity.list(account_token?: string, begin?: string, business_account_token?: string, category?: string, end?: string, ending_before?: string, financial_account_token?: string, page_size?: number, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'REVERSED' | 'SETTLED' | 'VOIDED'): { token: string; category: string; created: string; currency: string; descriptor: string; events: financial_event[]; family: 'INTERNAL'; financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; } | object | object | object | object | object | object`\n\n**get** `/v1/account_activity`\n\nRetrieve a list of transactions across all public accounts.\n\n### Parameters\n\n- `account_token?: string`\n Filter by account token\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `business_account_token?: string`\n Filter by business account token\n\n- `category?: string`\n Filter by transaction category\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `financial_account_token?: string`\n Filter by financial account token\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `result?: 'APPROVED' | 'DECLINED'`\n Filter by transaction result\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'REVERSED' | 'SETTLED' | 'VOIDED'`\n Filter by transaction status\n\n### Returns\n\n- `{ token: string; category: string; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; family: 'INTERNAL'; financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; } | { token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: object; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; } | { token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: { cardholder: object; hold: object; merchant: object; settlement: object; }; authorization_amount: number; authorization_code: string; avs: { address: string; zipcode: string; }; card_token: string; cardholder_authentication: object; created: string; financial_account_token: string; merchant: object; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: { entry_mode: object; terminal: object; }; result: string; service_location: { city: string; country: string; postal_code: string; state: string; street_address: string; }; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: object; updated: string; events?: { token: string; amount: number; amounts: object; created: string; detailed_results: string[]; effective_polarity: 'CREDIT' | 'DEBIT'; network_info: object; result: string; rule_results: object[]; type: string; account_type?: 'CHECKING' | 'SAVINGS'; network_specific_data?: object; }[]; } | { token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: wire_party_details; debtor?: wire_party_details; message_id?: string; remittance_information?: string; }; pending_amount: number; related_account_tokens: { account_token: string; business_account_token: string; }; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; } | { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; } | { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: object; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; } | { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: object[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n Response containing multiple transaction types. The `family` field determines which transaction type is returned: INTERNAL returns FinancialTransaction, TRANSFER returns BookTransferTransaction, CARD returns CardTransaction, PAYMENT returns PaymentTransaction, EXTERNAL_PAYMENT returns ExternalPaymentResponse, MANAGEMENT_OPERATION returns ManagementOperationTransaction, and HOLD returns HoldTransaction\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const accountActivityListResponse of client.accountActivity.list()) {\n console.log(accountActivityListResponse);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AccountActivity.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.AccountActivity.List(context.TODO(), lithic.AccountActivityListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/account_activity \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'accountActivity().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AccountActivityListPage;\nimport com.lithic.api.models.AccountActivityListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AccountActivityListPage page = client.accountActivity().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'accountActivity().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountActivityListPage\nimport com.lithic.api.models.AccountActivityListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: AccountActivityListPage = client.accountActivity().list()\n}',
+ },
+ python: {
+ method: 'account_activity.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.account_activity.list()\npage = page.data[0]\nprint(page)',
+ },
+ ruby: {
+ method: 'account_activity.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.account_activity.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.accountActivity.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const accountActivityListResponse of client.accountActivity.list()) {\n console.log(accountActivityListResponse);\n}",
+ },
+ },
},
{
name: 'retrieve_transaction',
@@ -3278,6 +10052,42 @@ const EMBEDDED_METHODS: MethodEntry[] = [
"{ token: string; category: string; created: string; currency: string; descriptor: string; events: financial_event[]; family: 'INTERNAL'; financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; } | object | object | object | object | object | object",
markdown:
"## retrieve_transaction\n\n`client.accountActivity.retrieveTransaction(transaction_token: string): { token: string; category: string; created: string; currency: string; descriptor: string; events: financial_event[]; family: 'INTERNAL'; financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; } | object | object | object | object | object | object`\n\n**get** `/v1/account_activity/{transaction_token}`\n\nRetrieve a single transaction\n\n### Parameters\n\n- `transaction_token: string`\n\n### Returns\n\n- `{ token: string; category: string; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; family: 'INTERNAL'; financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; } | { token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: object; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; } | { token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: { cardholder: object; hold: object; merchant: object; settlement: object; }; authorization_amount: number; authorization_code: string; avs: { address: string; zipcode: string; }; card_token: string; cardholder_authentication: object; created: string; financial_account_token: string; merchant: object; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: { entry_mode: object; terminal: object; }; result: string; service_location: { city: string; country: string; postal_code: string; state: string; street_address: string; }; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: object; updated: string; events?: { token: string; amount: number; amounts: object; created: string; detailed_results: string[]; effective_polarity: 'CREDIT' | 'DEBIT'; network_info: object; result: string; rule_results: object[]; type: string; account_type?: 'CHECKING' | 'SAVINGS'; network_specific_data?: object; }[]; } | { token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: wire_party_details; debtor?: wire_party_details; message_id?: string; remittance_information?: string; }; pending_amount: number; related_account_tokens: { account_token: string; business_account_token: string; }; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; } | { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; } | { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: object; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; } | { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: object[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n Response containing multiple transaction types. The `family` field determines which transaction type is returned: INTERNAL returns FinancialTransaction, TRANSFER returns BookTransferTransaction, CARD returns CardTransaction, PAYMENT returns PaymentTransaction, EXTERNAL_PAYMENT returns ExternalPaymentResponse, MANAGEMENT_OPERATION returns ManagementOperationTransaction, and HOLD returns HoldTransaction\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.accountActivity.retrieveTransaction('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.AccountActivity.GetTransaction',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.AccountActivity.GetTransaction(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/account_activity/$TRANSACTION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'accountActivity().retrieveTransaction',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AccountActivityRetrieveTransactionParams;\nimport com.lithic.api.models.AccountActivityRetrieveTransactionResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AccountActivityRetrieveTransactionResponse response = client.accountActivity().retrieveTransaction("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");\n }\n}',
+ },
+ kotlin: {
+ method: 'accountActivity().retrieveTransaction',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountActivityRetrieveTransactionParams\nimport com.lithic.api.models.AccountActivityRetrieveTransactionResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: AccountActivityRetrieveTransactionResponse = client.accountActivity().retrieveTransaction("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
+ },
+ python: {
+ method: 'account_activity.retrieve_transaction',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.account_activity.retrieve_transaction(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response)',
+ },
+ ruby: {
+ method: 'account_activity.retrieve_transaction',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.account_activity.retrieve_transaction("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(response)',
+ },
+ typescript: {
+ method: 'client.accountActivity.retrieveTransaction',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.accountActivity.retrieveTransaction(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(response);",
+ },
+ },
},
{
name: 'list',
@@ -3292,10 +10102,120 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'{ company_id: string; daily_limit: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }; date: string; is_fbo: boolean; monthly_limit: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }; program_limit_per_transaction: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }; }',
markdown:
"## list\n\n`client.transferLimits.list(date?: string): { company_id: string; daily_limit: { credit: object; debit: object; }; date: string; is_fbo: boolean; monthly_limit: { credit: object; debit: object; }; program_limit_per_transaction: { credit: object; debit: object; }; }`\n\n**get** `/v1/transfer_limits`\n\nGet transfer limits for a specified date\n\n### Parameters\n\n- `date?: string`\n Date for which to retrieve transfer limits (ISO 8601 format)\n\n### Returns\n\n- `{ company_id: string; daily_limit: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }; date: string; is_fbo: boolean; monthly_limit: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }; program_limit_per_transaction: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }; }`\n\n - `company_id: string`\n - `daily_limit: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }`\n - `date: string`\n - `is_fbo: boolean`\n - `monthly_limit: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }`\n - `program_limit_per_transaction: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const transferLimit of client.transferLimits.list()) {\n console.log(transferLimit);\n}\n```",
+ perLanguage: {
+ go: {
+ method: 'client.TransferLimits.List',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.TransferLimits.List(context.TODO(), lithic.TransferLimitListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ },
+ http: {
+ example: 'curl https://api.lithic.com/v1/transfer_limits \\\n -H "Authorization: $LITHIC_API_KEY"',
+ },
+ java: {
+ method: 'transferLimits().list',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.TransferLimitListPage;\nimport com.lithic.api.models.TransferLimitListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n TransferLimitListPage page = client.transferLimits().list();\n }\n}',
+ },
+ kotlin: {
+ method: 'transferLimits().list',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TransferLimitListPage\nimport com.lithic.api.models.TransferLimitListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: TransferLimitListPage = client.transferLimits().list()\n}',
+ },
+ python: {
+ method: 'transfer_limits.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.transfer_limits.list()\npage = page.data[0]\nprint(page.company_id)',
+ },
+ ruby: {
+ method: 'transfer_limits.list',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.transfer_limits.list\n\nputs(page)',
+ },
+ typescript: {
+ method: 'client.transferLimits.list',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const transferLimit of client.transferLimits.list()) {\n console.log(transferLimit.company_id);\n}",
+ },
+ },
+ },
+ {
+ name: 'parsed',
+ endpoint: '',
+ httpMethod: '',
+ summary: '',
+ description: '',
+ stainlessPath: '(resource) webhooks > (method) parsed',
+ qualified: 'client.webhooks.parsed',
+ perLanguage: {
+ go: {
+ method: 'client.Webhooks.Parsed',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Webhooks.Parsed(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ },
+ java: {
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.WebhookParsedParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n client.webhooks().parsed();\n }\n}',
+ },
+ kotlin: {
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.WebhookParsedParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.webhooks().parsed()\n}',
+ },
+ python: {
+ method: 'webhooks.parsed',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.webhooks.parsed()',
+ },
+ ruby: {
+ method: 'webhooks.parsed',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.webhooks.parsed\n\nputs(result)',
+ },
+ typescript: {
+ method: 'client.webhooks.parsed',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.webhooks.parsed();",
+ },
+ },
},
];
-const EMBEDDED_READMES: { language: string; content: string }[] = [];
+const EMBEDDED_READMES: { language: string; content: string }[] = [
+ {
+ language: 'python',
+ content:
+ '# Lithic Python API library\n\n\n[)](https://pypi.org/project/lithic/)\n\nThe Lithic Python library provides convenient access to the Lithic REST API from any Python 3.9+\napplication. The library includes type definitions for all request params and response fields,\nand offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).\n\n\n\n\n\n## MCP Server\n\nUse the Lithic MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=lithic-mcp&config=eyJuYW1lIjoibGl0aGljLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2xpdGhpYy5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LWxpdGhpYy1hcGkta2V5IjoiTXkgTGl0aGljIEFQSSBLZXkifX0)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22lithic-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Flithic.stlmcp.com%22%2C%22headers%22%3A%7B%22x-lithic-api-key%22%3A%22My%20Lithic%20API%20Key%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n## Documentation\n\nThe REST API documentation can be found on [docs.lithic.com](https://docs.lithic.com). The full API of this library can be found in [api.md](api.md).\n\n## Installation\n\n```sh\n# install from PyPI\npip install lithic\n```\n\n## Usage\n\nThe full API of this library can be found in [api.md](api.md).\n\n```python\nimport os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n # defaults to "production".\n environment="sandbox",\n)\n\ncard = client.cards.create(\n type="SINGLE_USE",\n)\nprint(card.token)\n```\n\nWhile you can provide an `api_key` keyword argument,\nwe recommend using [python-dotenv](https://pypi.org/project/python-dotenv/)\nto add `LITHIC_API_KEY="My Lithic API Key"` to your `.env` file\nso that your API Key is not stored in source control.\n\n## Async usage\n\nSimply import `AsyncLithic` instead of `Lithic` and use `await` with each API call:\n\n```python\nimport os\nimport asyncio\nfrom lithic import AsyncLithic\n\nclient = AsyncLithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n # defaults to "production".\n environment="sandbox",\n)\n\nasync def main() -> None:\n card = await client.cards.create(\n type="SINGLE_USE",\n )\n print(card.token)\n\nasyncio.run(main())\n```\n\nFunctionality between the synchronous and asynchronous clients is otherwise identical.\n\n### With aiohttp\n\nBy default, the async client uses `httpx` for HTTP requests. However, for improved concurrency performance you may also use `aiohttp` as the HTTP backend.\n\nYou can enable this by installing `aiohttp`:\n\n```sh\n# install from PyPI\npip install lithic[aiohttp]\n```\n\nThen you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:\n\n```python\nimport os\nimport asyncio\nfrom lithic import DefaultAioHttpClient\nfrom lithic import AsyncLithic\n\nasync def main() -> None:\n async with AsyncLithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n http_client=DefaultAioHttpClient(),\n) as client:\n card = await client.cards.create(\n type="SINGLE_USE",\n )\n print(card.token)\n\nasyncio.run(main())\n```\n\n\n\n## Using types\n\nNested request parameters are [TypedDicts](https://docs.python.org/3/library/typing.html#typing.TypedDict). Responses are [Pydantic models](https://docs.pydantic.dev) which also provide helper methods for things like:\n\n- Serializing back into JSON, `model.to_json()`\n- Converting to a dictionary, `model.to_dict()`\n\nTyped requests and responses provide autocomplete and documentation within your editor. If you would like to see type errors in VS Code to help catch bugs earlier, set `python.analysis.typeCheckingMode` to `basic`.\n\n## Pagination\n\nList methods in the Lithic API are paginated.\n\nThis library provides auto-paginating iterators with each list response, so you do not have to request successive pages manually:\n\n```python\nfrom lithic import Lithic\n\nclient = Lithic()\n\nall_cards = []\n# Automatically fetches more pages as needed.\nfor card in client.cards.list():\n # Do something with card here\n all_cards.append(card)\nprint(all_cards)\n```\n\nOr, asynchronously:\n\n```python\nimport asyncio\nfrom lithic import AsyncLithic\n\nclient = AsyncLithic()\n\nasync def main() -> None:\n all_cards = []\n # Iterate through items across all pages, issuing requests as needed.\n async for card in client.cards.list():\n all_cards.append(card)\n print(all_cards)\n\nasyncio.run(main())\n```\n\nAlternatively, you can use the `.has_next_page()`, `.next_page_info()`, or `.get_next_page()` methods for more granular control working with pages:\n\n```python\nfirst_page = await client.cards.list()\nif first_page.has_next_page():\n print(f"will fetch next page using these details: {first_page.next_page_info()}")\n next_page = await first_page.get_next_page()\n print(f"number of items we just fetched: {len(next_page.data)}")\n\n# Remove `await` for non-async usage.\n```\n\nOr just work directly with the returned data:\n\n```python\nfirst_page = await client.cards.list()\n\nprint(f"next page cursor: {first_page.starting_after}") # => "next page cursor: ..."\nfor card in first_page.data:\n print(card.product_id)\n\n# Remove `await` for non-async usage.\n```\n\n## Nested params\n\nNested parameters are dictionaries, typed using `TypedDict`, for example:\n\n```python\nfrom lithic import Lithic\n\nclient = Lithic()\n\ncard = client.cards.create(\n type="PHYSICAL",\n shipping_address={\n "address1": "123",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Johnny",\n "last_name": "Appleseed",\n "postal_code": "10001",\n "state": "NY",\n },\n)\n```\n\n\n\n## Handling errors\n\nWhen the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `lithic.APIConnectionError` is raised.\n\nWhen the API returns a non-success status code (that is, 4xx or 5xx\nresponse), a subclass of `lithic.APIStatusError` is raised, containing `status_code` and `response` properties.\n\nAll errors inherit from `lithic.APIError`.\n\n```python\nimport lithic\nfrom lithic import Lithic\n\nclient = Lithic()\n\ntry:\n client.cards.create(\n type="MERCHANT_LOCKED",\n )\nexcept lithic.APIConnectionError as e:\n print("The server could not be reached")\n print(e.__cause__) # an underlying Exception, likely raised within httpx.\nexcept lithic.RateLimitError as e:\n print("A 429 status code was received; we should back off a bit.")\nexcept lithic.APIStatusError as e:\n print("Another non-200-range status code was received")\n print(e.status_code)\n print(e.response)\n```\n\nError codes are as follows:\n\n| Status Code | Error Type |\n| ----------- | -------------------------- |\n| 400 | `BadRequestError` |\n| 401 | `AuthenticationError` |\n| 403 | `PermissionDeniedError` |\n| 404 | `NotFoundError` |\n| 422 | `UnprocessableEntityError` |\n| 429 | `RateLimitError` |\n| >=500 | `InternalServerError` |\n| N/A | `APIConnectionError` |\n\n### Retries\n\nCertain errors are automatically retried 2 times by default, with a short exponential backoff.\nConnection errors (for example, due to a network connectivity problem), 408 Request Timeout, 409 Conflict,\n429 Rate Limit, and >=500 Internal errors are all retried by default.\n\nYou can use the `max_retries` option to configure or disable retry settings:\n\n```python\nfrom lithic import Lithic\n\n# Configure the default for all requests:\nclient = Lithic(\n # default is 2\n max_retries=0,\n)\n\n# Or, configure per-request:\nclient.with_options(max_retries = 5).cards.list(\n page_size=10,\n)\n```\n\n### Timeouts\n\nBy default requests time out after 1 minute. You can configure this with a `timeout` option,\nwhich accepts a float or an [`httpx.Timeout`](https://www.python-httpx.org/advanced/timeouts/#fine-tuning-the-configuration) object:\n\n```python\nfrom lithic import Lithic\n\n# Configure the default for all requests:\nclient = Lithic(\n # 20 seconds (default is 1 minute)\n timeout=20.0,\n)\n\n# More granular control:\nclient = Lithic(\n timeout=httpx.Timeout(60.0, read=5.0, write=10.0, connect=2.0),\n)\n\n# Override per-request:\nclient.with_options(timeout = 5.0).cards.list(\n page_size=10,\n)\n```\n\nOn timeout, an `APITimeoutError` is thrown.\n\nNote that requests that time out are [retried twice by default](#retries).\n\n\n\n## Advanced\n\n### Logging\n\nWe use the standard library [`logging`](https://docs.python.org/3/library/logging.html) module.\n\nYou can enable logging by setting the environment variable `LITHIC_LOG` to `info`.\n\n```shell\n$ export LITHIC_LOG=info\n```\n\nOr to `debug` for more verbose logging.\n\n### How to tell whether `None` means `null` or missing\n\nIn an API response, a field may be explicitly `null`, or missing entirely; in either case, its value is `None` in this library. You can differentiate the two cases with `.model_fields_set`:\n\n```py\nif response.my_field is None:\n if \'my_field\' not in response.model_fields_set:\n print(\'Got json like {}, without a "my_field" key present at all.\')\n else:\n print(\'Got json like {"my_field": null}.\')\n```\n\n### Accessing raw response data (e.g. headers)\n\nThe "raw" Response object can be accessed by prefixing `.with_raw_response.` to any HTTP method call, e.g.,\n\n```py\nfrom lithic import Lithic\n\nclient = Lithic()\nresponse = client.cards.with_raw_response.create(\n type="SINGLE_USE",\n)\nprint(response.headers.get(\'X-My-Header\'))\n\ncard = response.parse() # get the object that `cards.create()` would have returned\nprint(card.token)\n```\n\nThese methods return a [`LegacyAPIResponse`](https://github.com/lithic-com/lithic-python/tree/main/src/lithic/_legacy_response.py) object. This is a legacy class as we\'re changing it slightly in the next major version.\n\nFor the sync client this will mostly be the same with the exception\nof `content` & `text` will be methods instead of properties. In the\nasync client, all methods will be async.\n\nA migration script will be provided & the migration in general should\nbe smooth.\n\n#### `.with_streaming_response`\n\nThe above interface eagerly reads the full response body when you make the request, which may not always be what you want.\n\nTo stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.\n\nAs such, `.with_streaming_response` methods return a different [`APIResponse`](https://github.com/lithic-com/lithic-python/tree/main/src/lithic/_response.py) object, and the async client returns an [`AsyncAPIResponse`](https://github.com/lithic-com/lithic-python/tree/main/src/lithic/_response.py) object.\n\n```python\nwith client.cards.with_streaming_response.create(\n type="SINGLE_USE",\n) as response :\n print(response.headers.get(\'X-My-Header\'))\n\n for line in response.iter_lines():\n print(line)\n```\n\nThe context manager is required so that the response will reliably be closed.\n\n### Making custom/undocumented requests\n\nThis library is typed for convenient access to the documented API.\n\nIf you need to access undocumented endpoints, params, or response properties, the library can still be used.\n\n#### Undocumented endpoints\n\nTo make requests to undocumented endpoints, you can make requests using `client.get`, `client.post`, and other\nhttp verbs. Options on the client will be respected (such as retries) when making this request.\n\n```py\nimport httpx\n\nresponse = client.post(\n "/foo",\n cast_to=httpx.Response,\n body={"my_param": True},\n)\n\nprint(response.headers.get("x-foo"))\n```\n\n#### Undocumented request params\n\nIf you want to explicitly send an extra param, you can do so with the `extra_query`, `extra_body`, and `extra_headers` request\noptions.\n\n#### Undocumented response properties\n\nTo access undocumented response properties, you can access the extra fields like `response.unknown_prop`. You\ncan also get all the extra fields on the Pydantic model as a dict with\n[`response.model_extra`](https://docs.pydantic.dev/latest/api/base_model/#pydantic.BaseModel.model_extra).\n\n### Configuring the HTTP client\n\nYou can directly override the [httpx client](https://www.python-httpx.org/api/#client) to customize it for your use case, including:\n\n- Support for [proxies](https://www.python-httpx.org/advanced/proxies/)\n- Custom [transports](https://www.python-httpx.org/advanced/transports/)\n- Additional [advanced](https://www.python-httpx.org/advanced/clients/) functionality\n\n```python\nimport httpx\nfrom lithic import Lithic, DefaultHttpxClient\n\nclient = Lithic(\n # Or use the `LITHIC_BASE_URL` env var\n base_url="http://my.test.server.example.com:8083",\n http_client=DefaultHttpxClient(proxy="http://my.test.proxy.example.com", transport=httpx.HTTPTransport(local_address="0.0.0.0")),\n)\n```\n\nYou can also customize the client on a per-request basis by using `with_options()`:\n\n```python\nclient.with_options(http_client=DefaultHttpxClient(...))\n```\n\n### Managing HTTP resources\n\nBy default the library closes underlying HTTP connections whenever the client is [garbage collected](https://docs.python.org/3/reference/datamodel.html#object.__del__). You can manually close the client using the `.close()` method if desired, or with a context manager that closes when exiting.\n\n```py\nfrom lithic import Lithic\n\nwith Lithic() as client:\n # make requests here\n ...\n\n# HTTP client is now closed\n```\n\n## Versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes that only affect static types, without breaking runtime behavior.\n2. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n3. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/lithic-com/lithic-python/issues) with questions, bugs, or suggestions.\n\n### Determining the installed version\n\nIf you\'ve upgraded to the latest version but aren\'t seeing any new features you were expecting then your python environment is likely still using an older version.\n\nYou can determine the version that is being used at runtime with:\n\n```py\nimport lithic\nprint(lithic.__version__)\n```\n\n## Requirements\n\nPython 3.9 or higher.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n',
+ },
+ {
+ language: 'go',
+ content:
+ '# Lithic Go API Library\n\n
\n\nThe Lithic Go library provides convenient access to the [Lithic REST API](https://docs.lithic.com)\nfrom applications written in Go.\n\n\n\n## MCP Server\n\nUse the Lithic MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=lithic-mcp&config=eyJuYW1lIjoibGl0aGljLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2xpdGhpYy5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LWxpdGhpYy1hcGkta2V5IjoiTXkgTGl0aGljIEFQSSBLZXkifX0)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22lithic-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Flithic.stlmcp.com%22%2C%22headers%22%3A%7B%22x-lithic-api-key%22%3A%22My%20Lithic%20API%20Key%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n## Installation\n\n\n\n```go\nimport (\n\t"github.com/lithic-com/lithic-go" // imported as SDK_PackageName\n)\n```\n\n\n\nOr to pin the version:\n\n\n\n```sh\ngo get -u \'github.com/lithic-com/lithic-go@v0.0.1\'\n```\n\n\n\n## Requirements\n\nThis library requires Go 1.22+.\n\n## Usage\n\nThe full API of this library can be found in [api.md](api.md).\n\n```go\npackage main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"), // defaults to os.LookupEnv("LITHIC_API_KEY")\n\t\toption.WithEnvironmentSandbox(), // defaults to option.WithEnvironmentProduction()\n\t)\n\tcard, err := client.Cards.New(context.TODO(), lithic.CardNewParams{\n\t\tType: lithic.F(lithic.CardNewParamsTypeSingleUse),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card.Token)\n}\n\n```\n\n### Request fields\n\nAll request parameters are wrapped in a generic `Field` type,\nwhich we use to distinguish zero values from null or omitted fields.\n\nThis prevents accidentally sending a zero value if you forget a required parameter,\nand enables explicitly sending `null`, `false`, `\'\'`, or `0` on optional parameters.\nAny field not specified is not sent.\n\nTo construct fields with values, use the helpers `String()`, `Int()`, `Float()`, or most commonly, the generic `F[T]()`.\nTo send a null, use `Null[T]()`, and to send a nonconforming value, use `Raw[T](any)`. For example:\n\n```go\nparams := FooParams{\n\tName: SDK_PackageName.F("hello"),\n\n\t// Explicitly send `"description": null`\n\tDescription: SDK_PackageName.Null[string](),\n\n\tPoint: SDK_PackageName.F(SDK_PackageName.Point{\n\t\tX: SDK_PackageName.Int(0),\n\t\tY: SDK_PackageName.Int(1),\n\n\t\t// In cases where the API specifies a given type,\n\t\t// but you want to send something else, use `Raw`:\n\t\tZ: SDK_PackageName.Raw[int64](0.01), // sends a float\n\t}),\n}\n```\n\n### Response objects\n\nAll fields in response structs are value types (not pointers or wrappers).\n\nIf a given field is `null`, not present, or invalid, the corresponding field\nwill simply be its zero value.\n\nAll response structs also include a special `JSON` field, containing more detailed\ninformation about each property, which you can use like so:\n\n```go\nif res.Name == "" {\n\t// true if `"name"` is either not present or explicitly null\n\tres.JSON.Name.IsNull()\n\n\t// true if the `"name"` key was not present in the response JSON at all\n\tres.JSON.Name.IsMissing()\n\n\t// When the API returns data that cannot be coerced to the expected type:\n\tif res.JSON.Name.IsInvalid() {\n\t\traw := res.JSON.Name.Raw()\n\n\t\tlegacyName := struct{\n\t\t\tFirst string `json:"first"`\n\t\t\tLast string `json:"last"`\n\t\t}{}\n\t\tjson.Unmarshal([]byte(raw), &legacyName)\n\t\tname = legacyName.First + " " + legacyName.Last\n\t}\n}\n```\n\nThese `.JSON` structs also include an `Extras` map containing\nany properties in the json response that were not specified\nin the struct. This can be useful for API features not yet\npresent in the SDK.\n\n```go\nbody := res.JSON.ExtraFields["my_unexpected_field"].Raw()\n```\n\n### RequestOptions\n\nThis library uses the functional options pattern. Functions defined in the\n`SDK_PackageOptionName` package return a `RequestOption`, which is a closure that mutates a\n`RequestConfig`. These options can be supplied to the client or at individual\nrequests. For example:\n\n```go\nclient := SDK_PackageName.SDK_ClientInitializerName(\n\t// Adds a header to every request made by the client\n\tSDK_PackageOptionName.WithHeader("X-Some-Header", "custom_header_info"),\n)\n\nclient.Cards.New(context.TODO(), ...,\n\t// Override the header\n\tSDK_PackageOptionName.WithHeader("X-Some-Header", "some_other_custom_header_info"),\n\t// Add an undocumented field to the request body, using sjson syntax\n\tSDK_PackageOptionName.WithJSONSet("some.json.path", map[string]string{"my": "object"}),\n)\n```\n\nSee the [full list of request options](https://pkg.go.dev/github.com/lithic-com/lithic-go/SDK_PackageOptionName).\n\n### Pagination\n\nThis library provides some conveniences for working with paginated list endpoints.\n\nYou can use `.ListAutoPaging()` methods to iterate through items across all pages:\n\n```go\niter := client.Cards.ListAutoPaging(context.TODO(), lithic.CardListParams{})\n// Automatically fetches more pages as needed.\nfor iter.Next() {\n\tnonPCICard := iter.Current()\n\tfmt.Printf("%+v\\n", nonPCICard)\n}\nif err := iter.Err(); err != nil {\n\tpanic(err.Error())\n}\n```\n\nOr you can use simple `.List()` methods to fetch a single page and receive a standard response object\nwith additional helper methods like `.GetNextPage()`, e.g.:\n\n```go\npage, err := client.Cards.List(context.TODO(), lithic.CardListParams{})\nfor page != nil {\n\tfor _, card := range page.Data {\n\t\tfmt.Printf("%+v\\n", card)\n\t}\n\tpage, err = page.GetNextPage()\n}\nif err != nil {\n\tpanic(err.Error())\n}\n```\n\n### Errors\n\nWhen the API returns a non-success status code, we return an error with type\n`*SDK_PackageName.Error`. This contains the `StatusCode`, `*http.Request`, and\n`*http.Response` values of the request, as well as the JSON of the error body\n(much like other response objects in the SDK).\n\nTo handle errors, we recommend that you use the `errors.As` pattern:\n\n```go\n_, err := client.Cards.New(context.TODO(), lithic.CardNewParams{\n\tType: lithic.F(lithic.CardNewParamsTypeMerchantLocked),\n})\nif err != nil {\n\tvar apierr *lithic.Error\n\tif errors.As(err, &apierr) {\n\t\tprintln(string(apierr.DumpRequest(true))) // Prints the serialized HTTP request\n\t\tprintln(string(apierr.DumpResponse(true))) // Prints the serialized HTTP response\n\t\tprintln(apierr.Message) // Invalid parameter(s): type\n\t\tprintln(apierr.DebuggingRequestID) // 94d5e915-xxxx-4cee-a4f5-2xd6ebd279ac\n\t}\n\tpanic(err.Error()) // GET "/v1/cards": 400 Bad Request { ... }\n}\n```\n\nWhen other errors occur, they are returned unwrapped; for example,\nif HTTP transport fails, you might receive `*url.Error` wrapping `*net.OpError`.\n\n### Timeouts\n\nRequests do not time out by default; use context to configure a timeout for a request lifecycle.\n\nNote that if a request is [retried](#retries), the context timeout does not start over.\nTo set a per-retry timeout, use `SDK_PackageOptionName.WithRequestTimeout()`.\n\n```go\n// This sets the timeout for the request, including all the retries.\nctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute)\ndefer cancel()\nclient.Cards.List(\n\tctx,\n\tlithic.CardListParams{\n\t\tPageSize: lithic.F(int64(10)),\n\t},\n\t// This sets the per-retry timeout\n\toption.WithRequestTimeout(20*time.Second),\n)\n```\n\n### File uploads\n\nRequest parameters that correspond to file uploads in multipart requests are typed as\n`param.Field[io.Reader]`. The contents of the `io.Reader` will by default be sent as a multipart form\npart with the file name of "anonymous_file" and content-type of "application/octet-stream".\n\nThe file name and content-type can be customized by implementing `Name() string` or `ContentType()\nstring` on the run-time type of `io.Reader`. Note that `os.File` implements `Name() string`, so a\nfile returned by `os.Open` will be sent with the file name on disk.\n\nWe also provide a helper `SDK_PackageName.FileParam(reader io.Reader, filename string, contentType string)`\nwhich can be used to wrap any `io.Reader` with the appropriate file name and content type.\n\n\n\n### Retries\n\nCertain errors will be automatically retried 2 times by default, with a short exponential backoff.\nWe retry by default all connection errors, 408 Request Timeout, 409 Conflict, 429 Rate Limit,\nand >=500 Internal errors.\n\nYou can use the `WithMaxRetries` option to configure or disable this:\n\n```go\n// Configure the default for all requests:\nclient := lithic.NewClient(\n\toption.WithMaxRetries(0), // default is 2\n)\n\n// Override per-request:\nclient.Cards.List(\n\tcontext.TODO(),\n\tlithic.CardListParams{\n\t\tPageSize: lithic.F(int64(10)),\n\t},\n\toption.WithMaxRetries(5),\n)\n```\n\n\n### Accessing raw response data (e.g. response headers)\n\nYou can access the raw HTTP response data by using the `option.WithResponseInto()` request option. This is useful when\nyou need to examine response headers, status codes, or other details.\n\n```go\n// Create a variable to store the HTTP response\nvar response *http.Response\ncard, err := client.Cards.New(\n\tcontext.TODO(),\n\tlithic.CardNewParams{\n\t\tType: lithic.F(lithic.CardNewParamsTypeSingleUse),\n\t},\n\toption.WithResponseInto(&response),\n)\nif err != nil {\n\t// handle error\n}\nfmt.Printf("%+v\\n", card)\n\nfmt.Printf("Status Code: %d\\n", response.StatusCode)\nfmt.Printf("Headers: %+#v\\n", response.Header)\n```\n\n### Making custom/undocumented requests\n\nThis library is typed for convenient access to the documented API. If you need to access undocumented\nendpoints, params, or response properties, the library can still be used.\n\n#### Undocumented endpoints\n\nTo make requests to undocumented endpoints, you can use `client.Get`, `client.Post`, and other HTTP verbs.\n`RequestOptions` on the client, such as retries, will be respected when making these requests.\n\n```go\nvar (\n // params can be an io.Reader, a []byte, an encoding/json serializable object,\n // or a "…Params" struct defined in this library.\n params map[string]interface{}\n\n // result can be an []byte, *http.Response, a encoding/json deserializable object,\n // or a model defined in this library.\n result *http.Response\n)\nerr := client.Post(context.Background(), "/unspecified", params, &result)\nif err != nil {\n …\n}\n```\n\n#### Undocumented request params\n\nTo make requests using undocumented parameters, you may use either the `SDK_PackageOptionName.WithQuerySet()`\nor the `SDK_PackageOptionName.WithJSONSet()` methods.\n\n```go\nparams := FooNewParams{\n ID: SDK_PackageName.F("id_xxxx"),\n Data: SDK_PackageName.F(FooNewParamsData{\n FirstName: SDK_PackageName.F("John"),\n }),\n}\nclient.Foo.New(context.Background(), params, SDK_PackageOptionName.WithJSONSet("data.last_name", "Doe"))\n```\n\n#### Undocumented response properties\n\nTo access undocumented response properties, you may either access the raw JSON of the response as a string\nwith `result.JSON.RawJSON()`, or get the raw JSON of a particular field on the result with\n`result.JSON.Foo.Raw()`.\n\nAny fields that are not present on the response struct will be saved and can be accessed by `result.JSON.ExtraFields()` which returns the extra fields as a `map[string]Field`.\n\n### Middleware\n\nWe provide `SDK_PackageOptionName.WithMiddleware` which applies the given\nmiddleware to requests.\n\n```go\nfunc Logger(req *http.Request, next SDK_PackageOptionName.MiddlewareNext) (res *http.Response, err error) {\n\t// Before the request\n\tstart := time.Now()\n\tLogReq(req)\n\n\t// Forward the request to the next handler\n\tres, err = next(req)\n\n\t// Handle stuff after the request\n\tend := time.Now()\n\tLogRes(res, err, start - end)\n\n return res, err\n}\n\nclient := SDK_PackageName.SDK_ClientInitializerName(\n\tSDK_PackageOptionName.WithMiddleware(Logger),\n)\n```\n\nWhen multiple middlewares are provided as variadic arguments, the middlewares\nare applied left to right. If `SDK_PackageOptionName.WithMiddleware` is given\nmultiple times, for example first in the client then the method, the\nmiddleware in the client will run first and the middleware given in the method\nwill run next.\n\nYou may also replace the default `http.Client` with\n`SDK_PackageOptionName.WithHTTPClient(client)`. Only one http client is\naccepted (this overwrites any previous client) and receives requests after any\nmiddleware has been applied.\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n2. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/lithic-com/lithic-go/issues) with questions, bugs, or suggestions.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n',
+ },
+ {
+ language: 'terraform',
+ content:
+ '# Lithic Terraform Provider\n\nThe [Lithic Terraform provider](https://registry.terraform.io/providers/stainless-sdks/lithic/latest/docs) provides convenient access to\nthe [Lithic REST API](https://docs.lithic.com) from Terraform.\n\n\n\n## Requirements\n\nThis provider requires Terraform CLI 1.0 or later. You can [install it for your system](https://developer.hashicorp.com/terraform/install)\non Hashicorp\'s website.\n\n## Usage\n\nAdd the following to your `main.tf` file:\n\n\n\n```hcl\n# Declare the provider and version\nterraform {\n required_providers {\n SDK_ProviderTypeName = {\n source = "stainless-sdks/lithic"\n version = "~> 0.0.1"\n }\n }\n}\n\n# Initialize the provider\nprovider "lithic" {\n api_key = "My Lithic API Key" # or set LITHIC_API_KEY env variable\n webhook_secret = "My Webhook Secret" # or set LITHIC_WEBHOOK_SECRET env variable\n}\n\n# Configure a resource\nresource "lithic_event_subscription" "example_event_subscription" {\n url = "https://example.com"\n description = "description"\n disabled = true\n event_types = ["account_holder_document.updated"]\n}\n```\n\n\n\nInitialize your project by running `terraform init` in the directory.\n\nAdditional examples can be found in the [./examples](./examples) folder within this repository, and you can\nrefer to the full documentation on [the Terraform Registry](https://registry.terraform.io/providers/stainless-sdks/lithic/latest/docs).\n\n### Provider Options\nWhen you initialize the provider, the following options are supported. It is recommended to use environment variables for sensitive values like access tokens.\nIf an environment variable is provided, then the option does not need to be set in the terraform source.\n\n| Property | Environment variable | Required | Default value |\n| -------------- | ----------------------- | -------- | ------------- |\n| api_key | `LITHIC_API_KEY` | true | — |\n| webhook_secret | `LITHIC_WEBHOOK_SECRET` | false | — |\n\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n2. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/stainless-sdks/lithic-terraform/issues) with questions, bugs, or suggestions.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n',
+ },
+ {
+ language: 'typescript',
+ content:
+ "# Lithic TypeScript API Library\n\n[)](https://npmjs.org/package/lithic) \n\nThis library provides convenient access to the Lithic REST API from server-side TypeScript or JavaScript.\n\n\n\nThe REST API documentation can be found on [docs.lithic.com](https://docs.lithic.com). The full API of this library can be found in [api.md](api.md).\n\n\n\n## MCP Server\n\nUse the Lithic MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=lithic-mcp&config=eyJuYW1lIjoibGl0aGljLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2xpdGhpYy5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LWxpdGhpYy1hcGkta2V5IjoiTXkgTGl0aGljIEFQSSBLZXkifX0)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22lithic-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Flithic.stlmcp.com%22%2C%22headers%22%3A%7B%22x-lithic-api-key%22%3A%22My%20Lithic%20API%20Key%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n## Installation\n\n```sh\nnpm install lithic\n```\n\n\n\n## Usage\n\nThe full API of this library can be found in [api.md](api.md).\n\n\n```js\nimport Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n environment: 'sandbox', // defaults to 'production'\n});\n\nconst card = await client.cards.create({ type: 'SINGLE_USE' });\n\nconsole.log(card.token);\n```\n\n\n\n### Request & Response types\n\nThis library includes TypeScript definitions for all request params and response fields. You may import and use them like so:\n\n\n```ts\nimport Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n environment: 'sandbox', // defaults to 'production'\n});\n\nconst params: Lithic.CardCreateParams = { type: 'SINGLE_USE' };\nconst card: Lithic.Card = await client.cards.create(params);\n```\n\nDocumentation for each method, request param, and response field are available in docstrings and will appear on hover in most modern editors.\n\n\n\n\n\n## Handling errors\n\nWhen the library is unable to connect to the API,\nor if the API returns a non-success status code (i.e., 4xx or 5xx response),\na subclass of `APIError` will be thrown:\n\n\n```ts\nconst card = await client.cards.create({ type: 'MERCHANT_LOCKED' }).catch(async (err) => {\n if (err instanceof Lithic.APIError) {\n console.log(err.status); // 400\n console.log(err.name); // BadRequestError\n console.log(err.error?.message); // Invalid parameter(s): type\n console.log(err.error?.debugging_request_id); // 94d5e915-xxxx-4cee-a4f5-2xd6ebd279ac\n console.log(err.headers); // {server: 'nginx', ...}\n } else {\n throw err;\n }\n});\n```\n\nError codes are as follows:\n\n| Status Code | Error Type |\n| ----------- | -------------------------- |\n| 400 | `BadRequestError` |\n| 401 | `AuthenticationError` |\n| 403 | `PermissionDeniedError` |\n| 404 | `NotFoundError` |\n| 422 | `UnprocessableEntityError` |\n| 429 | `RateLimitError` |\n| >=500 | `InternalServerError` |\n| N/A | `APIConnectionError` |\n\n### Retries\n\nCertain errors will be automatically retried 2 times by default, with a short exponential backoff.\nConnection errors (for example, due to a network connectivity problem), 408 Request Timeout, 409 Conflict,\n429 Rate Limit, and >=500 Internal errors will all be retried by default.\n\nYou can use the `maxRetries` option to configure or disable this:\n\n\n```js\n// Configure the default for all requests:\nconst client = new Lithic({\n maxRetries: 0, // default is 2\n});\n\n// Or, configure per-request:\nawait client.cards.list({ page_size: 10 }, {\n maxRetries: 5,\n});\n```\n\n### Timeouts\n\nRequests time out after 1 minute by default. You can configure this with a `timeout` option:\n\n\n```ts\n// Configure the default for all requests:\nconst client = new Lithic({\n timeout: 20 * 1000, // 20 seconds (default is 1 minute)\n});\n\n// Override per-request:\nawait client.cards.list({ page_size: 10 }, {\n timeout: 5 * 1000,\n});\n```\n\nOn timeout, an `APIConnectionTimeoutError` is thrown.\n\nNote that requests which time out will be [retried twice by default](#retries).\n\n## Auto-pagination\n\nList methods in the Lithic API are paginated.\nYou can use the `for await … of` syntax to iterate through items across all pages:\n\n```ts\nasync function fetchAllNonPCICards(params) {\n const allNonPCICards = [];\n // Automatically fetches more pages as needed.\n for await (const nonPCICard of client.cards.list()) {\n allNonPCICards.push(nonPCICard);\n }\n return allNonPCICards;\n}\n```\n\nAlternatively, you can request a single page at a time:\n\n```ts\nlet page = await client.cards.list();\nfor (const nonPCICard of page.data) {\n console.log(nonPCICard);\n}\n\n// Convenience methods are provided for manually paginating:\nwhile (page.hasNextPage()) {\n page = await page.getNextPage();\n // ...\n}\n```\n\n\n\n## Advanced Usage\n\n### Accessing raw Response data (e.g., headers)\n\nThe \"raw\" `Response` returned by `fetch()` can be accessed through the `.asResponse()` method on the `APIPromise` type that all methods return.\nThis method returns as soon as the headers for a successful response are received and does not consume the response body, so you are free to write custom parsing or streaming logic.\n\nYou can also use the `.withResponse()` method to get the raw `Response` along with the parsed data.\nUnlike `.asResponse()` this method consumes the body, returning once it is parsed.\n\n\n```ts\nconst client = new Lithic();\n\nconst response = await client.cards.create({ type: 'SINGLE_USE' }).asResponse();\nconsole.log(response.headers.get('X-My-Header'));\nconsole.log(response.statusText); // access the underlying Response object\n\nconst { data: card, response: raw } = await client.cards\n .create({ type: 'SINGLE_USE' })\n .withResponse();\nconsole.log(raw.headers.get('X-My-Header'));\nconsole.log(card.token);\n```\n\n### Logging\n\n> [!IMPORTANT]\n> All log messages are intended for debugging only. The format and content of log messages\n> may change between releases.\n\n#### Log levels\n\nThe log level can be configured in two ways:\n\n1. Via the `LITHIC_LOG` environment variable\n2. Using the `logLevel` client option (overrides the environment variable if set)\n\n```ts\nimport Lithic from 'lithic';\n\nconst client = new Lithic({\n logLevel: 'debug', // Show all log messages\n});\n```\n\nAvailable log levels, from most to least verbose:\n\n- `'debug'` - Show debug messages, info, warnings, and errors\n- `'info'` - Show info messages, warnings, and errors\n- `'warn'` - Show warnings and errors (default)\n- `'error'` - Show only errors\n- `'off'` - Disable all logging\n\nAt the `'debug'` level, all HTTP requests and responses are logged, including headers and bodies.\nSome authentication-related headers are redacted, but sensitive data in request and response bodies\nmay still be visible.\n\n#### Custom logger\n\nBy default, this library logs to `globalThis.console`. You can also provide a custom logger.\nMost logging libraries are supported, including [pino](https://www.npmjs.com/package/pino), [winston](https://www.npmjs.com/package/winston), [bunyan](https://www.npmjs.com/package/bunyan), [consola](https://www.npmjs.com/package/consola), [signale](https://www.npmjs.com/package/signale), and [@std/log](https://jsr.io/@std/log). If your logger doesn't work, please open an issue.\n\nWhen providing a custom logger, the `logLevel` option still controls which messages are emitted, messages\nbelow the configured level will not be sent to your logger.\n\n```ts\nimport Lithic from 'lithic';\nimport pino from 'pino';\n\nconst logger = pino();\n\nconst client = new Lithic({\n logger: logger.child({ name: 'Lithic' }),\n logLevel: 'debug', // Send all messages to pino, allowing it to filter\n});\n```\n\n### Making custom/undocumented requests\n\nThis library is typed for convenient access to the documented API. If you need to access undocumented\nendpoints, params, or response properties, the library can still be used.\n\n#### Undocumented endpoints\n\nTo make requests to undocumented endpoints, you can use `client.get`, `client.post`, and other HTTP verbs.\nOptions on the client, such as retries, will be respected when making these requests.\n\n```ts\nawait client.post('/some/path', {\n body: { some_prop: 'foo' },\n query: { some_query_arg: 'bar' },\n});\n```\n\n#### Undocumented request params\n\nTo make requests using undocumented parameters, you may use `// @ts-expect-error` on the undocumented\nparameter. This library doesn't validate at runtime that the request matches the type, so any extra values you\nsend will be sent as-is.\n\n```ts\nclient.cards.create({\n // ...\n // @ts-expect-error baz is not yet public\n baz: 'undocumented option',\n});\n```\n\nFor requests with the `GET` verb, any extra params will be in the query, all other requests will send the\nextra param in the body.\n\nIf you want to explicitly send an extra argument, you can do so with the `query`, `body`, and `headers` request\noptions.\n\n#### Undocumented response properties\n\nTo access undocumented response properties, you may access the response object with `// @ts-expect-error` on\nthe response object, or cast the response object to the requisite type. Like the request params, we do not\nvalidate or strip extra properties from the response from the API.\n\n### Customizing the fetch client\n\nBy default, this library expects a global `fetch` function is defined.\n\nIf you want to use a different `fetch` function, you can either polyfill the global:\n\n```ts\nimport fetch from 'my-fetch';\n\nglobalThis.fetch = fetch;\n```\n\nOr pass it to the client:\n\n```ts\nimport Lithic from 'lithic';\nimport fetch from 'my-fetch';\n\nconst client = new Lithic({ fetch });\n```\n\n### Fetch options\n\nIf you want to set custom `fetch` options without overriding the `fetch` function, you can provide a `fetchOptions` object when instantiating the client or making a request. (Request-specific options override client options.)\n\n```ts\nimport Lithic from 'lithic';\n\nconst client = new Lithic({\n fetchOptions: {\n // `RequestInit` options\n },\n});\n```\n\n#### Configuring proxies\n\nTo modify proxy behavior, you can provide custom `fetchOptions` that add runtime-specific proxy\noptions to requests:\n\n
**Node** [[docs](https://github.com/nodejs/undici/blob/main/docs/docs/api/ProxyAgent.md#example---proxyagent-with-fetch)]\n\n```ts\nimport Lithic from 'lithic';\nimport * as undici from 'undici';\n\nconst proxyAgent = new undici.ProxyAgent('http://localhost:8888');\nconst client = new Lithic({\n fetchOptions: {\n dispatcher: proxyAgent,\n },\n});\n```\n\n
**Bun** [[docs](https://bun.sh/guides/http/proxy)]\n\n```ts\nimport Lithic from 'lithic';\n\nconst client = new Lithic({\n fetchOptions: {\n proxy: 'http://localhost:8888',\n },\n});\n```\n\n
**Deno** [[docs](https://docs.deno.com/api/deno/~/Deno.createHttpClient)]\n\n```ts\nimport Lithic from 'npm:lithic';\n\nconst httpClient = Deno.createHttpClient({ proxy: { url: 'http://localhost:8888' } });\nconst client = new Lithic({\n fetchOptions: {\n client: httpClient,\n },\n});\n```\n\n## Frequently Asked Questions\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes that only affect static types, without breaking runtime behavior.\n2. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n3. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/lithic-com/lithic-node/issues) with questions, bugs, or suggestions.\n\n## Requirements\n\nTypeScript >= 4.9 is supported.\n\nThe following runtimes are supported:\n\n- Web browsers (Up-to-date Chrome, Firefox, Safari, Edge, and more)\n- Node.js 20 LTS or later ([non-EOL](https://endoflife.date/nodejs)) versions.\n- Deno v1.28.0 or higher.\n- Bun 1.0 or later.\n- Cloudflare Workers.\n- Vercel Edge Runtime.\n- Jest 28 or greater with the `\"node\"` environment (`\"jsdom\"` is not supported at this time).\n- Nitro v2.6 or greater.\n\nNote that React Native is not supported at this time.\n\nIf you are interested in other runtime environments, please open or upvote an issue on GitHub.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n",
+ },
+ {
+ language: 'ruby',
+ content:
+ '# Lithic Ruby API library\n\nThe Lithic Ruby library provides convenient access to the Lithic REST API from any Ruby 3.2.0+ application. It ships with comprehensive types & docstrings in Yard, RBS, and RBI – [see below](https://github.com/lithic-com/lithic-ruby#Sorbet) for usage with Sorbet. The standard library\'s `net/http` is used as the HTTP transport, with connection pooling via the `connection_pool` gem.\n\n\n\n\n\n## MCP Server\n\nUse the Lithic MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=lithic-mcp&config=eyJuYW1lIjoibGl0aGljLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2xpdGhpYy5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LWxpdGhpYy1hcGkta2V5IjoiTXkgTGl0aGljIEFQSSBLZXkifX0)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22lithic-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Flithic.stlmcp.com%22%2C%22headers%22%3A%7B%22x-lithic-api-key%22%3A%22My%20Lithic%20API%20Key%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n## Documentation\n\nDocumentation for releases of this gem can be found [on RubyDoc](https://gemdocs.org/gems/lithic).\n\nThe REST API documentation can be found on [docs.lithic.com](https://docs.lithic.com).\n\n## Installation\n\nTo use this gem, install via Bundler by adding the following to your application\'s `Gemfile`:\n\n\n\n```ruby\ngem "lithic", "~> 0.0.1"\n```\n\n\n\n## Usage\n\n```ruby\nrequire "bundler/setup"\nrequire "lithic"\n\nlithic = Lithic::Client.new(\n api_key: ENV["LITHIC_API_KEY"], # This is the default and can be omitted\n environment: "sandbox" # defaults to "production"\n)\n\ncard = lithic.cards.create(type: "SINGLE_USE")\n\nputs(card.token)\n```\n\n\n\n### Pagination\n\nList methods in the Lithic API are paginated.\n\nThis library provides auto-paginating iterators with each list response, so you do not have to request successive pages manually:\n\n```ruby\npage = lithic.cards.list\n\n# Fetch single item from page.\ncard = page.data[0]\nputs(card.product_id)\n\n# Automatically fetches more pages as needed.\npage.auto_paging_each do |card|\n puts(card.product_id)\nend\n```\n\nAlternatively, you can use the `#next_page?` and `#next_page` methods for more granular control working with pages.\n\n```ruby\nif page.next_page?\n new_page = page.next_page\n puts(new_page.data[0].product_id)\nend\n```\n\n\n\n### Handling errors\n\nWhen the library is unable to connect to the API, or if the API returns a non-success status code (i.e., 4xx or 5xx response), a subclass of `Lithic::Errors::APIError` will be thrown:\n\n```ruby\nbegin\n card = lithic.cards.create(type: "MERCHANT_LOCKED")\nrescue Lithic::Errors::APIConnectionError => e\n puts("The server could not be reached")\n puts(e.cause) # an underlying Exception, likely raised within `net/http`\nrescue Lithic::Errors::RateLimitError => e\n puts("A 429 status code was received; we should back off a bit.")\nrescue Lithic::Errors::APIStatusError => e\n puts("Another non-200-range status code was received")\n puts(e.status)\nend\n```\n\nError codes are as follows:\n\n| Cause | Error Type |\n| ---------------- | -------------------------- |\n| HTTP 400 | `BadRequestError` |\n| HTTP 401 | `AuthenticationError` |\n| HTTP 403 | `PermissionDeniedError` |\n| HTTP 404 | `NotFoundError` |\n| HTTP 409 | `ConflictError` |\n| HTTP 422 | `UnprocessableEntityError` |\n| HTTP 429 | `RateLimitError` |\n| HTTP >= 500 | `InternalServerError` |\n| Other HTTP error | `APIStatusError` |\n| Timeout | `APITimeoutError` |\n| Network error | `APIConnectionError` |\n\n### Retries\n\nCertain errors will be automatically retried 2 times by default, with a short exponential backoff.\n\nConnection errors (for example, due to a network connectivity problem), 408 Request Timeout, 409 Conflict, 429 Rate Limit, >=500 Internal errors, and timeouts will all be retried by default.\n\nYou can use the `max_retries` option to configure or disable this:\n\n```ruby\n# Configure the default for all requests:\nlithic = Lithic::Client.new(\n max_retries: 0 # default is 2\n)\n\n# Or, configure per-request:\nlithic.cards.list(page_size: 10, request_options: {max_retries: 5})\n```\n\n### Timeouts\n\nBy default, requests will time out after 60 seconds. You can use the timeout option to configure or disable this:\n\n```ruby\n# Configure the default for all requests:\nlithic = Lithic::Client.new(\n timeout: nil # default is 60\n)\n\n# Or, configure per-request:\nlithic.cards.list(page_size: 10, request_options: {timeout: 5})\n```\n\nOn timeout, `Lithic::Errors::APITimeoutError` is raised.\n\nNote that requests that time out are retried by default.\n\n## Advanced concepts\n\n### BaseModel\n\nAll parameter and response objects inherit from `Lithic::Internal::Type::BaseModel`, which provides several conveniences, including:\n\n1. All fields, including unknown ones, are accessible with `obj[:prop]` syntax, and can be destructured with `obj => {prop: prop}` or pattern-matching syntax.\n\n2. Structural equivalence for equality; if two API calls return the same values, comparing the responses with == will return true.\n\n3. Both instances and the classes themselves can be pretty-printed.\n\n4. Helpers such as `#to_h`, `#deep_to_h`, `#to_json`, and `#to_yaml`.\n\n### Making custom or undocumented requests\n\n#### Undocumented properties\n\nYou can send undocumented parameters to any endpoint, and read undocumented response properties, like so:\n\nNote: the `extra_` parameters of the same name overrides the documented parameters.\n\n```ruby\npage =\n lithic.cards.list(\n page_size: 10,\n request_options: {\n extra_query: {my_query_parameter: value},\n extra_body: {my_body_parameter: value},\n extra_headers: {"my-header": value}\n }\n )\n\nputs(page[:my_undocumented_property])\n```\n\n#### Undocumented request params\n\nIf you want to explicitly send an extra param, you can do so with the `extra_query`, `extra_body`, and `extra_headers` under the `request_options:` parameter when making a request, as seen in the examples above.\n\n#### Undocumented endpoints\n\nTo make requests to undocumented endpoints while retaining the benefit of auth, retries, and so on, you can make requests using `client.request`, like so:\n\n```ruby\nresponse = client.request(\n method: :post,\n path: \'/undocumented/endpoint\',\n query: {"dog": "woof"},\n headers: {"useful-header": "interesting-value"},\n body: {"hello": "world"}\n)\n```\n\n### Concurrency & connection pooling\n\nThe `Lithic::Client` instances are threadsafe, but are only are fork-safe when there are no in-flight HTTP requests.\n\nEach instance of `Lithic::Client` has its own HTTP connection pool with a default size of 99. As such, we recommend instantiating the client once per application in most settings.\n\nWhen all available connections from the pool are checked out, requests wait for a new connection to become available, with queue time counting towards the request timeout.\n\nUnless otherwise specified, other classes in the SDK do not have locks protecting their underlying data structure.\n\n## Sorbet\n\nThis library provides comprehensive [RBI](https://sorbet.org/docs/rbi) definitions, and has no dependency on sorbet-runtime.\n\nYou can provide typesafe request parameters like so:\n\n```ruby\nlithic.cards.create(type: "SINGLE_USE")\n```\n\nOr, equivalently:\n\n```ruby\n# Hashes work, but are not typesafe:\nlithic.cards.create(type: "SINGLE_USE")\n\n# You can also splat a full Params class:\nparams = Lithic::CardCreateParams.new(type: "SINGLE_USE")\nlithic.cards.create(**params)\n```\n\n### Enums\n\nSince this library does not depend on `sorbet-runtime`, it cannot provide [`T::Enum`](https://sorbet.org/docs/tenum) instances. Instead, we provide "tagged symbols" instead, which is always a primitive at runtime:\n\n```ruby\n# :ACTIVE\nputs(Lithic::AccountUpdateParams::State::ACTIVE)\n\n# Revealed type: `T.all(Lithic::AccountUpdateParams::State, Symbol)`\nT.reveal_type(Lithic::AccountUpdateParams::State::ACTIVE)\n```\n\nEnum parameters have a "relaxed" type, so you can either pass in enum constants or their literal value:\n\n```ruby\n# Using the enum constants preserves the tagged type information:\nlithic.accounts.update(\n state: Lithic::AccountUpdateParams::State::ACTIVE,\n # …\n)\n\n# Literal values are also permissible:\nlithic.accounts.update(\n state: :ACTIVE,\n # …\n)\n```\n\n## Versioning\n\nThis package follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions. As the library is in initial development and has a major version of `0`, APIs may change at any time.\n\nThis package considers improvements to the (non-runtime) `*.rbi` and `*.rbs` type definitions to be non-breaking changes.\n\n## Requirements\n\nRuby 3.2.0 or higher.\n\n## Contributing\n\nSee [the contributing documentation](https://github.com/lithic-com/lithic-ruby/tree/main/CONTRIBUTING.md).\n',
+ },
+ {
+ language: 'java',
+ content:
+ '# Lithic Java API Library\n\n\n[](https://central.sonatype.com/artifact/com.lithic.api/lithic-java/0.0.1)\n[](https://javadoc.io/doc/com.lithic.api/lithic-java/0.0.1)\n\n\nThe Lithic Java SDK provides convenient access to the [Lithic REST API](https://docs.lithic.com) from applications written in Java.\n\nThe Lithic Java SDK is similar to the Lithic Kotlin SDK but with minor differences that make it more ergonomic for use in Java, such as `Optional` instead of nullable values, `Stream` instead of `Sequence`, and `CompletableFuture` instead of suspend functions.\n\n\n\n## MCP Server\n\nUse the Lithic MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=lithic-mcp&config=eyJuYW1lIjoibGl0aGljLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2xpdGhpYy5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LWxpdGhpYy1hcGkta2V5IjoiTXkgTGl0aGljIEFQSSBLZXkifX0)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22lithic-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Flithic.stlmcp.com%22%2C%22headers%22%3A%7B%22x-lithic-api-key%22%3A%22My%20Lithic%20API%20Key%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n\n\nThe REST API documentation can be found on [docs.lithic.com](https://docs.lithic.com). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.lithic.api/lithic-java/0.0.1).\n\n\n\n## Installation\n\n\n\n### Gradle\n\n~~~kotlin\nimplementation("com.lithic.api:lithic-java:0.0.1")\n~~~\n\n### Maven\n\n~~~xml\n\n com.lithic.api\n lithic-java\n 0.0.1\n\n~~~\n\n\n\n## Requirements\n\nThis library requires Java 8 or later.\n\n## Usage\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Card;\nimport com.lithic.api.models.CardCreateParams;\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nLithicClient client = LithicOkHttpClient.fromEnv();\n\nCardCreateParams params = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build();\nCard card = client.cards().create(params);\n```\n\n## Client configuration\n\nConfigure the client using system properties or environment variables:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nLithicClient client = LithicOkHttpClient.fromEnv();\n```\n\nOr manually:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\n\nLithicClient client = LithicOkHttpClient.builder()\n .apiKey("My Lithic API Key")\n .build();\n```\n\nOr using a combination of the two approaches:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\n\nLithicClient client = LithicOkHttpClient.builder()\n // Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n // Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\n .fromEnv()\n .apiKey("My Lithic API Key")\n .build();\n```\n\nSee this table for the available options:\n\n| Setter | System property | Environment variable | Required | Default value |\n| --------------- | ---------------------- | ----------------------- | -------- | -------------------------- |\n| `apiKey` | `lithic.apiKey` | `LITHIC_API_KEY` | true | - |\n| `webhookSecret` | `lithic.webhookSecret` | `LITHIC_WEBHOOK_SECRET` | false | - |\n| `baseUrl` | `lithic.baseUrl` | `LITHIC_BASE_URL` | true | `"https://api.lithic.com"` |\n\nSystem properties take precedence over environment variables.\n\n> [!TIP]\n> Don\'t create more than one client in the same application. Each client has a connection pool and\n> thread pools, which are more efficient to share between requests.\n\n### Modifying configuration\n\nTo temporarily use a modified client configuration, while reusing the same connection and thread pools, call `withOptions()` on any client or service:\n\n```java\nimport com.lithic.api.client.LithicClient;\n\nLithicClient clientWithOptions = client.withOptions(optionsBuilder -> {\n optionsBuilder.baseUrl("https://example.com");\n optionsBuilder.maxRetries(42);\n});\n```\n\nThe `withOptions()` method does not affect the original client or service.\n\n## Requests and responses\n\nTo send a request to the Lithic API, build an instance of some `Params` class and pass it to the corresponding client method. When the response is received, it will be deserialized into an instance of a Java class.\n\nFor example, `client.cards().create(...)` should be called with an instance of `CardCreateParams`, and it will return an instance of `Card`.\n\n## Immutability\n\nEach class in the SDK has an associated [builder](https://blogs.oracle.com/javamagazine/post/exploring-joshua-blochs-builder-design-pattern-in-java) or factory method for constructing it.\n\nEach class is [immutable](https://docs.oracle.com/javase/tutorial/essential/concurrency/immutable.html) once constructed. If the class has an associated builder, then it has a `toBuilder()` method, which can be used to convert it back to a builder for making a modified copy.\n\nBecause each class is immutable, builder modification will _never_ affect already built class instances.\n\n## Asynchronous execution\n\nThe default client is synchronous. To switch to asynchronous execution, call the `async()` method:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Card;\nimport com.lithic.api.models.CardCreateParams;\nimport java.util.concurrent.CompletableFuture;\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nLithicClient client = LithicOkHttpClient.fromEnv();\n\nCardCreateParams params = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build();\nCompletableFuture card = client.async().cards().create(params);\n```\n\nOr create an asynchronous client from the beginning:\n\n```java\nimport com.lithic.api.client.LithicClientAsync;\nimport com.lithic.api.client.okhttp.LithicOkHttpClientAsync;\nimport com.lithic.api.models.Card;\nimport com.lithic.api.models.CardCreateParams;\nimport java.util.concurrent.CompletableFuture;\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nLithicClientAsync client = LithicOkHttpClientAsync.fromEnv();\n\nCardCreateParams params = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build();\nCompletableFuture card = client.cards().create(params);\n```\n\nThe asynchronous client supports the same options as the synchronous one, except most methods return `CompletableFuture`s.\n\n\n\n\n\n\n\n## Raw responses\n\nThe SDK defines methods that deserialize responses into instances of Java classes. However, these methods don\'t provide access to the response headers, status code, or the raw response body.\n\nTo access this data, prefix any HTTP method call on a client or service with `withRawResponse()`:\n\n```java\nimport com.lithic.api.core.http.Headers;\nimport com.lithic.api.core.http.HttpResponseFor;\nimport com.lithic.api.models.Card;\nimport com.lithic.api.models.CardCreateParams;\n\nCardCreateParams params = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build();\nHttpResponseFor card = client.cards().withRawResponse().create(params);\n\nint statusCode = card.statusCode();\nHeaders headers = card.headers();\n```\n\nYou can still deserialize the response into an instance of a Java class if needed:\n\n```java\nimport com.lithic.api.models.Card;\n\nCard parsedCard = card.parse();\n```\n\n## Error handling\n\nThe SDK throws custom unchecked exception types:\n\n- [`LithicServiceException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/LithicServiceException.kt): Base class for HTTP errors. See this table for which exception subclass is thrown for each HTTP status code:\n\n | Status | Exception |\n | ------ | -------------------------------------------------- |\n | 400 | [`BadRequestException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/BadRequestException.kt) |\n | 401 | [`UnauthorizedException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/UnauthorizedException.kt) |\n | 403 | [`PermissionDeniedException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/PermissionDeniedException.kt) |\n | 404 | [`NotFoundException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/NotFoundException.kt) |\n | 422 | [`UnprocessableEntityException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/UnprocessableEntityException.kt) |\n | 429 | [`RateLimitException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/RateLimitException.kt) |\n | 5xx | [`InternalServerException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/InternalServerException.kt) |\n | others | [`UnexpectedStatusCodeException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/UnexpectedStatusCodeException.kt) |\n\n- [`LithicIoException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/LithicIoException.kt): I/O networking errors.\n\n- [`LithicRetryableException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/LithicRetryableException.kt): Generic error indicating a failure that could be retried by the client.\n\n- [`LithicInvalidDataException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/LithicInvalidDataException.kt): Failure to interpret successfully parsed data. For example, when accessing a property that\'s supposed to be required, but the API unexpectedly omitted it from the response.\n\n- [`LithicException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/LithicException.kt): Base class for all exceptions. Most errors will result in one of the previously mentioned ones, but completely generic errors may be thrown using the base class.\n\n## Pagination\n\nThe SDK defines methods that return a paginated lists of results. It provides convenient ways to access the results either one page at a time or item-by-item across all pages.\n\n### Auto-pagination\n\nTo iterate through all results across all pages, use the `autoPager()` method, which automatically fetches more pages as needed.\n\nWhen using the synchronous client, the method returns an [`Iterable`](https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html)\n\n```java\nimport com.lithic.api.models.CardListPage;\nimport com.lithic.api.models.NonPciCard;\n\nCardListPage page = client.cards().list();\n\n// Process as an Iterable\nfor (NonPciCard card : page.autoPager()) {\n System.out.println(card);\n}\n\n// Process as a Stream\npage.autoPager()\n .stream()\n .limit(50)\n .forEach(card -> System.out.println(card));\n```\n\nWhen using the asynchronous client, the method returns an [`AsyncStreamResponse`](lithic-java-core/src/main/kotlin/com/lithic/api/core/http/AsyncStreamResponse.kt):\n\n```java\nimport com.lithic.api.core.http.AsyncStreamResponse;\nimport com.lithic.api.models.CardListPageAsync;\nimport com.lithic.api.models.NonPciCard;\nimport java.util.Optional;\nimport java.util.concurrent.CompletableFuture;\n\nCompletableFuture pageFuture = client.async().cards().list();\n\npageFuture.thenRun(page -> page.autoPager().subscribe(card -> {\n System.out.println(card);\n}));\n\n// If you need to handle errors or completion of the stream\npageFuture.thenRun(page -> page.autoPager().subscribe(new AsyncStreamResponse.Handler<>() {\n @Override\n public void onNext(NonPciCard card) {\n System.out.println(card);\n }\n\n @Override\n public void onComplete(Optional error) {\n if (error.isPresent()) {\n System.out.println("Something went wrong!");\n throw new RuntimeException(error.get());\n } else {\n System.out.println("No more!");\n }\n }\n}));\n\n// Or use futures\npageFuture.thenRun(page -> page.autoPager()\n .subscribe(card -> {\n System.out.println(card);\n })\n .onCompleteFuture()\n .whenComplete((unused, error) -> {\n if (error != null) {\n System.out.println("Something went wrong!");\n throw new RuntimeException(error);\n } else {\n System.out.println("No more!");\n }\n }));\n```\n\n### Manual pagination\n\nTo access individual page items and manually request the next page, use the `items()`,\n`hasNextPage()`, and `nextPage()` methods:\n\n```java\nimport com.lithic.api.models.CardListPage;\nimport com.lithic.api.models.NonPciCard;\n\nCardListPage page = client.cards().list();\nwhile (true) {\n for (NonPciCard card : page.items()) {\n System.out.println(card);\n }\n\n if (!page.hasNextPage()) {\n break;\n }\n\n page = page.nextPage();\n}\n```\n\n## Logging\n\nThe SDK uses the standard [OkHttp logging interceptor](https://github.com/square/okhttp/tree/master/okhttp-logging-interceptor).\n\nEnable logging by setting the `LITHIC_LOG` environment variable to `info`:\n\n```sh\nexport LITHIC_LOG=info\n```\n\nOr to `debug` for more verbose logging:\n\n```sh\nexport LITHIC_LOG=debug\n```\n\n## ProGuard and R8\n\nAlthough the SDK uses reflection, it is still usable with [ProGuard](https://github.com/Guardsquare/proguard) and [R8](https://developer.android.com/topic/performance/app-optimization/enable-app-optimization) because `lithic-java-core` is published with a [configuration file](lithic-java-core/src/main/resources/META-INF/proguard/lithic-java-core.pro) containing [keep rules](https://www.guardsquare.com/manual/configuration/usage).\n\nProGuard and R8 should automatically detect and use the published rules, but you can also manually copy the keep rules if necessary.\n\n\n\n\n\n## Jackson\n\nThe SDK depends on [Jackson](https://github.com/FasterXML/jackson) for JSON serialization/deserialization. It is compatible with version 2.13.4 or higher, but depends on version 2.18.2 by default.\n\nThe SDK throws an exception if it detects an incompatible Jackson version at runtime (e.g. if the default version was overridden in your Maven or Gradle config).\n\nIf the SDK threw an exception, but you\'re _certain_ the version is compatible, then disable the version check using the `checkJacksonVersionCompatibility` on [`LithicOkHttpClient`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) or [`LithicOkHttpClientAsync`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt).\n\n> [!CAUTION]\n> We make no guarantee that the SDK works correctly when the Jackson version check is disabled.\n\nAlso note that there are bugs in older Jackson versions that can affect the SDK. We don\'t work around all Jackson bugs ([example](https://github.com/FasterXML/jackson-databind/issues/3240)) and expect users to upgrade Jackson for those instead.\n\n## Network options\n\n### Retries\n\nThe SDK automatically retries 2 times by default, with a short exponential backoff between requests.\n\nOnly the following error types are retried:\n- Connection errors (for example, due to a network connectivity problem)\n- 408 Request Timeout\n- 409 Conflict\n- 429 Rate Limit\n- 5xx Internal\n\nThe API may also explicitly instruct the SDK to retry or not retry a request.\n\nTo set a custom number of retries, configure the client using the `maxRetries` method:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\n\nLithicClient client = LithicOkHttpClient.builder()\n .fromEnv()\n .maxRetries(4)\n .build();\n```\n\n### Timeouts\n\nRequests time out after 1 minute by default.\n\nTo set a custom timeout, configure the method call using the `timeout` method:\n\n```java\nimport com.lithic.api.models.CardListPage;\n\nCardListPage page = client.cards().list(RequestOptions.builder().timeout(Duration.ofSeconds(30)).build());\n```\n\nOr configure the default for all method calls at the client level:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport java.time.Duration;\n\nLithicClient client = LithicOkHttpClient.builder()\n .fromEnv()\n .timeout(Duration.ofSeconds(30))\n .build();\n```\n\n### Proxies\n\nTo route requests through a proxy, configure the client using the `proxy` method:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport java.net.InetSocketAddress;\nimport java.net.Proxy;\n\nLithicClient client = LithicOkHttpClient.builder()\n .fromEnv()\n .proxy(new Proxy(\n Proxy.Type.HTTP, new InetSocketAddress(\n "https://example.com", 8080\n )\n ))\n .build();\n```\n\n### Connection pooling\n\nTo customize the underlying OkHttp connection pool, configure the client using the `maxIdleConnections` and `keepAliveDuration` methods:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport java.time.Duration;\n\nLithicClient client = LithicOkHttpClient.builder()\n .fromEnv()\n // If `maxIdleConnections` is set, then `keepAliveDuration` must be set, and vice versa.\n .maxIdleConnections(10)\n .keepAliveDuration(Duration.ofMinutes(2))\n .build();\n```\n\nIf both options are unset, OkHttp\'s default connection pool settings are used.\n\n### HTTPS\n\n> [!NOTE]\n> Most applications should not call these methods, and instead use the system defaults. The defaults include\n> special optimizations that can be lost if the implementations are modified.\n\nTo configure how HTTPS connections are secured, configure the client using the `sslSocketFactory`, `trustManager`, and `hostnameVerifier` methods:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\n\nLithicClient client = LithicOkHttpClient.builder()\n .fromEnv()\n // If `sslSocketFactory` is set, then `trustManager` must be set, and vice versa.\n .sslSocketFactory(yourSSLSocketFactory)\n .trustManager(yourTrustManager)\n .hostnameVerifier(yourHostnameVerifier)\n .build();\n```\n\n### Environments\n\nThe SDK sends requests to the production by default. To send requests to a different environment, configure the client like so:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\n\nLithicClient client = LithicOkHttpClient.builder()\n .fromEnv()\n .sandbox()\n .build();\n```\n\n### Custom HTTP client\n\nThe SDK consists of three artifacts:\n- `lithic-java-core`\n - Contains core SDK logic\n - Does not depend on [OkHttp](https://square.github.io/okhttp)\n - Exposes [`LithicClient`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClient.kt), [`LithicClientAsync`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientAsync.kt), [`LithicClientImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt), and [`LithicClientAsyncImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), all of which can work with any HTTP client\n- `lithic-java-client-okhttp`\n - Depends on [OkHttp](https://square.github.io/okhttp)\n - Exposes [`LithicOkHttpClient`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) and [`LithicOkHttpClientAsync`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt), which provide a way to construct [`LithicClientImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt) and [`LithicClientAsyncImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), respectively, using OkHttp\n- `lithic-java`\n - Depends on and exposes the APIs of both `lithic-java-core` and `lithic-java-client-okhttp`\n - Does not have its own logic\n\nThis structure allows replacing the SDK\'s default HTTP client without pulling in unnecessary dependencies.\n\n#### Customized [`OkHttpClient`](https://square.github.io/okhttp/3.x/okhttp/okhttp3/OkHttpClient.html)\n\n> [!TIP]\n> Try the available [network options](#network-options) before replacing the default client.\n\nTo use a customized `OkHttpClient`:\n\n1. Replace your [`lithic-java` dependency](#installation) with `lithic-java-core`\n2. Copy `lithic-java-client-okhttp`\'s [`OkHttpClient`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/OkHttpClient.kt) class into your code and customize it\n3. Construct [`LithicClientImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt) or [`LithicClientAsyncImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), similarly to [`LithicOkHttpClient`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) or [`LithicOkHttpClientAsync`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt), using your customized client\n\n### Completely custom HTTP client\n\nTo use a completely custom HTTP client:\n\n1. Replace your [`lithic-java` dependency](#installation) with `lithic-java-core`\n2. Write a class that implements the [`HttpClient`](lithic-java-core/src/main/kotlin/com/lithic/api/core/http/HttpClient.kt) interface\n3. Construct [`LithicClientImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt) or [`LithicClientAsyncImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), similarly to [`LithicOkHttpClient`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) or [`LithicOkHttpClientAsync`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt), using your new client class\n\n## Undocumented API functionality\n\nThe SDK is typed for convenient usage of the documented API. However, it also supports working with undocumented or not yet supported parts of the API.\n\n### Parameters\n\nTo set undocumented parameters, call the `putAdditionalHeader`, `putAdditionalQueryParam`, or `putAdditionalBodyProperty` methods on any `Params` class:\n\n```java\nimport com.lithic.api.core.JsonValue;\nimport com.lithic.api.models.CardCreateParams;\n\nCardCreateParams params = CardCreateParams.builder()\n .putAdditionalHeader("Secret-Header", "42")\n .putAdditionalQueryParam("secret_query_param", "42")\n .putAdditionalBodyProperty("secretProperty", JsonValue.from("42"))\n .build();\n```\n\nThese can be accessed on the built object later using the `_additionalHeaders()`, `_additionalQueryParams()`, and `_additionalBodyProperties()` methods.\n\nTo set undocumented parameters on _nested_ headers, query params, or body classes, call the `putAdditionalProperty` method on the nested class:\n\n```java\nimport com.lithic.api.core.JsonValue;\nimport com.lithic.api.models.CardCreateParams;\nimport com.lithic.api.models.ShippingAddress;\n\nCardCreateParams params = CardCreateParams.builder()\n .shippingAddress(ShippingAddress.builder()\n .putAdditionalProperty("secretProperty", JsonValue.from("42"))\n .build())\n .build();\n```\n\nThese properties can be accessed on the nested built object later using the `_additionalProperties()` method.\n\nTo set a documented parameter or property to an undocumented or not yet supported _value_, pass a [`JsonValue`](lithic-java-core/src/main/kotlin/com/lithic/api/core/Values.kt) object to its setter:\n\n```java\nimport com.lithic.api.core.JsonValue;\nimport com.lithic.api.models.CardCreateParams;\n\nCardCreateParams params = CardCreateParams.builder()\n .type(JsonValue.from(42))\n .build();\n```\n\nThe most straightforward way to create a [`JsonValue`](lithic-java-core/src/main/kotlin/com/lithic/api/core/Values.kt) is using its `from(...)` method:\n\n```java\nimport com.lithic.api.core.JsonValue;\nimport java.util.List;\nimport java.util.Map;\n\n// Create primitive JSON values\nJsonValue nullValue = JsonValue.from(null);\nJsonValue booleanValue = JsonValue.from(true);\nJsonValue numberValue = JsonValue.from(42);\nJsonValue stringValue = JsonValue.from("Hello World!");\n\n// Create a JSON array value equivalent to `["Hello", "World"]`\nJsonValue arrayValue = JsonValue.from(List.of(\n "Hello", "World"\n));\n\n// Create a JSON object value equivalent to `{ "a": 1, "b": 2 }`\nJsonValue objectValue = JsonValue.from(Map.of(\n "a", 1,\n "b", 2\n));\n\n// Create an arbitrarily nested JSON equivalent to:\n// {\n// "a": [1, 2],\n// "b": [3, 4]\n// }\nJsonValue complexValue = JsonValue.from(Map.of(\n "a", List.of(\n 1, 2\n ),\n "b", List.of(\n 3, 4\n )\n));\n```\n\nNormally a `Builder` class\'s `build` method will throw [`IllegalStateException`](https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html) if any required parameter or property is unset.\n\nTo forcibly omit a required parameter or property, pass [`JsonMissing`](lithic-java-core/src/main/kotlin/com/lithic/api/core/Values.kt):\n\n```java\nimport com.lithic.api.core.JsonMissing;\nimport com.lithic.api.models.CardCreateParams;\n\nCardCreateParams params = CardCreateParams.builder()\n .type(JsonMissing.of())\n .build();\n```\n\n### Response properties\n\nTo access undocumented response properties, call the `_additionalProperties()` method:\n\n```java\nimport com.lithic.api.core.JsonValue;\nimport java.util.Map;\n\nMap additionalProperties = client.cards().create(params)._additionalProperties();\nJsonValue secretPropertyValue = additionalProperties.get("secretProperty");\n\nString result = secretPropertyValue.accept(new JsonValue.Visitor<>() {\n @Override\n public String visitNull() {\n return "It\'s null!";\n }\n\n @Override\n public String visitBoolean(boolean value) {\n return "It\'s a boolean!";\n }\n\n @Override\n public String visitNumber(Number value) {\n return "It\'s a number!";\n }\n\n // Other methods include `visitMissing`, `visitString`, `visitArray`, and `visitObject`\n // The default implementation of each unimplemented method delegates to `visitDefault`, which throws by default, but can also be overridden\n});\n```\n\nTo access a property\'s raw JSON value, which may be undocumented, call its `_` prefixed method:\n\n```java\nimport com.lithic.api.core.JsonField;\nimport com.lithic.api.models.CardCreateParams;\nimport java.util.Optional;\n\nJsonField type = client.cards().create(params)._type();\n\nif (type.isMissing()) {\n // The property is absent from the JSON response\n} else if (type.isNull()) {\n // The property was set to literal null\n} else {\n // Check if value was provided as a string\n // Other methods include `asNumber()`, `asBoolean()`, etc.\n Optional jsonString = type.asString();\n\n // Try to deserialize into a custom type\n MyClass myObject = type.asUnknown().orElseThrow().convert(MyClass.class);\n}\n```\n\n### Response validation\n\nIn rare cases, the API may return a response that doesn\'t match the expected type. For example, the SDK may expect a property to contain a `String`, but the API could return something else.\n\nBy default, the SDK will not throw an exception in this case. It will throw [`LithicInvalidDataException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/LithicInvalidDataException.kt) only if you directly access the property.\n\nIf you would prefer to check that the response is completely well-typed upfront, then either call `validate()`:\n\n```java\nimport com.lithic.api.models.Card;\n\nCard card = client.cards().create(params).validate();\n```\n\nOr configure the method call to validate the response using the `responseValidation` method:\n\n```java\nimport com.lithic.api.models.Card;\n\nCard card = client.cards().create(\n params, RequestOptions.builder().responseValidation(true).build()\n);\n```\n\nOr configure the default for all method calls at the client level:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\n\nLithicClient client = LithicOkHttpClient.builder()\n .fromEnv()\n .responseValidation(true)\n .build();\n```\n\n## FAQ\n\n### Why don\'t you use plain `enum` classes?\n\nJava `enum` classes are not trivially [forwards compatible](https://www.stainless.com/blog/making-java-enums-forwards-compatible). Using them in the SDK could cause runtime exceptions if the API is updated to respond with a new enum value.\n\n### Why do you represent fields using `JsonField` instead of just plain `T`?\n\nUsing `JsonField` enables a few features:\n\n- Allowing usage of [undocumented API functionality](#undocumented-api-functionality)\n- Lazily [validating the API response against the expected shape](#response-validation)\n- Representing absent vs explicitly null values\n\n### Why don\'t you use [`data` classes](https://kotlinlang.org/docs/data-classes.html)?\n\nIt is not [backwards compatible to add new fields to a data class](https://kotlinlang.org/docs/api-guidelines-backward-compatibility.html#avoid-using-data-classes-in-your-api) and we don\'t want to introduce a breaking change every time we add a field to a class.\n\n### Why don\'t you use checked exceptions?\n\nChecked exceptions are widely considered a mistake in the Java programming language. In fact, they were omitted from Kotlin for this reason.\n\nChecked exceptions:\n\n- Are verbose to handle\n- Encourage error handling at the wrong level of abstraction, where nothing can be done about the error\n- Are tedious to propagate due to the [function coloring problem](https://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function)\n- Don\'t play well with lambdas (also due to the function coloring problem)\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n2. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/lithic-com/lithic-java/issues) with questions, bugs, or suggestions.\n',
+ },
+ {
+ language: 'kotlin',
+ content:
+ '# Lithic Kotlin API Library\n\n\n[](https://central.sonatype.com/artifact/com.lithic.api/lithic-kotlin/0.0.1)\n[](https://javadoc.io/doc/com.lithic.api/lithic-kotlin/0.0.1)\n\n\nThe Lithic Kotlin SDK provides convenient access to the [Lithic REST API](https://docs.lithic.com) from applications written in Kotlin.\n\nThe Lithic Kotlin SDK is similar to the Lithic Java SDK but with minor differences that make it more ergonomic for use in Kotlin, such as nullable values instead of `Optional`, `Sequence` instead of `Stream`, and suspend functions instead of `CompletableFuture`.\n\n\n\n## MCP Server\n\nUse the Lithic MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=lithic-mcp&config=eyJuYW1lIjoibGl0aGljLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2xpdGhpYy5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LWxpdGhpYy1hcGkta2V5IjoiTXkgTGl0aGljIEFQSSBLZXkifX0)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22lithic-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Flithic.stlmcp.com%22%2C%22headers%22%3A%7B%22x-lithic-api-key%22%3A%22My%20Lithic%20API%20Key%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n\n\nThe REST API documentation can be found on [docs.lithic.com](https://docs.lithic.com). KDocs are available on [javadoc.io](https://javadoc.io/doc/com.lithic.api/lithic-kotlin/0.0.1).\n\n\n\n## Installation\n\n\n\n### Gradle\n\n~~~kotlin\nimplementation("com.lithic.api:lithic-kotlin:0.0.1")\n~~~\n\n### Maven\n\n~~~xml\n\n com.lithic.api\n lithic-kotlin\n 0.0.1\n\n~~~\n\n\n\n## Requirements\n\nThis library requires Java 8 or later.\n\n## Usage\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardCreateParams\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nval client: LithicClient = LithicOkHttpClient.fromEnv()\n\nval params: CardCreateParams = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build()\nval card: Card = client.cards().create(params)\n```\n\n## Client configuration\n\nConfigure the client using system properties or environment variables:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nval client: LithicClient = LithicOkHttpClient.fromEnv()\n```\n\nOr manually:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .apiKey("My Lithic API Key")\n .build()\n```\n\nOr using a combination of the two approaches:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\n\nval client: LithicClient = LithicOkHttpClient.builder()\n // Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n // Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\n .fromEnv()\n .apiKey("My Lithic API Key")\n .build()\n```\n\nSee this table for the available options:\n\n| Setter | System property | Environment variable | Required | Default value |\n| --------------- | ---------------------- | ----------------------- | -------- | -------------------------- |\n| `apiKey` | `lithic.apiKey` | `LITHIC_API_KEY` | true | - |\n| `webhookSecret` | `lithic.webhookSecret` | `LITHIC_WEBHOOK_SECRET` | false | - |\n| `baseUrl` | `lithic.baseUrl` | `LITHIC_BASE_URL` | true | `"https://api.lithic.com"` |\n\nSystem properties take precedence over environment variables.\n\n> [!TIP]\n> Don\'t create more than one client in the same application. Each client has a connection pool and\n> thread pools, which are more efficient to share between requests.\n\n### Modifying configuration\n\nTo temporarily use a modified client configuration, while reusing the same connection and thread pools, call `withOptions()` on any client or service:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\n\nval clientWithOptions: LithicClient = client.withOptions {\n it.baseUrl("https://example.com")\n it.maxRetries(42)\n}\n```\n\nThe `withOptions()` method does not affect the original client or service.\n\n## Requests and responses\n\nTo send a request to the Lithic API, build an instance of some `Params` class and pass it to the corresponding client method. When the response is received, it will be deserialized into an instance of a Kotlin class.\n\nFor example, `client.cards().create(...)` should be called with an instance of `CardCreateParams`, and it will return an instance of `Card`.\n\n## Immutability\n\nEach class in the SDK has an associated [builder](https://blogs.oracle.com/javamagazine/post/exploring-joshua-blochs-builder-design-pattern-in-java) or factory method for constructing it.\n\nEach class is [immutable](https://docs.oracle.com/javase/tutorial/essential/concurrency/immutable.html) once constructed. If the class has an associated builder, then it has a `toBuilder()` method, which can be used to convert it back to a builder for making a modified copy.\n\nBecause each class is immutable, builder modification will _never_ affect already built class instances.\n\n## Asynchronous execution\n\nThe default client is synchronous. To switch to asynchronous execution, call the `async()` method:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardCreateParams\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nval client: LithicClient = LithicOkHttpClient.fromEnv()\n\nval params: CardCreateParams = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build()\nval card: Card = client.async().cards().create(params)\n```\n\nOr create an asynchronous client from the beginning:\n\n```kotlin\nimport com.lithic.api.client.LithicClientAsync\nimport com.lithic.api.client.okhttp.LithicOkHttpClientAsync\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardCreateParams\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nval client: LithicClientAsync = LithicOkHttpClientAsync.fromEnv()\n\nval params: CardCreateParams = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build()\nval card: Card = client.cards().create(params)\n```\n\nThe asynchronous client supports the same options as the synchronous one, except most methods are [suspending](https://kotlinlang.org/docs/coroutines-guide.html).\n\n\n\n\n\n\n\n## Raw responses\n\nThe SDK defines methods that deserialize responses into instances of Kotlin classes. However, these methods don\'t provide access to the response headers, status code, or the raw response body.\n\nTo access this data, prefix any HTTP method call on a client or service with `withRawResponse()`:\n\n```kotlin\nimport com.lithic.api.core.http.Headers\nimport com.lithic.api.core.http.HttpResponseFor\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardCreateParams\n\nval params: CardCreateParams = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build()\nval card: HttpResponseFor = client.cards().withRawResponse().create(params)\n\nval statusCode: Int = card.statusCode()\nval headers: Headers = card.headers()\n```\n\nYou can still deserialize the response into an instance of a Kotlin class if needed:\n\n```kotlin\nimport com.lithic.api.models.Card\n\nval parsedCard: Card = card.parse()\n```\n\n## Error handling\n\nThe SDK throws custom unchecked exception types:\n\n- [`LithicServiceException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/LithicServiceException.kt): Base class for HTTP errors. See this table for which exception subclass is thrown for each HTTP status code:\n\n | Status | Exception |\n | ------ | -------------------------------------------------- |\n | 400 | [`BadRequestException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/BadRequestException.kt) |\n | 401 | [`UnauthorizedException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/UnauthorizedException.kt) |\n | 403 | [`PermissionDeniedException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/PermissionDeniedException.kt) |\n | 404 | [`NotFoundException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/NotFoundException.kt) |\n | 422 | [`UnprocessableEntityException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/UnprocessableEntityException.kt) |\n | 429 | [`RateLimitException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/RateLimitException.kt) |\n | 5xx | [`InternalServerException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/InternalServerException.kt) |\n | others | [`UnexpectedStatusCodeException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/UnexpectedStatusCodeException.kt) |\n\n- [`LithicIoException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/LithicIoException.kt): I/O networking errors.\n\n- [`LithicRetryableException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/LithicRetryableException.kt): Generic error indicating a failure that could be retried by the client.\n\n- [`LithicInvalidDataException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/LithicInvalidDataException.kt): Failure to interpret successfully parsed data. For example, when accessing a property that\'s supposed to be required, but the API unexpectedly omitted it from the response.\n\n- [`LithicException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/LithicException.kt): Base class for all exceptions. Most errors will result in one of the previously mentioned ones, but completely generic errors may be thrown using the base class.\n\n## Pagination\n\nThe SDK defines methods that return a paginated lists of results. It provides convenient ways to access the results either one page at a time or item-by-item across all pages.\n\n### Auto-pagination\n\nTo iterate through all results across all pages, use the `autoPager()` method, which automatically fetches more pages as needed.\n\nWhen using the synchronous client, the method returns a [`Sequence`](https://kotlinlang.org/docs/sequences.html)\n\n```kotlin\nimport com.lithic.api.models.CardListPage\n\nval page: CardListPage = client.cards().list()\npage.autoPager()\n .take(50)\n .forEach { card -> println(card) }\n```\n\nWhen using the asynchronous client, the method returns a [`Flow`](https://kotlinlang.org/docs/flow.html):\n\n```kotlin\nimport com.lithic.api.models.CardListPageAsync\n\nval page: CardListPageAsync = client.async().cards().list()\npage.autoPager()\n .take(50)\n .forEach { card -> println(card) }\n```\n\n### Manual pagination\n\nTo access individual page items and manually request the next page, use the `items()`,\n`hasNextPage()`, and `nextPage()` methods:\n\n```kotlin\nimport com.lithic.api.models.CardListPage\nimport com.lithic.api.models.NonPciCard\n\nval page: CardListPage = client.cards().list()\nwhile (true) {\n for (card in page.items()) {\n println(card)\n }\n\n if (!page.hasNextPage()) {\n break\n }\n\n page = page.nextPage()\n}\n```\n\n## Logging\n\nThe SDK uses the standard [OkHttp logging interceptor](https://github.com/square/okhttp/tree/master/okhttp-logging-interceptor).\n\nEnable logging by setting the `LITHIC_LOG` environment variable to `info`:\n\n```sh\nexport LITHIC_LOG=info\n```\n\nOr to `debug` for more verbose logging:\n\n```sh\nexport LITHIC_LOG=debug\n```\n\n## ProGuard and R8\n\nAlthough the SDK uses reflection, it is still usable with [ProGuard](https://github.com/Guardsquare/proguard) and [R8](https://developer.android.com/topic/performance/app-optimization/enable-app-optimization) because `lithic-kotlin-core` is published with a [configuration file](lithic-kotlin-core/src/main/resources/META-INF/proguard/lithic-kotlin-core.pro) containing [keep rules](https://www.guardsquare.com/manual/configuration/usage).\n\nProGuard and R8 should automatically detect and use the published rules, but you can also manually copy the keep rules if necessary.\n\n\n\n\n\n## Jackson\n\nThe SDK depends on [Jackson](https://github.com/FasterXML/jackson) for JSON serialization/deserialization. It is compatible with version 2.13.4 or higher, but depends on version 2.18.2 by default.\n\nThe SDK throws an exception if it detects an incompatible Jackson version at runtime (e.g. if the default version was overridden in your Maven or Gradle config).\n\nIf the SDK threw an exception, but you\'re _certain_ the version is compatible, then disable the version check using the `checkJacksonVersionCompatibility` on [`LithicOkHttpClient`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) or [`LithicOkHttpClientAsync`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt).\n\n> [!CAUTION]\n> We make no guarantee that the SDK works correctly when the Jackson version check is disabled.\n\nAlso note that there are bugs in older Jackson versions that can affect the SDK. We don\'t work around all Jackson bugs ([example](https://github.com/FasterXML/jackson-databind/issues/3240)) and expect users to upgrade Jackson for those instead.\n\n## Network options\n\n### Retries\n\nThe SDK automatically retries 2 times by default, with a short exponential backoff between requests.\n\nOnly the following error types are retried:\n- Connection errors (for example, due to a network connectivity problem)\n- 408 Request Timeout\n- 409 Conflict\n- 429 Rate Limit\n- 5xx Internal\n\nThe API may also explicitly instruct the SDK to retry or not retry a request.\n\nTo set a custom number of retries, configure the client using the `maxRetries` method:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .fromEnv()\n .maxRetries(4)\n .build()\n```\n\n### Timeouts\n\nRequests time out after 1 minute by default.\n\nTo set a custom timeout, configure the method call using the `timeout` method:\n\n```kotlin\nimport com.lithic.api.models.CardListPage\n\nval page: CardListPage = client.cards().list(RequestOptions.builder().timeout(Duration.ofSeconds(30)).build())\n```\n\nOr configure the default for all method calls at the client level:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport java.time.Duration\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .fromEnv()\n .timeout(Duration.ofSeconds(30))\n .build()\n```\n\n### Proxies\n\nTo route requests through a proxy, configure the client using the `proxy` method:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport java.net.InetSocketAddress\nimport java.net.Proxy\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .fromEnv()\n .proxy(Proxy(\n Proxy.Type.HTTP, InetSocketAddress(\n "https://example.com", 8080\n )\n ))\n .build()\n```\n\n### Connection pooling\n\nTo customize the underlying OkHttp connection pool, configure the client using the `maxIdleConnections` and `keepAliveDuration` methods:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport java.time.Duration\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .fromEnv()\n // If `maxIdleConnections` is set, then `keepAliveDuration` must be set, and vice versa.\n .maxIdleConnections(10)\n .keepAliveDuration(Duration.ofMinutes(2))\n .build()\n```\n\nIf both options are unset, OkHttp\'s default connection pool settings are used.\n\n### HTTPS\n\n> [!NOTE]\n> Most applications should not call these methods, and instead use the system defaults. The defaults include\n> special optimizations that can be lost if the implementations are modified.\n\nTo configure how HTTPS connections are secured, configure the client using the `sslSocketFactory`, `trustManager`, and `hostnameVerifier` methods:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .fromEnv()\n // If `sslSocketFactory` is set, then `trustManager` must be set, and vice versa.\n .sslSocketFactory(yourSSLSocketFactory)\n .trustManager(yourTrustManager)\n .hostnameVerifier(yourHostnameVerifier)\n .build()\n```\n\n### Environments\n\nThe SDK sends requests to the production by default. To send requests to a different environment, configure the client like so:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .fromEnv()\n .sandbox()\n .build()\n```\n\n### Custom HTTP client\n\nThe SDK consists of three artifacts:\n- `lithic-kotlin-core`\n - Contains core SDK logic\n - Does not depend on [OkHttp](https://square.github.io/okhttp)\n - Exposes [`LithicClient`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClient.kt), [`LithicClientAsync`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientAsync.kt), [`LithicClientImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt), and [`LithicClientAsyncImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), all of which can work with any HTTP client\n- `lithic-kotlin-client-okhttp`\n - Depends on [OkHttp](https://square.github.io/okhttp)\n - Exposes [`LithicOkHttpClient`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) and [`LithicOkHttpClientAsync`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt), which provide a way to construct [`LithicClientImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt) and [`LithicClientAsyncImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), respectively, using OkHttp\n- `lithic-kotlin`\n - Depends on and exposes the APIs of both `lithic-kotlin-core` and `lithic-kotlin-client-okhttp`\n - Does not have its own logic\n\nThis structure allows replacing the SDK\'s default HTTP client without pulling in unnecessary dependencies.\n\n#### Customized [`OkHttpClient`](https://square.github.io/okhttp/3.x/okhttp/okhttp3/OkHttpClient.html)\n\n> [!TIP]\n> Try the available [network options](#network-options) before replacing the default client.\n\nTo use a customized `OkHttpClient`:\n\n1. Replace your [`lithic-kotlin` dependency](#installation) with `lithic-kotlin-core`\n2. Copy `lithic-kotlin-client-okhttp`\'s [`OkHttpClient`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/OkHttpClient.kt) class into your code and customize it\n3. Construct [`LithicClientImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt) or [`LithicClientAsyncImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), similarly to [`LithicOkHttpClient`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) or [`LithicOkHttpClientAsync`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt), using your customized client\n\n### Completely custom HTTP client\n\nTo use a completely custom HTTP client:\n\n1. Replace your [`lithic-kotlin` dependency](#installation) with `lithic-kotlin-core`\n2. Write a class that implements the [`HttpClient`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/core/http/HttpClient.kt) interface\n3. Construct [`LithicClientImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt) or [`LithicClientAsyncImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), similarly to [`LithicOkHttpClient`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) or [`LithicOkHttpClientAsync`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt), using your new client class\n\n## Undocumented API functionality\n\nThe SDK is typed for convenient usage of the documented API. However, it also supports working with undocumented or not yet supported parts of the API.\n\n### Parameters\n\nTo set undocumented parameters, call the `putAdditionalHeader`, `putAdditionalQueryParam`, or `putAdditionalBodyProperty` methods on any `Params` class:\n\n```kotlin\nimport com.lithic.api.core.JsonValue\nimport com.lithic.api.models.CardCreateParams\n\nval params: CardCreateParams = CardCreateParams.builder()\n .putAdditionalHeader("Secret-Header", "42")\n .putAdditionalQueryParam("secret_query_param", "42")\n .putAdditionalBodyProperty("secretProperty", JsonValue.from("42"))\n .build()\n```\n\nThese can be accessed on the built object later using the `_additionalHeaders()`, `_additionalQueryParams()`, and `_additionalBodyProperties()` methods.\n\nTo set undocumented parameters on _nested_ headers, query params, or body classes, call the `putAdditionalProperty` method on the nested class:\n\n```kotlin\nimport com.lithic.api.core.JsonValue\nimport com.lithic.api.models.CardCreateParams\nimport com.lithic.api.models.ShippingAddress\n\nval params: CardCreateParams = CardCreateParams.builder()\n .shippingAddress(ShippingAddress.builder()\n .putAdditionalProperty("secretProperty", JsonValue.from("42"))\n .build())\n .build()\n```\n\nThese properties can be accessed on the nested built object later using the `_additionalProperties()` method.\n\nTo set a documented parameter or property to an undocumented or not yet supported _value_, pass a [`JsonValue`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/core/Values.kt) object to its setter:\n\n```kotlin\nimport com.lithic.api.core.JsonValue\nimport com.lithic.api.models.CardCreateParams\n\nval params: CardCreateParams = CardCreateParams.builder()\n .type(JsonValue.from(42))\n .build()\n```\n\nThe most straightforward way to create a [`JsonValue`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/core/Values.kt) is using its `from(...)` method:\n\n```kotlin\nimport com.lithic.api.core.JsonValue\n\n// Create primitive JSON values\nval nullValue: JsonValue = JsonValue.from(null)\nval booleanValue: JsonValue = JsonValue.from(true)\nval numberValue: JsonValue = JsonValue.from(42)\nval stringValue: JsonValue = JsonValue.from("Hello World!")\n\n// Create a JSON array value equivalent to `["Hello", "World"]`\nval arrayValue: JsonValue = JsonValue.from(listOf(\n "Hello", "World"\n))\n\n// Create a JSON object value equivalent to `{ "a": 1, "b": 2 }`\nval objectValue: JsonValue = JsonValue.from(mapOf(\n "a" to 1, "b" to 2\n))\n\n// Create an arbitrarily nested JSON equivalent to:\n// {\n// "a": [1, 2],\n// "b": [3, 4]\n// }\nval complexValue: JsonValue = JsonValue.from(mapOf(\n "a" to listOf(\n 1, 2\n ), "b" to listOf(\n 3, 4\n )\n))\n```\n\nNormally a `Builder` class\'s `build` method will throw [`IllegalStateException`](https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html) if any required parameter or property is unset.\n\nTo forcibly omit a required parameter or property, pass [`JsonMissing`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/core/Values.kt):\n\n```kotlin\nimport com.lithic.api.core.JsonMissing\nimport com.lithic.api.models.CardCreateParams\n\nval params: CardCreateParams = CardCreateParams.builder()\n .type(JsonMissing.of())\n .build()\n```\n\n### Response properties\n\nTo access undocumented response properties, call the `_additionalProperties()` method:\n\n```kotlin\nimport com.lithic.api.core.JsonBoolean\nimport com.lithic.api.core.JsonNull\nimport com.lithic.api.core.JsonNumber\nimport com.lithic.api.core.JsonValue\n\nval additionalProperties: Map = client.cards().create(params)._additionalProperties()\nval secretPropertyValue: JsonValue = additionalProperties.get("secretProperty")\n\nval result = when (secretPropertyValue) {\n is JsonNull -> "It\'s null!"\n is JsonBoolean -> "It\'s a boolean!"\n is JsonNumber -> "It\'s a number!"\n // Other types include `JsonMissing`, `JsonString`, `JsonArray`, and `JsonObject`\n else -> "It\'s something else!"\n}\n```\n\nTo access a property\'s raw JSON value, which may be undocumented, call its `_` prefixed method:\n\n```kotlin\nimport com.lithic.api.core.JsonField\nimport com.lithic.api.models.CardCreateParams\n\nval type: JsonField = client.cards().create(params)._type()\n\nif (type.isMissing()) {\n // The property is absent from the JSON response\n} else if (type.isNull()) {\n // The property was set to literal null\n} else {\n // Check if value was provided as a string\n // Other methods include `asNumber()`, `asBoolean()`, etc.\n val jsonString: String? = type.asString();\n\n // Try to deserialize into a custom type\n val myObject: MyClass = type.asUnknown()!!.convert(MyClass::class.java)\n}\n```\n\n### Response validation\n\nIn rare cases, the API may return a response that doesn\'t match the expected type. For example, the SDK may expect a property to contain a `String`, but the API could return something else.\n\nBy default, the SDK will not throw an exception in this case. It will throw [`LithicInvalidDataException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/LithicInvalidDataException.kt) only if you directly access the property.\n\nIf you would prefer to check that the response is completely well-typed upfront, then either call `validate()`:\n\n```kotlin\nimport com.lithic.api.models.Card\n\nval card: Card = client.cards().create(params).validate()\n```\n\nOr configure the method call to validate the response using the `responseValidation` method:\n\n```kotlin\nimport com.lithic.api.models.Card\n\nval card: Card = client.cards().create(\n params, RequestOptions.builder().responseValidation(true).build()\n)\n```\n\nOr configure the default for all method calls at the client level:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .fromEnv()\n .responseValidation(true)\n .build()\n```\n\n## FAQ\n\n### Why don\'t you use plain `enum` classes?\n\nKotlin `enum` classes are not trivially [forwards compatible](https://www.stainless.com/blog/making-java-enums-forwards-compatible). Using them in the SDK could cause runtime exceptions if the API is updated to respond with a new enum value.\n\n### Why do you represent fields using `JsonField` instead of just plain `T`?\n\nUsing `JsonField` enables a few features:\n\n- Allowing usage of [undocumented API functionality](#undocumented-api-functionality)\n- Lazily [validating the API response against the expected shape](#response-validation)\n- Representing absent vs explicitly null values\n\n### Why don\'t you use [`data` classes](https://kotlinlang.org/docs/data-classes.html)?\n\nIt is not [backwards compatible to add new fields to a data class](https://kotlinlang.org/docs/api-guidelines-backward-compatibility.html#avoid-using-data-classes-in-your-api) and we don\'t want to introduce a breaking change every time we add a field to a class.\n\n### Why don\'t you use checked exceptions?\n\nChecked exceptions are widely considered a mistake in the Java programming language. In fact, they were omitted from Kotlin for this reason.\n\nChecked exceptions:\n\n- Are verbose to handle\n- Encourage error handling at the wrong level of abstraction, where nothing can be done about the error\n- Are tedious to propagate due to the [function coloring problem](https://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function)\n- Don\'t play well with lambdas (also due to the function coloring problem)\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n2. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/lithic-com/lithic-kotlin/issues) with questions, bugs, or suggestions.\n',
+ },
+];
const INDEX_OPTIONS = {
fields: [
From 02ffecd02928f29989d1e5afe1779bc97950b9e1 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 31 Mar 2026 17:58:55 +0000
Subject: [PATCH 053/164] fix(internal): gitignore generated `oidc` dir
---
.gitignore | 1 +
1 file changed, 1 insertion(+)
diff --git a/.gitignore b/.gitignore
index b7d4f6b9..ae4aa20e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,3 +11,4 @@ dist-deno
.eslintcache
dist-bundle
*.mcpb
+oidc
From e11f1b8c3e0ec0c5a8a6575577ccf0a5a2e48993 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 31 Mar 2026 21:08:41 +0000
Subject: [PATCH 054/164] feat(api): add decline count attributes to auth-rules
v2
---
.stats.yml | 4 ++--
src/resources/auth-rules/v2/v2.ts | 9 +++++++++
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index f20dc054..d11f292a 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-eb2cf51467f505a1d29c3ca40b9595ecbf6d6a3743f53bc42a52c8135a252ff0.yml
-openapi_spec_hash: 2fbd71b69d71138b3e54432a38d759ed
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-27d13d3d5226c710b07f9fc954fa53a8e6923e74d90d3f587d96399c1baf4de3.yml
+openapi_spec_hash: 99a60cbd91f32b25617a9536fadebf07
config_hash: edbdfefeb0d3d927c2f9fe3402793215
diff --git a/src/resources/auth-rules/v2/v2.ts b/src/resources/auth-rules/v2/v2.ts
index 6925e18d..076bf9ea 100644
--- a/src/resources/auth-rules/v2/v2.ts
+++ b/src/resources/auth-rules/v2/v2.ts
@@ -766,6 +766,12 @@ export namespace ConditionalAuthorizationActionParameters {
* trailing hour up and until the authorization.
* - `CARD_TRANSACTION_COUNT_24H`: The number of transactions on the card in the
* trailing 24 hours up and until the authorization.
+ * - `CARD_DECLINE_COUNT_15M`: The number of declined transactions on the card in
+ * the trailing 15 minutes before the authorization.
+ * - `CARD_DECLINE_COUNT_1H`: The number of declined transactions on the card in
+ * the trailing hour up and until the authorization.
+ * - `CARD_DECLINE_COUNT_24H`: The number of declined transactions on the card in
+ * the trailing 24 hours up and until the authorization.
* - `CARD_STATE`: The current state of the card associated with the transaction.
* Valid values are `CLOSED`, `OPEN`, `PAUSED`, `PENDING_ACTIVATION`,
* `PENDING_FULFILLMENT`.
@@ -807,6 +813,9 @@ export namespace ConditionalAuthorizationActionParameters {
| 'CARD_TRANSACTION_COUNT_15M'
| 'CARD_TRANSACTION_COUNT_1H'
| 'CARD_TRANSACTION_COUNT_24H'
+ | 'CARD_DECLINE_COUNT_15M'
+ | 'CARD_DECLINE_COUNT_1H'
+ | 'CARD_DECLINE_COUNT_24H'
| 'CARD_STATE'
| 'PIN_ENTERED'
| 'PIN_STATUS'
From 550838dbadb48c5b545911203b885a836b8fd595 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 1 Apr 2026 16:01:26 +0000
Subject: [PATCH 055/164] chore(internal): support type annotations when
running MCP in local execution mode
---
packages/mcp-server/src/code-tool-worker.ts | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/packages/mcp-server/src/code-tool-worker.ts b/packages/mcp-server/src/code-tool-worker.ts
index e3230a71..764db35b 100644
--- a/packages/mcp-server/src/code-tool-worker.ts
+++ b/packages/mcp-server/src/code-tool-worker.ts
@@ -7,6 +7,10 @@ import ts from 'typescript';
import { WorkerOutput } from './code-tool-types';
import { Lithic, ClientOptions } from 'lithic';
+async function tseval(code: string) {
+ return import('data:application/typescript;charset=utf-8;base64,' + Buffer.from(code).toString('base64'));
+}
+
function getRunFunctionSource(code: string): {
type: 'declaration' | 'expression';
client: string | undefined;
@@ -428,7 +432,9 @@ const fetch = async (req: Request): Promise => {
const log_lines: string[] = [];
const err_lines: string[] = [];
- const console = {
+ const originalConsole = globalThis.console;
+ globalThis.console = {
+ ...originalConsole,
log: (...args: unknown[]) => {
log_lines.push(util.format(...args));
},
@@ -438,7 +444,7 @@ const fetch = async (req: Request): Promise => {
};
try {
let run_ = async (client: any) => {};
- eval(`${code}\nrun_ = run;`);
+ run_ = (await tseval(`${code}\nexport default run;`)).default;
const result = await run_(makeSdkProxy(client, { path: ['client'] }));
return Response.json({
is_error: false,
@@ -456,6 +462,8 @@ const fetch = async (req: Request): Promise => {
} satisfies WorkerOutput,
{ status: 400, statusText: 'Code execution error' },
);
+ } finally {
+ globalThis.console = originalConsole;
}
};
From 083202bcd1e009b64d3e3727ea73aec257c382c6 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Thu, 2 Apr 2026 12:37:45 +0000
Subject: [PATCH 056/164] chore(mcp-server): log client info
---
packages/mcp-server/src/http.ts | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/packages/mcp-server/src/http.ts b/packages/mcp-server/src/http.ts
index 39d193a4..c07709d6 100644
--- a/packages/mcp-server/src/http.ts
+++ b/packages/mcp-server/src/http.ts
@@ -69,6 +69,11 @@ const newServer = async ({
}
}
+ const mcpClientInfo =
+ typeof req.body?.params?.clientInfo?.name === 'string' ?
+ { name: req.body.params.clientInfo.name, version: String(req.body.params.clientInfo.version ?? '') }
+ : undefined;
+
await initMcpServer({
server: server,
mcpOptions: effectiveMcpOptions,
@@ -79,12 +84,13 @@ const newServer = async ({
stainlessApiKey: stainlessApiKey,
upstreamClientEnvs,
mcpSessionId: (req as any).mcpSessionId,
- mcpClientInfo:
- typeof req.body?.params?.clientInfo?.name === 'string' ?
- { name: req.body.params.clientInfo.name, version: String(req.body.params.clientInfo.version ?? '') }
- : undefined,
+ mcpClientInfo,
});
+ if (mcpClientInfo) {
+ getLogger().info({ mcpSessionId: (req as any).mcpSessionId, mcpClientInfo }, 'MCP client connected');
+ }
+
return server;
};
@@ -154,6 +160,9 @@ export const streamableHTTPApp = ({
app.use(
pinoHttp({
logger: getLogger(),
+ customProps: (req) => ({
+ mcpSessionId: (req as any).mcpSessionId,
+ }),
customLogLevel: (req, res) => {
if (res.statusCode >= 500) {
return 'error';
From 88f9caaa4903a5036a37daf29c95369f7e2fe1ca Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Thu, 2 Apr 2026 13:41:48 +0000
Subject: [PATCH 057/164] feat(api): add statement_totals field to Statement
response
---
.stats.yml | 4 ++--
packages/mcp-server/src/local-docs-search.ts | 8 ++++----
src/resources/financial-accounts/statements/statements.ts | 2 ++
3 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index d11f292a..0f37c1b0 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-27d13d3d5226c710b07f9fc954fa53a8e6923e74d90d3f587d96399c1baf4de3.yml
-openapi_spec_hash: 99a60cbd91f32b25617a9536fadebf07
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-bf54d7063b11e1b1656e00d02438f34f87938a9fdbdd5b980fce3cfae3dabffa.yml
+openapi_spec_hash: c6efbc9d3105fa48f76ebb095b887e08
config_hash: edbdfefeb0d3d927c2f9fe3402793215
diff --git a/packages/mcp-server/src/local-docs-search.ts b/packages/mcp-server/src/local-docs-search.ts
index 623baa13..adc00842 100644
--- a/packages/mcp-server/src/local-docs-search.ts
+++ b/packages/mcp-server/src/local-docs-search.ts
@@ -5350,9 +5350,9 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'starting_after?: string;',
],
response:
- "{ token: string; account_standing: object; amount_due: object; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: statement_totals; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: statement_totals; interest_details?: object; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: object; }",
+ "{ token: string; account_standing: object; amount_due: object; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: statement_totals; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: statement_totals; interest_details?: object; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: object; statement_totals?: statement_totals; }",
markdown:
- "## list\n\n`client.financialAccounts.statements.list(financial_account_token: string, begin?: string, end?: string, ending_before?: string, include_initial_statements?: boolean, page_size?: number, starting_after?: string): { token: string; account_standing: object; amount_due: object; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: statement_totals; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: statement_totals; interest_details?: object; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: object; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/statements`\n\nList the statements for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified date will be included.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified date will be included.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `include_initial_statements?: boolean`\n Whether to include the initial statement. It is not included by default.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }; amount_due: { amount: number; past_due: number; }; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; interest_details?: { actual_interest_charged: number; daily_balance_amounts: object; effective_apr: object; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: object; prime_rate: string; minimum_interest_charged?: number; }; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: { minimum_payment_months: string; minimum_payment_total: string; payoff_period_length_months: number; payoff_period_monthly_payment_amount: number; payoff_period_payment_total: number; }; }`\n\n - `token: string`\n - `account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }`\n - `amount_due: { amount: number; past_due: number; }`\n - `available_credit: number`\n - `created: string`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `days_in_billing_cycle: number`\n - `ending_balance: number`\n - `financial_account_token: string`\n - `payment_due_date: string`\n - `period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `starting_balance: number`\n - `statement_end_date: string`\n - `statement_start_date: string`\n - `statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'`\n - `updated: string`\n - `ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `interest_details?: { actual_interest_charged: number; daily_balance_amounts: { balance_transfers: string; cash_advances: string; purchases: string; }; effective_apr: { balance_transfers: string; cash_advances: string; purchases: string; }; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: { balance_transfers: string; cash_advances: string; purchases: string; }; prime_rate: string; minimum_interest_charged?: number; }`\n - `next_payment_due_date?: string`\n - `next_statement_end_date?: string`\n - `payoff_details?: { minimum_payment_months: string; minimum_payment_total: string; payoff_period_length_months: number; payoff_period_monthly_payment_amount: number; payoff_period_payment_total: number; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const statement of client.financialAccounts.statements.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(statement);\n}\n```",
+ "## list\n\n`client.financialAccounts.statements.list(financial_account_token: string, begin?: string, end?: string, ending_before?: string, include_initial_statements?: boolean, page_size?: number, starting_after?: string): { token: string; account_standing: object; amount_due: object; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: statement_totals; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: statement_totals; interest_details?: object; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: object; statement_totals?: statement_totals; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/statements`\n\nList the statements for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified date will be included.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified date will be included.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `include_initial_statements?: boolean`\n Whether to include the initial statement. It is not included by default.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }; amount_due: { amount: number; past_due: number; }; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; interest_details?: { actual_interest_charged: number; daily_balance_amounts: object; effective_apr: object; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: object; prime_rate: string; minimum_interest_charged?: number; }; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: { minimum_payment_months: string; minimum_payment_total: string; payoff_period_length_months: number; payoff_period_monthly_payment_amount: number; payoff_period_payment_total: number; }; statement_totals?: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; }`\n\n - `token: string`\n - `account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }`\n - `amount_due: { amount: number; past_due: number; }`\n - `available_credit: number`\n - `created: string`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `days_in_billing_cycle: number`\n - `ending_balance: number`\n - `financial_account_token: string`\n - `payment_due_date: string`\n - `period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `starting_balance: number`\n - `statement_end_date: string`\n - `statement_start_date: string`\n - `statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'`\n - `updated: string`\n - `ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `interest_details?: { actual_interest_charged: number; daily_balance_amounts: { balance_transfers: string; cash_advances: string; purchases: string; }; effective_apr: { balance_transfers: string; cash_advances: string; purchases: string; }; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: { balance_transfers: string; cash_advances: string; purchases: string; }; prime_rate: string; minimum_interest_charged?: number; }`\n - `next_payment_due_date?: string`\n - `next_statement_end_date?: string`\n - `payoff_details?: { minimum_payment_months: string; minimum_payment_total: string; payoff_period_length_months: number; payoff_period_monthly_payment_amount: number; payoff_period_payment_total: number; }`\n - `statement_totals?: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const statement of client.financialAccounts.statements.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(statement);\n}\n```",
perLanguage: {
go: {
method: 'client.FinancialAccounts.Statements.List',
@@ -5400,9 +5400,9 @@ const EMBEDDED_METHODS: MethodEntry[] = [
qualified: 'client.financialAccounts.statements.retrieve',
params: ['financial_account_token: string;', 'statement_token: string;'],
response:
- "{ token: string; account_standing: object; amount_due: object; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: statement_totals; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: statement_totals; interest_details?: object; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: object; }",
+ "{ token: string; account_standing: object; amount_due: object; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: statement_totals; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: statement_totals; interest_details?: object; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: object; statement_totals?: statement_totals; }",
markdown:
- "## retrieve\n\n`client.financialAccounts.statements.retrieve(financial_account_token: string, statement_token: string): { token: string; account_standing: object; amount_due: object; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: statement_totals; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: statement_totals; interest_details?: object; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: object; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/statements/{statement_token}`\n\nGet a specific statement for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n- `statement_token: string`\n Globally unique identifier for statements.\n\n### Returns\n\n- `{ token: string; account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }; amount_due: { amount: number; past_due: number; }; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; interest_details?: { actual_interest_charged: number; daily_balance_amounts: object; effective_apr: object; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: object; prime_rate: string; minimum_interest_charged?: number; }; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: { minimum_payment_months: string; minimum_payment_total: string; payoff_period_length_months: number; payoff_period_monthly_payment_amount: number; payoff_period_payment_total: number; }; }`\n\n - `token: string`\n - `account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }`\n - `amount_due: { amount: number; past_due: number; }`\n - `available_credit: number`\n - `created: string`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `days_in_billing_cycle: number`\n - `ending_balance: number`\n - `financial_account_token: string`\n - `payment_due_date: string`\n - `period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `starting_balance: number`\n - `statement_end_date: string`\n - `statement_start_date: string`\n - `statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'`\n - `updated: string`\n - `ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `interest_details?: { actual_interest_charged: number; daily_balance_amounts: { balance_transfers: string; cash_advances: string; purchases: string; }; effective_apr: { balance_transfers: string; cash_advances: string; purchases: string; }; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: { balance_transfers: string; cash_advances: string; purchases: string; }; prime_rate: string; minimum_interest_charged?: number; }`\n - `next_payment_due_date?: string`\n - `next_statement_end_date?: string`\n - `payoff_details?: { minimum_payment_months: string; minimum_payment_total: string; payoff_period_length_months: number; payoff_period_monthly_payment_amount: number; payoff_period_payment_total: number; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst statement = await client.financialAccounts.statements.retrieve('statement_token', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(statement);\n```",
+ "## retrieve\n\n`client.financialAccounts.statements.retrieve(financial_account_token: string, statement_token: string): { token: string; account_standing: object; amount_due: object; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: statement_totals; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: statement_totals; interest_details?: object; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: object; statement_totals?: statement_totals; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/statements/{statement_token}`\n\nGet a specific statement for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n- `statement_token: string`\n Globally unique identifier for statements.\n\n### Returns\n\n- `{ token: string; account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }; amount_due: { amount: number; past_due: number; }; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; interest_details?: { actual_interest_charged: number; daily_balance_amounts: object; effective_apr: object; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: object; prime_rate: string; minimum_interest_charged?: number; }; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: { minimum_payment_months: string; minimum_payment_total: string; payoff_period_length_months: number; payoff_period_monthly_payment_amount: number; payoff_period_payment_total: number; }; statement_totals?: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; }`\n\n - `token: string`\n - `account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }`\n - `amount_due: { amount: number; past_due: number; }`\n - `available_credit: number`\n - `created: string`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `days_in_billing_cycle: number`\n - `ending_balance: number`\n - `financial_account_token: string`\n - `payment_due_date: string`\n - `period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `starting_balance: number`\n - `statement_end_date: string`\n - `statement_start_date: string`\n - `statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'`\n - `updated: string`\n - `ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `interest_details?: { actual_interest_charged: number; daily_balance_amounts: { balance_transfers: string; cash_advances: string; purchases: string; }; effective_apr: { balance_transfers: string; cash_advances: string; purchases: string; }; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: { balance_transfers: string; cash_advances: string; purchases: string; }; prime_rate: string; minimum_interest_charged?: number; }`\n - `next_payment_due_date?: string`\n - `next_statement_end_date?: string`\n - `payoff_details?: { minimum_payment_months: string; minimum_payment_total: string; payoff_period_length_months: number; payoff_period_monthly_payment_amount: number; payoff_period_payment_total: number; }`\n - `statement_totals?: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst statement = await client.financialAccounts.statements.retrieve('statement_token', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(statement);\n```",
perLanguage: {
go: {
method: 'client.FinancialAccounts.Statements.Get',
diff --git a/src/resources/financial-accounts/statements/statements.ts b/src/resources/financial-accounts/statements/statements.ts
index 7ed7769d..10ee9371 100644
--- a/src/resources/financial-accounts/statements/statements.ts
+++ b/src/resources/financial-accounts/statements/statements.ts
@@ -172,6 +172,8 @@ export interface Statement {
* Details on number and size of payments to pay off balance
*/
payoff_details?: Statement.PayoffDetails | null;
+
+ statement_totals?: FinancialAccountsAPI.StatementTotals;
}
export namespace Statement {
From 686d059c750555133c0d517681d452194438847c Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Thu, 2 Apr 2026 19:30:27 +0000
Subject: [PATCH 058/164] chore(internal): use link instead of file in MCP
server package.json files
---
packages/mcp-server/package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json
index 98904894..512306d8 100644
--- a/packages/mcp-server/package.json
+++ b/packages/mcp-server/package.json
@@ -30,7 +30,7 @@
"fix": "eslint --fix ."
},
"dependencies": {
- "lithic": "file:../../dist/",
+ "lithic": "link:../../dist/",
"ajv": "^8.18.0",
"@cloudflare/cabidela": "^0.2.4",
"@hono/node-server": "^1.19.10",
From 392fcc381b7ceb2ce306db0f2f072bc48c413e12 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Thu, 2 Apr 2026 21:05:47 +0000
Subject: [PATCH 059/164] chore(internal): fix MCP docker image builds in yarn
projects
---
packages/mcp-server/Dockerfile | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/packages/mcp-server/Dockerfile b/packages/mcp-server/Dockerfile
index 9529570b..f02d32a4 100644
--- a/packages/mcp-server/Dockerfile
+++ b/packages/mcp-server/Dockerfile
@@ -35,7 +35,9 @@ COPY . .
# Install all dependencies and build everything
RUN yarn install --frozen-lockfile && \
- yarn build
+ yarn build && \
+ # Remove the symlink to the SDK so it doesn't interfere with the explicit COPY below
+ rm -Rf packages/mcp-server/node_modules/lithic
FROM denoland/deno:alpine-2.7.1
From 6d607969b98a1c39a5aadfeb14cddaa318d4d2ea Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 6 Apr 2026 18:13:44 +0000
Subject: [PATCH 060/164] chore(internal): fix MCP server import ordering
---
packages/mcp-server/src/instructions.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/mcp-server/src/instructions.ts b/packages/mcp-server/src/instructions.ts
index 818694cb..d831ff4a 100644
--- a/packages/mcp-server/src/instructions.ts
+++ b/packages/mcp-server/src/instructions.ts
@@ -1,8 +1,8 @@
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import fs from 'fs/promises';
-import { readEnv } from './util';
import { getLogger } from './logger';
+import { readEnv } from './util';
const INSTRUCTIONS_CACHE_TTL_MS = 15 * 60 * 1000; // 15 minutes
From cde753a6e3f6345c0d8cf961902ccaf43619b247 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 7 Apr 2026 13:07:31 +0000
Subject: [PATCH 061/164] fix(types): make credit_product_token optional in
Statement
---
.stats.yml | 4 ++--
src/resources/financial-accounts/statements/statements.ts | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 0f37c1b0..b4d51b4c 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-bf54d7063b11e1b1656e00d02438f34f87938a9fdbdd5b980fce3cfae3dabffa.yml
-openapi_spec_hash: c6efbc9d3105fa48f76ebb095b887e08
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-0b90022fb88c44037dcbff183d3016a85fe7267c5b461f65a54262f734629a2b.yml
+openapi_spec_hash: 7b35e7c203748b3424b5931acd6dacf8
config_hash: edbdfefeb0d3d927c2f9fe3402793215
diff --git a/src/resources/financial-accounts/statements/statements.ts b/src/resources/financial-accounts/statements/statements.ts
index 10ee9371..62a61b68 100644
--- a/src/resources/financial-accounts/statements/statements.ts
+++ b/src/resources/financial-accounts/statements/statements.ts
@@ -102,7 +102,7 @@ export interface Statement {
/**
* Globally unique identifier for a credit product
*/
- credit_product_token: string;
+ credit_product_token: string | null;
/**
* Number of days in the billing cycle
From 034a33f0a8d6aa2cf9beb55cc6664938ddd15274 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 7 Apr 2026 19:43:58 +0000
Subject: [PATCH 062/164] fix(types): make fields required, remove hostname in
card authorization approval webhook
---
.stats.yml | 4 ++--
src/resources/webhooks.ts | 22 ++++++++--------------
2 files changed, 10 insertions(+), 16 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index b4d51b4c..236957bc 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-0b90022fb88c44037dcbff183d3016a85fe7267c5b461f65a54262f734629a2b.yml
-openapi_spec_hash: 7b35e7c203748b3424b5931acd6dacf8
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-0340e93de3d3691236aa19c800980112e05dc61fa13f8d8d7ca72e335720a31b.yml
+openapi_spec_hash: a271f7753dd6e560fcee7dd8b9e17927
config_hash: edbdfefeb0d3d927c2f9fe3402793215
diff --git a/src/resources/webhooks.ts b/src/resources/webhooks.ts
index 6a5f3710..d7f80d92 100644
--- a/src/resources/webhooks.ts
+++ b/src/resources/webhooks.ts
@@ -955,23 +955,17 @@ export namespace CardAuthorizationApprovalRequestWebhookEvent {
/**
* Globally unique identifier for the card.
*/
- token?: string;
-
- /**
- * Hostname of card’s locked merchant (will be empty if not applicable)
- */
- hostname?: string;
+ token: string;
/**
* Last four digits of the card number
*/
- last_four?: string;
+ last_four: string;
/**
- * Customizable name to identify the card. We recommend against using this field to
- * store JSON data as it can cause unexpected behavior.
+ * Customizable name to identify the card
*/
- memo?: string;
+ memo: string;
/**
* Amount (in cents) to limit approved authorizations. Purchase requests above the
@@ -983,18 +977,18 @@ export namespace CardAuthorizationApprovalRequestWebhookEvent {
* charges (i.e., when a merchant sends a clearing message without a prior
* authorization).
*/
- spend_limit?: number;
+ spend_limit: number;
/**
* Note that to support recurring monthly payments, which can occur on different
* day every month, the time window we consider for MONTHLY velocity starts 6 days
* after the current calendar date one month prior.
*/
- spend_limit_duration?: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION';
+ spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION';
- state?: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT';
+ state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT';
- type?: 'SINGLE_USE' | 'MERCHANT_LOCKED' | 'UNLOCKED' | 'PHYSICAL' | 'DIGITAL_WALLET' | 'VIRTUAL';
+ type: 'SINGLE_USE' | 'MERCHANT_LOCKED' | 'UNLOCKED' | 'PHYSICAL' | 'DIGITAL_WALLET' | 'VIRTUAL';
}
/**
From 5ad26c519f8182677a7ac83a46cf3aa2c51a82d1 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 8 Apr 2026 14:02:56 +0000
Subject: [PATCH 063/164] chore(mcp-server): increase local docs search result
count from 5 to 10
---
packages/mcp-server/src/docs-search-tool.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/mcp-server/src/docs-search-tool.ts b/packages/mcp-server/src/docs-search-tool.ts
index 7d0e54fa..e6387841 100644
--- a/packages/mcp-server/src/docs-search-tool.ts
+++ b/packages/mcp-server/src/docs-search-tool.ts
@@ -63,7 +63,7 @@ async function searchLocal(args: Record): Promise {
query,
language,
detail,
- maxResults: 5,
+ maxResults: 10,
}).results;
}
From cefbc846dde2b56cbc21c63b88c6bd771ebaaaa3 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 8 Apr 2026 16:01:40 +0000
Subject: [PATCH 064/164] chore(internal): codegen related update
---
packages/mcp-server/src/util.ts | 4 ++--
src/internal/utils/env.ts | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/packages/mcp-server/src/util.ts b/packages/mcp-server/src/util.ts
index 40ed5501..069a2b47 100644
--- a/packages/mcp-server/src/util.ts
+++ b/packages/mcp-server/src/util.ts
@@ -2,9 +2,9 @@
export const readEnv = (env: string): string | undefined => {
if (typeof (globalThis as any).process !== 'undefined') {
- return (globalThis as any).process.env?.[env]?.trim();
+ return (globalThis as any).process.env?.[env]?.trim() || undefined;
} else if (typeof (globalThis as any).Deno !== 'undefined') {
- return (globalThis as any).Deno.env?.get?.(env)?.trim();
+ return (globalThis as any).Deno.env?.get?.(env)?.trim() || undefined;
}
return;
};
diff --git a/src/internal/utils/env.ts b/src/internal/utils/env.ts
index 2d848007..cc5fa0fa 100644
--- a/src/internal/utils/env.ts
+++ b/src/internal/utils/env.ts
@@ -9,10 +9,10 @@
*/
export const readEnv = (env: string): string | undefined => {
if (typeof (globalThis as any).process !== 'undefined') {
- return (globalThis as any).process.env?.[env]?.trim() ?? undefined;
+ return (globalThis as any).process.env?.[env]?.trim() || undefined;
}
if (typeof (globalThis as any).Deno !== 'undefined') {
- return (globalThis as any).Deno.env?.get?.(env)?.trim();
+ return (globalThis as any).Deno.env?.get?.(env)?.trim() || undefined;
}
return undefined;
};
From 2ec8f5cd3a00c15ea17a4b143e7b9d5e13456523 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 8 Apr 2026 16:06:26 +0000
Subject: [PATCH 065/164] feat(api): add INTERCHANGE, CHARGEBACK,
PROVISIONAL_CREDIT_ACCOUNT to financial account type
---
.stats.yml | 4 ++--
src/resources/financial-accounts/financial-accounts.ts | 5 ++++-
src/resources/shared.ts | 5 ++++-
3 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 236957bc..b8ebefe6 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-0340e93de3d3691236aa19c800980112e05dc61fa13f8d8d7ca72e335720a31b.yml
-openapi_spec_hash: a271f7753dd6e560fcee7dd8b9e17927
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-968332d811097ed493d8cc12d89a29b66f993fe106f5f786998a9e04358584d1.yml
+openapi_spec_hash: a68060c43dc156d25ef4d68dfe73e55d
config_hash: edbdfefeb0d3d927c2f9fe3402793215
diff --git a/src/resources/financial-accounts/financial-accounts.ts b/src/resources/financial-accounts/financial-accounts.ts
index 354ea1e6..450a1905 100644
--- a/src/resources/financial-accounts/financial-accounts.ts
+++ b/src/resources/financial-accounts/financial-accounts.ts
@@ -257,7 +257,10 @@ export interface FinancialAccount {
| 'PROGRAM_RECEIVABLES'
| 'COLLECTION'
| 'PROGRAM_BANK_ACCOUNTS_PAYABLE'
- | 'EARLY_DIRECT_DEPOSIT_FLOAT';
+ | 'EARLY_DIRECT_DEPOSIT_FLOAT'
+ | 'INTERCHANGE'
+ | 'CHARGEBACK'
+ | 'PROVISIONAL_CREDIT_ACCOUNT';
updated: string;
diff --git a/src/resources/shared.ts b/src/resources/shared.ts
index ba1541c3..b57bed39 100644
--- a/src/resources/shared.ts
+++ b/src/resources/shared.ts
@@ -306,7 +306,10 @@ export type InstanceFinancialAccountType =
| 'PROGRAM_RECEIVABLES'
| 'COLLECTION'
| 'PROGRAM_BANK_ACCOUNTS_PAYABLE'
- | 'EARLY_DIRECT_DEPOSIT_FLOAT';
+ | 'EARLY_DIRECT_DEPOSIT_FLOAT'
+ | 'INTERCHANGE'
+ | 'CHARGEBACK'
+ | 'PROVISIONAL_CREDIT_ACCOUNT';
export interface Merchant {
/**
From bfc4ddb91f182694d93d182b4531b01da8731cbe Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 8 Apr 2026 16:53:25 +0000
Subject: [PATCH 066/164] fix(types): remove INTERCHANGE/CHARGEBACK from
FinancialAccount types
---
.stats.yml | 4 ++--
src/resources/financial-accounts/financial-accounts.ts | 2 --
src/resources/shared.ts | 2 --
3 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index b8ebefe6..382ab5a6 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-968332d811097ed493d8cc12d89a29b66f993fe106f5f786998a9e04358584d1.yml
-openapi_spec_hash: a68060c43dc156d25ef4d68dfe73e55d
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-bce16144ab1915776bd58c413ad5226451e06d1ab10b8329a0954d65020defb7.yml
+openapi_spec_hash: ee2dded6efa47929d7fde4aed56e141d
config_hash: edbdfefeb0d3d927c2f9fe3402793215
diff --git a/src/resources/financial-accounts/financial-accounts.ts b/src/resources/financial-accounts/financial-accounts.ts
index 450a1905..e3256f6d 100644
--- a/src/resources/financial-accounts/financial-accounts.ts
+++ b/src/resources/financial-accounts/financial-accounts.ts
@@ -258,8 +258,6 @@ export interface FinancialAccount {
| 'COLLECTION'
| 'PROGRAM_BANK_ACCOUNTS_PAYABLE'
| 'EARLY_DIRECT_DEPOSIT_FLOAT'
- | 'INTERCHANGE'
- | 'CHARGEBACK'
| 'PROVISIONAL_CREDIT_ACCOUNT';
updated: string;
diff --git a/src/resources/shared.ts b/src/resources/shared.ts
index b57bed39..f95bade1 100644
--- a/src/resources/shared.ts
+++ b/src/resources/shared.ts
@@ -307,8 +307,6 @@ export type InstanceFinancialAccountType =
| 'COLLECTION'
| 'PROGRAM_BANK_ACCOUNTS_PAYABLE'
| 'EARLY_DIRECT_DEPOSIT_FLOAT'
- | 'INTERCHANGE'
- | 'CHARGEBACK'
| 'PROVISIONAL_CREDIT_ACCOUNT';
export interface Merchant {
From 6d987013ca565bbbca9585eb1ddd197452840121 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Thu, 9 Apr 2026 10:18:07 +0000
Subject: [PATCH 067/164] feat(api): add transaction_token field to auth rules
v2 results response
---
.stats.yml | 4 ++--
packages/mcp-server/src/local-docs-search.ts | 4 ++--
src/resources/auth-rules/v2/v2.ts | 20 ++++++++++++++++++++
3 files changed, 24 insertions(+), 4 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 382ab5a6..63e9c8c6 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-bce16144ab1915776bd58c413ad5226451e06d1ab10b8329a0954d65020defb7.yml
-openapi_spec_hash: ee2dded6efa47929d7fde4aed56e141d
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-fde7dad9bd08702d5db270fdd3cb533bc927387c4ea5aa19b11c67dd3ea643d4.yml
+openapi_spec_hash: bf4c200978915ccdf7f4a5734e796a07
config_hash: edbdfefeb0d3d927c2f9fe3402793215
diff --git a/packages/mcp-server/src/local-docs-search.ts b/packages/mcp-server/src/local-docs-search.ts
index adc00842..b8c07657 100644
--- a/packages/mcp-server/src/local-docs-search.ts
+++ b/packages/mcp-server/src/local-docs-search.ts
@@ -1439,9 +1439,9 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'starting_after?: string;',
],
response:
- "{ token: string; actions: { code: string; type: 'DECLINE'; explanation?: string; } | { type: 'CHALLENGE'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'AUTHORIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'DECLINE' | 'CHALLENGE'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'THREE_DS_AUTHENTICATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'DECLINE'; explanation?: string; reason?: string; } | { type: 'REQUIRE_TFA'; explanation?: string; reason?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'TOKENIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'APPROVE'; explanation?: string; } | { code: string; type: 'RETURN'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'ACH_CREDIT_RECEIPT' | 'ACH_DEBIT_RECEIPT'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; }",
+ "{ token: string; actions: object | object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'AUTHORIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; transaction_token: string; } | { token: string; actions: object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'THREE_DS_AUTHENTICATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; transaction_token: string; } | { token: string; actions: object | object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'TOKENIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; transaction_token: string; } | { token: string; actions: object | object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'ACH_CREDIT_RECEIPT' | 'ACH_DEBIT_RECEIPT'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; transaction_token: string; }",
markdown:
- "## list_results\n\n`client.authRules.v2.listResults(auth_rule_token?: string, begin?: string, end?: string, ending_before?: string, event_token?: string, has_actions?: boolean, page_size?: number, starting_after?: string): { token: string; actions: object | object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'AUTHORIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'THREE_DS_AUTHENTICATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: object | object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'TOKENIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: object | object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'ACH_CREDIT_RECEIPT' | 'ACH_DEBIT_RECEIPT'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; }`\n\n**get** `/v2/auth_rules/results`\n\nLists Auth Rule evaluation results.\n\n**Limitations:**\n- Results are available for the past 3 months only\n- At least one filter (`event_token` or `auth_rule_token`) must be provided\n- When filtering by `event_token`, pagination is not supported\n\n\n### Parameters\n\n- `auth_rule_token?: string`\n Filter by Auth Rule token\n\n- `begin?: string`\n Date string in RFC 3339 format. Only events evaluated after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only events evaluated before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `event_token?: string`\n Filter by event token\n\n- `has_actions?: boolean`\n Filter by whether the rule evaluation produced any actions. When not provided, all results are returned.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; actions: { code: string; type: 'DECLINE'; explanation?: string; } | { type: 'CHALLENGE'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'AUTHORIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'DECLINE' | 'CHALLENGE'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'THREE_DS_AUTHENTICATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'DECLINE'; explanation?: string; reason?: string; } | { type: 'REQUIRE_TFA'; explanation?: string; reason?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'TOKENIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; } | { token: string; actions: { type: 'APPROVE'; explanation?: string; } | { code: string; type: 'RETURN'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'ACH_CREDIT_RECEIPT' | 'ACH_DEBIT_RECEIPT'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; }`\n Result of an Auth Rule evaluation\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const v2ListResultsResponse of client.authRules.v2.listResults()) {\n console.log(v2ListResultsResponse);\n}\n```",
+ "## list_results\n\n`client.authRules.v2.listResults(auth_rule_token?: string, begin?: string, end?: string, ending_before?: string, event_token?: string, has_actions?: boolean, page_size?: number, starting_after?: string): { token: string; actions: object | object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'AUTHORIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; transaction_token: string; } | { token: string; actions: object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'THREE_DS_AUTHENTICATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; transaction_token: string; } | { token: string; actions: object | object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'TOKENIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; transaction_token: string; } | { token: string; actions: object | object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'ACH_CREDIT_RECEIPT' | 'ACH_DEBIT_RECEIPT'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; transaction_token: string; }`\n\n**get** `/v2/auth_rules/results`\n\nLists Auth Rule evaluation results.\n\n**Limitations:**\n- Results are available for the past 3 months only\n- At least one filter (`event_token` or `auth_rule_token`) must be provided\n- When filtering by `event_token`, pagination is not supported\n\n\n### Parameters\n\n- `auth_rule_token?: string`\n Filter by Auth Rule token\n\n- `begin?: string`\n Date string in RFC 3339 format. Only events evaluated after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only events evaluated before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `event_token?: string`\n Filter by event token\n\n- `has_actions?: boolean`\n Filter by whether the rule evaluation produced any actions. When not provided, all results are returned.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; actions: { code: string; type: 'DECLINE'; explanation?: string; } | { type: 'CHALLENGE'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'AUTHORIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; transaction_token: string; } | { token: string; actions: { type: 'DECLINE' | 'CHALLENGE'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'THREE_DS_AUTHENTICATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; transaction_token: string; } | { token: string; actions: { type: 'DECLINE'; explanation?: string; reason?: string; } | { type: 'REQUIRE_TFA'; explanation?: string; reason?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'TOKENIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; transaction_token: string; } | { token: string; actions: { type: 'APPROVE'; explanation?: string; } | { code: string; type: 'RETURN'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'ACH_CREDIT_RECEIPT' | 'ACH_DEBIT_RECEIPT'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; transaction_token: string; }`\n Result of an Auth Rule evaluation\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const v2ListResultsResponse of client.authRules.v2.listResults()) {\n console.log(v2ListResultsResponse);\n}\n```",
perLanguage: {
go: {
method: 'client.AuthRules.V2.ListResults',
diff --git a/src/resources/auth-rules/v2/v2.ts b/src/resources/auth-rules/v2/v2.ts
index 076bf9ea..ecf41985 100644
--- a/src/resources/auth-rules/v2/v2.ts
+++ b/src/resources/auth-rules/v2/v2.ts
@@ -1698,6 +1698,11 @@ export namespace V2ListResultsResponse {
* Version of the rule that was evaluated
*/
rule_version: number;
+
+ /**
+ * The token of the transaction that triggered the rule evaluation
+ */
+ transaction_token: string | null;
}
export namespace AuthorizationResult {
@@ -1822,6 +1827,11 @@ export namespace V2ListResultsResponse {
* Version of the rule that was evaluated
*/
rule_version: number;
+
+ /**
+ * The token of the transaction that triggered the rule evaluation
+ */
+ transaction_token: string | null;
}
export namespace Authentication3DSResult {
@@ -1875,6 +1885,11 @@ export namespace V2ListResultsResponse {
* Version of the rule that was evaluated
*/
rule_version: number;
+
+ /**
+ * The token of the transaction that triggered the rule evaluation
+ */
+ transaction_token: string | null;
}
export namespace TokenizationResult {
@@ -1981,6 +1996,11 @@ export namespace V2ListResultsResponse {
* Version of the rule that was evaluated
*/
rule_version: number;
+
+ /**
+ * The token of the transaction that triggered the rule evaluation
+ */
+ transaction_token: string | null;
}
export namespace ACHResult {
From f332a57aa3b8b8dd9be5540efa7fc1d2d159bf40 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Thu, 9 Apr 2026 19:05:31 +0000
Subject: [PATCH 068/164] feat(api): add transaction_token field to auth rules
v2 backtest and report responses
---
.stats.yml | 4 ++--
packages/mcp-server/src/local-docs-search.ts | 4 ++--
src/resources/auth-rules/v2/v2.ts | 15 +++++++++++++++
3 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 63e9c8c6..06e8c95a 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-fde7dad9bd08702d5db270fdd3cb533bc927387c4ea5aa19b11c67dd3ea643d4.yml
-openapi_spec_hash: bf4c200978915ccdf7f4a5734e796a07
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-bc1866f92f50e1de35c16e782a13052913aeedc56723b13de396dea7c754889b.yml
+openapi_spec_hash: d7110a33edc390903093258735ee0cfb
config_hash: edbdfefeb0d3d927c2f9fe3402793215
diff --git a/packages/mcp-server/src/local-docs-search.ts b/packages/mcp-server/src/local-docs-search.ts
index b8c07657..ebc55a3f 100644
--- a/packages/mcp-server/src/local-docs-search.ts
+++ b/packages/mcp-server/src/local-docs-search.ts
@@ -1330,7 +1330,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response:
"{ auth_rule_token: string; begin: string; daily_statistics: { current_version_statistics: object; date: string; draft_version_statistics: object; versions: { action_counts: object; examples: object[]; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }[]; end: string; }",
markdown:
- "## retrieve_report\n\n`client.authRules.v2.retrieveReport(auth_rule_token: string, begin: string, end: string): { auth_rule_token: string; begin: string; daily_statistics: object[]; end: string; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}/report`\n\nRetrieves a performance report for an Auth rule containing daily statistics and evaluation outcomes.\n\n**Time Range Limitations:**\n- Reports are supported for the past 3 months only\n- Maximum interval length is 1 month\n- Report data is available only through the previous day in UTC (current day data is not available)\n\nThe report provides daily statistics for both current and draft versions of the Auth rule, including approval, decline, and challenge counts along with sample events.\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `begin: string`\n Start date for the report\n\n- `end: string`\n End date for the report\n\n### Returns\n\n- `{ auth_rule_token: string; begin: string; daily_statistics: { current_version_statistics: object; date: string; draft_version_statistics: object; versions: { action_counts: object; examples: object[]; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }[]; end: string; }`\n\n - `auth_rule_token: string`\n - `begin: string`\n - `daily_statistics: { current_version_statistics: { action_counts?: object; approved?: number; challenged?: number; declined?: number; examples?: { actions?: object | object | object | object | object | object | object[]; approved?: boolean; decision?: 'APPROVED' | 'DECLINED' | 'CHALLENGED'; event_token?: string; timestamp?: string; }[]; }; date: string; draft_version_statistics: { action_counts?: object; approved?: number; challenged?: number; declined?: number; examples?: { actions?: object | object | object | object | object | object | object[]; approved?: boolean; decision?: 'APPROVED' | 'DECLINED' | 'CHALLENGED'; event_token?: string; timestamp?: string; }[]; }; versions: { action_counts: object; examples: { actions: { code: string; type: 'DECLINE'; } | { type: 'CHALLENGE'; } | { type: 'DECLINE' | 'CHALLENGE'; } | { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; } | { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }[]; event_token: string; timestamp: string; }[]; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }[]`\n - `end: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.authRules.v2.retrieveReport('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { begin: '2019-12-27', end: '2019-12-27' });\n\nconsole.log(response);\n```",
+ "## retrieve_report\n\n`client.authRules.v2.retrieveReport(auth_rule_token: string, begin: string, end: string): { auth_rule_token: string; begin: string; daily_statistics: object[]; end: string; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}/report`\n\nRetrieves a performance report for an Auth rule containing daily statistics and evaluation outcomes.\n\n**Time Range Limitations:**\n- Reports are supported for the past 3 months only\n- Maximum interval length is 1 month\n- Report data is available only through the previous day in UTC (current day data is not available)\n\nThe report provides daily statistics for both current and draft versions of the Auth rule, including approval, decline, and challenge counts along with sample events.\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `begin: string`\n Start date for the report\n\n- `end: string`\n End date for the report\n\n### Returns\n\n- `{ auth_rule_token: string; begin: string; daily_statistics: { current_version_statistics: object; date: string; draft_version_statistics: object; versions: { action_counts: object; examples: object[]; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }[]; end: string; }`\n\n - `auth_rule_token: string`\n - `begin: string`\n - `daily_statistics: { current_version_statistics: { action_counts?: object; approved?: number; challenged?: number; declined?: number; examples?: { actions?: object | object | object | object | object | object | object[]; approved?: boolean; decision?: 'APPROVED' | 'DECLINED' | 'CHALLENGED'; event_token?: string; timestamp?: string; transaction_token?: string; }[]; }; date: string; draft_version_statistics: { action_counts?: object; approved?: number; challenged?: number; declined?: number; examples?: { actions?: object | object | object | object | object | object | object[]; approved?: boolean; decision?: 'APPROVED' | 'DECLINED' | 'CHALLENGED'; event_token?: string; timestamp?: string; transaction_token?: string; }[]; }; versions: { action_counts: object; examples: { actions: { code: string; type: 'DECLINE'; } | { type: 'CHALLENGE'; } | { type: 'DECLINE' | 'CHALLENGE'; } | { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; } | { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }[]; event_token: string; timestamp: string; transaction_token?: string; }[]; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }[]`\n - `end: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.authRules.v2.retrieveReport('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { begin: '2019-12-27', end: '2019-12-27' });\n\nconsole.log(response);\n```",
perLanguage: {
go: {
method: 'client.AuthRules.V2.GetReport',
@@ -1542,7 +1542,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response:
'{ backtest_token: string; results: { current_version?: object; draft_version?: object; }; simulation_parameters: { end: string; start: string; }; }',
markdown:
- "## retrieve\n\n`client.authRules.v2.backtests.retrieve(auth_rule_token: string, auth_rule_backtest_token: string): { backtest_token: string; results: object; simulation_parameters: object; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}/backtests/{auth_rule_backtest_token}`\n\nReturns the backtest results of an Auth rule (if available).\n\nBacktesting is an asynchronous process that requires time to complete. If a customer retrieves the backtest results using this endpoint before the report is fully generated, the response will return null for `results.current_version` and `results.draft_version`. Customers are advised to wait for the backtest creation process to complete (as indicated by the webhook event auth_rules.backtest_report.created) before retrieving results from this endpoint.\n\nBacktesting is an asynchronous process, while the backtest is being processed, results will not be available which will cause `results.current_version` and `results.draft_version` objects to contain `null`.\nThe entries in `results` will also always represent the configuration of the rule at the time requests are made to this endpoint. For example, the results for `current_version` in the served backtest report will be consistent with which version of the rule is currently activated in the respective event stream, regardless of which version of the rule was active in the event stream at the time a backtest is requested.\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `auth_rule_backtest_token: string`\n\n### Returns\n\n- `{ backtest_token: string; results: { current_version?: object; draft_version?: object; }; simulation_parameters: { end: string; start: string; }; }`\n\n - `backtest_token: string`\n - `results: { current_version?: { approved?: number; challenged?: number; declined?: number; examples?: { decision?: 'APPROVED' | 'DECLINED' | 'CHALLENGED'; event_token?: string; timestamp?: string; }[]; version?: number; }; draft_version?: { approved?: number; challenged?: number; declined?: number; examples?: { decision?: 'APPROVED' | 'DECLINED' | 'CHALLENGED'; event_token?: string; timestamp?: string; }[]; version?: number; }; }`\n - `simulation_parameters: { end: string; start: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst backtestResults = await client.authRules.v2.backtests.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { auth_rule_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(backtestResults);\n```",
+ "## retrieve\n\n`client.authRules.v2.backtests.retrieve(auth_rule_token: string, auth_rule_backtest_token: string): { backtest_token: string; results: object; simulation_parameters: object; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}/backtests/{auth_rule_backtest_token}`\n\nReturns the backtest results of an Auth rule (if available).\n\nBacktesting is an asynchronous process that requires time to complete. If a customer retrieves the backtest results using this endpoint before the report is fully generated, the response will return null for `results.current_version` and `results.draft_version`. Customers are advised to wait for the backtest creation process to complete (as indicated by the webhook event auth_rules.backtest_report.created) before retrieving results from this endpoint.\n\nBacktesting is an asynchronous process, while the backtest is being processed, results will not be available which will cause `results.current_version` and `results.draft_version` objects to contain `null`.\nThe entries in `results` will also always represent the configuration of the rule at the time requests are made to this endpoint. For example, the results for `current_version` in the served backtest report will be consistent with which version of the rule is currently activated in the respective event stream, regardless of which version of the rule was active in the event stream at the time a backtest is requested.\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `auth_rule_backtest_token: string`\n\n### Returns\n\n- `{ backtest_token: string; results: { current_version?: object; draft_version?: object; }; simulation_parameters: { end: string; start: string; }; }`\n\n - `backtest_token: string`\n - `results: { current_version?: { approved?: number; challenged?: number; declined?: number; examples?: { decision?: 'APPROVED' | 'DECLINED' | 'CHALLENGED'; event_token?: string; timestamp?: string; transaction_token?: string; }[]; version?: number; }; draft_version?: { approved?: number; challenged?: number; declined?: number; examples?: { decision?: 'APPROVED' | 'DECLINED' | 'CHALLENGED'; event_token?: string; timestamp?: string; transaction_token?: string; }[]; version?: number; }; }`\n - `simulation_parameters: { end: string; start: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst backtestResults = await client.authRules.v2.backtests.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { auth_rule_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(backtestResults);\n```",
perLanguage: {
go: {
method: 'client.AuthRules.V2.Backtests.Get',
diff --git a/src/resources/auth-rules/v2/v2.ts b/src/resources/auth-rules/v2/v2.ts
index ecf41985..86a932da 100644
--- a/src/resources/auth-rules/v2/v2.ts
+++ b/src/resources/auth-rules/v2/v2.ts
@@ -448,6 +448,11 @@ export namespace BacktestStats {
* The timestamp of the event.
*/
timestamp?: string;
+
+ /**
+ * The token of the transaction associated with the event
+ */
+ transaction_token?: string | null;
}
}
@@ -1128,6 +1133,11 @@ export namespace ReportStats {
* The timestamp of the event.
*/
timestamp?: string;
+
+ /**
+ * The token of the transaction associated with the event
+ */
+ transaction_token?: string | null;
}
export namespace Example {
@@ -2254,6 +2264,11 @@ export namespace V2RetrieveReportResponse {
* The timestamp of the event.
*/
timestamp: string;
+
+ /**
+ * The token of the transaction associated with the event
+ */
+ transaction_token?: string | null;
}
export namespace Example {
From 5072511dd3fbebc23333081e69790f8552cef939 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Thu, 9 Apr 2026 20:16:35 +0000
Subject: [PATCH 069/164] chore(internal): show error causes in MCP servers
when running in local mode
---
packages/mcp-server/src/code-tool-worker.ts | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/packages/mcp-server/src/code-tool-worker.ts b/packages/mcp-server/src/code-tool-worker.ts
index 764db35b..839e2d44 100644
--- a/packages/mcp-server/src/code-tool-worker.ts
+++ b/packages/mcp-server/src/code-tool-worker.ts
@@ -376,7 +376,8 @@ function makeSdkProxy(obj: T, { path, isBelievedBad = false }:
function parseError(code: string, error: unknown): string | undefined {
if (!(error instanceof Error)) return;
- const message = error.name ? `${error.name}: ${error.message}` : error.message;
+ const cause = error.cause instanceof Error ? `: ${error.cause.message}` : '';
+ const message = error.name ? `${error.name}: ${error.message}${cause}` : `${error.message}${cause}`;
try {
// Deno uses V8; the first ":LINE:COLUMN" is the top of stack.
const lineNumber = error.stack?.match(/:([0-9]+):[0-9]+/)?.[1];
From 28c2a2f1cf2b166b5da29a96dfc277b7cf35cd96 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Fri, 10 Apr 2026 07:29:37 +0000
Subject: [PATCH 070/164] feat(types): [breaking] remove deprecated fields from
auth_rules v2 ReportStats
---
.stats.yml | 6 +-
packages/mcp-server/src/local-docs-search.ts | 4 +-
src/resources/auth-rules/v2/v2.ts | 336 +------------------
3 files changed, 18 insertions(+), 328 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 06e8c95a..3481820f 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-bc1866f92f50e1de35c16e782a13052913aeedc56723b13de396dea7c754889b.yml
-openapi_spec_hash: d7110a33edc390903093258735ee0cfb
-config_hash: edbdfefeb0d3d927c2f9fe3402793215
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-df28ee30a3bd4fa595befc2048216e1ee1d3845fcfcf179c1c694ba58fd5e4ed.yml
+openapi_spec_hash: 79bfc19d85c7f03754684d794653e333
+config_hash: 5eca052bb23d273fa970eac3127dd919
diff --git a/packages/mcp-server/src/local-docs-search.ts b/packages/mcp-server/src/local-docs-search.ts
index ebc55a3f..b32f4609 100644
--- a/packages/mcp-server/src/local-docs-search.ts
+++ b/packages/mcp-server/src/local-docs-search.ts
@@ -1328,9 +1328,9 @@ const EMBEDDED_METHODS: MethodEntry[] = [
qualified: 'client.authRules.v2.retrieveReport',
params: ['auth_rule_token: string;', 'begin: string;', 'end: string;'],
response:
- "{ auth_rule_token: string; begin: string; daily_statistics: { current_version_statistics: object; date: string; draft_version_statistics: object; versions: { action_counts: object; examples: object[]; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }[]; end: string; }",
+ '{ auth_rule_token: string; begin: string; daily_statistics: { date: string; versions: object[]; }[]; end: string; }',
markdown:
- "## retrieve_report\n\n`client.authRules.v2.retrieveReport(auth_rule_token: string, begin: string, end: string): { auth_rule_token: string; begin: string; daily_statistics: object[]; end: string; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}/report`\n\nRetrieves a performance report for an Auth rule containing daily statistics and evaluation outcomes.\n\n**Time Range Limitations:**\n- Reports are supported for the past 3 months only\n- Maximum interval length is 1 month\n- Report data is available only through the previous day in UTC (current day data is not available)\n\nThe report provides daily statistics for both current and draft versions of the Auth rule, including approval, decline, and challenge counts along with sample events.\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `begin: string`\n Start date for the report\n\n- `end: string`\n End date for the report\n\n### Returns\n\n- `{ auth_rule_token: string; begin: string; daily_statistics: { current_version_statistics: object; date: string; draft_version_statistics: object; versions: { action_counts: object; examples: object[]; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }[]; end: string; }`\n\n - `auth_rule_token: string`\n - `begin: string`\n - `daily_statistics: { current_version_statistics: { action_counts?: object; approved?: number; challenged?: number; declined?: number; examples?: { actions?: object | object | object | object | object | object | object[]; approved?: boolean; decision?: 'APPROVED' | 'DECLINED' | 'CHALLENGED'; event_token?: string; timestamp?: string; transaction_token?: string; }[]; }; date: string; draft_version_statistics: { action_counts?: object; approved?: number; challenged?: number; declined?: number; examples?: { actions?: object | object | object | object | object | object | object[]; approved?: boolean; decision?: 'APPROVED' | 'DECLINED' | 'CHALLENGED'; event_token?: string; timestamp?: string; transaction_token?: string; }[]; }; versions: { action_counts: object; examples: { actions: { code: string; type: 'DECLINE'; } | { type: 'CHALLENGE'; } | { type: 'DECLINE' | 'CHALLENGE'; } | { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; } | { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }[]; event_token: string; timestamp: string; transaction_token?: string; }[]; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }[]`\n - `end: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.authRules.v2.retrieveReport('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { begin: '2019-12-27', end: '2019-12-27' });\n\nconsole.log(response);\n```",
+ "## retrieve_report\n\n`client.authRules.v2.retrieveReport(auth_rule_token: string, begin: string, end: string): { auth_rule_token: string; begin: string; daily_statistics: object[]; end: string; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}/report`\n\nRetrieves a performance report for an Auth rule containing daily statistics and evaluation outcomes.\n\n**Time Range Limitations:**\n- Reports are supported for the past 3 months only\n- Maximum interval length is 1 month\n- Report data is available only through the previous day in UTC (current day data is not available)\n\nThe report provides daily statistics for both current and draft versions of the Auth rule, including approval, decline, and challenge counts along with sample events.\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `begin: string`\n Start date for the report\n\n- `end: string`\n End date for the report\n\n### Returns\n\n- `{ auth_rule_token: string; begin: string; daily_statistics: { date: string; versions: object[]; }[]; end: string; }`\n\n - `auth_rule_token: string`\n - `begin: string`\n - `daily_statistics: { date: string; versions: { action_counts: object; examples: { actions: object | object | object | object | object | object | object[]; event_token: string; timestamp: string; transaction_token?: string; }[]; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }[]`\n - `end: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.authRules.v2.retrieveReport('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { begin: '2019-12-27', end: '2019-12-27' });\n\nconsole.log(response);\n```",
perLanguage: {
go: {
method: 'client.AuthRules.V2.GetReport',
diff --git a/src/resources/auth-rules/v2/v2.ts b/src/resources/auth-rules/v2/v2.ts
index 86a932da..cf1f98e7 100644
--- a/src/resources/auth-rules/v2/v2.ts
+++ b/src/resources/auth-rules/v2/v2.ts
@@ -1065,46 +1065,34 @@ export namespace MerchantLockParameters {
export interface ReportStats {
/**
* A mapping of action types to the number of times that action was returned by
- * this rule during the relevant period. Actions are the possible outcomes of a
+ * this version during the relevant period. Actions are the possible outcomes of a
* rule evaluation, such as DECLINE, CHALLENGE, REQUIRE_TFA, etc. In case rule
* didn't trigger any action, it's counted under NO_ACTION key.
*/
- action_counts?: { [key: string]: number };
+ action_counts: { [key: string]: number };
/**
- * @deprecated The total number of historical transactions approved by this rule
- * during the relevant period, or the number of transactions that would have been
- * approved if the rule was evaluated in shadow mode.
+ * Example events and their outcomes for this version.
*/
- approved?: number;
-
- /**
- * @deprecated The total number of historical transactions challenged by this rule
- * during the relevant period, or the number of transactions that would have been
- * challenged if the rule was evaluated in shadow mode. Currently applicable only
- * for 3DS Auth Rules.
- */
- challenged?: number;
+ examples: Array;
/**
- * @deprecated The total number of historical transactions declined by this rule
- * during the relevant period, or the number of transactions that would have been
- * declined if the rule was evaluated in shadow mode.
+ * The evaluation mode of this version during the reported period.
*/
- declined?: number;
+ state: 'ACTIVE' | 'SHADOW' | 'INACTIVE';
/**
- * Example events and their outcomes.
+ * The rule version number.
*/
- examples?: Array;
+ version: number;
}
export namespace ReportStats {
export interface Example {
/**
- * The actions taken by the rule for this event.
+ * The actions taken by this version for this event.
*/
- actions?: Array<
+ actions: Array<
| Example.DeclineActionAuthorization
| Example.ChallengeActionAuthorization
| Example.ResultAuthentication3DSAction
@@ -1114,25 +1102,15 @@ export namespace ReportStats {
| Example.ReturnAction
>;
- /**
- * @deprecated Whether the rule would have approved the request.
- */
- approved?: boolean;
-
- /**
- * @deprecated The decision made by the rule for this event.
- */
- decision?: 'APPROVED' | 'DECLINED' | 'CHALLENGED';
-
/**
* The event token.
*/
- event_token?: string;
+ event_token: string;
/**
* The timestamp of the event.
*/
- timestamp?: string;
+ timestamp: string;
/**
* The token of the transaction associated with the event
@@ -2192,304 +2170,16 @@ export interface V2RetrieveReportResponse {
export namespace V2RetrieveReportResponse {
export interface DailyStatistic {
- /**
- * Detailed statistics for the current version of the rule.
- */
- current_version_statistics: V2API.ReportStats | null;
-
/**
* The date (UTC) for which the statistics are reported.
*/
date: string;
- /**
- * Detailed statistics for the draft version of the rule.
- */
- draft_version_statistics: V2API.ReportStats | null;
-
/**
* Statistics for each version of the rule that was evaluated during the reported
* day.
*/
- versions: Array;
- }
-
- export namespace DailyStatistic {
- export interface Version {
- /**
- * A mapping of action types to the number of times that action was returned by
- * this version during the relevant period. Actions are the possible outcomes of a
- * rule evaluation, such as DECLINE, CHALLENGE, REQUIRE_TFA, etc. In case rule
- * didn't trigger any action, it's counted under NO_ACTION key.
- */
- action_counts: { [key: string]: number };
-
- /**
- * Example events and their outcomes for this version.
- */
- examples: Array;
-
- /**
- * The evaluation mode of this version during the reported period.
- */
- state: 'ACTIVE' | 'SHADOW' | 'INACTIVE';
-
- /**
- * The rule version number.
- */
- version: number;
- }
-
- export namespace Version {
- export interface Example {
- /**
- * The actions taken by this version for this event.
- */
- actions: Array<
- | Example.DeclineActionAuthorization
- | Example.ChallengeActionAuthorization
- | Example.ResultAuthentication3DSAction
- | Example.DeclineActionTokenization
- | Example.RequireTfaAction
- | Example.ApproveActionACH
- | Example.ReturnAction
- >;
-
- /**
- * The event token.
- */
- event_token: string;
-
- /**
- * The timestamp of the event.
- */
- timestamp: string;
-
- /**
- * The token of the transaction associated with the event
- */
- transaction_token?: string | null;
- }
-
- export namespace Example {
- export interface DeclineActionAuthorization {
- /**
- * The detailed result code explaining the specific reason for the decline
- */
- code:
- | 'ACCOUNT_DAILY_SPEND_LIMIT_EXCEEDED'
- | 'ACCOUNT_DELINQUENT'
- | 'ACCOUNT_INACTIVE'
- | 'ACCOUNT_LIFETIME_SPEND_LIMIT_EXCEEDED'
- | 'ACCOUNT_MONTHLY_SPEND_LIMIT_EXCEEDED'
- | 'ACCOUNT_PAUSED'
- | 'ACCOUNT_UNDER_REVIEW'
- | 'ADDRESS_INCORRECT'
- | 'APPROVED'
- | 'AUTH_RULE_ALLOWED_COUNTRY'
- | 'AUTH_RULE_ALLOWED_MCC'
- | 'AUTH_RULE_BLOCKED_COUNTRY'
- | 'AUTH_RULE_BLOCKED_MCC'
- | 'AUTH_RULE'
- | 'CARD_CLOSED'
- | 'CARD_CRYPTOGRAM_VALIDATION_FAILURE'
- | 'CARD_EXPIRED'
- | 'CARD_EXPIRY_DATE_INCORRECT'
- | 'CARD_INVALID'
- | 'CARD_NOT_ACTIVATED'
- | 'CARD_PAUSED'
- | 'CARD_PIN_INCORRECT'
- | 'CARD_RESTRICTED'
- | 'CARD_SECURITY_CODE_INCORRECT'
- | 'CARD_SPEND_LIMIT_EXCEEDED'
- | 'CONTACT_CARD_ISSUER'
- | 'CUSTOMER_ASA_TIMEOUT'
- | 'CUSTOM_ASA_RESULT'
- | 'DECLINED'
- | 'DO_NOT_HONOR'
- | 'DRIVER_NUMBER_INVALID'
- | 'FORMAT_ERROR'
- | 'INSUFFICIENT_FUNDING_SOURCE_BALANCE'
- | 'INSUFFICIENT_FUNDS'
- | 'LITHIC_SYSTEM_ERROR'
- | 'LITHIC_SYSTEM_RATE_LIMIT'
- | 'MALFORMED_ASA_RESPONSE'
- | 'MERCHANT_INVALID'
- | 'MERCHANT_LOCKED_CARD_ATTEMPTED_ELSEWHERE'
- | 'MERCHANT_NOT_PERMITTED'
- | 'OVER_REVERSAL_ATTEMPTED'
- | 'PIN_BLOCKED'
- | 'PROGRAM_CARD_SPEND_LIMIT_EXCEEDED'
- | 'PROGRAM_SUSPENDED'
- | 'PROGRAM_USAGE_RESTRICTION'
- | 'REVERSAL_UNMATCHED'
- | 'SECURITY_VIOLATION'
- | 'SINGLE_USE_CARD_REATTEMPTED'
- | 'SUSPECTED_FRAUD'
- | 'TRANSACTION_INVALID'
- | 'TRANSACTION_NOT_PERMITTED_TO_ACQUIRER_OR_TERMINAL'
- | 'TRANSACTION_NOT_PERMITTED_TO_ISSUER_OR_CARDHOLDER'
- | 'TRANSACTION_PREVIOUSLY_COMPLETED'
- | 'UNAUTHORIZED_MERCHANT'
- | 'VEHICLE_NUMBER_INVALID'
- | 'CARDHOLDER_CHALLENGED'
- | 'CARDHOLDER_CHALLENGE_FAILED';
-
- type: 'DECLINE';
- }
-
- export interface ChallengeActionAuthorization {
- type: 'CHALLENGE';
- }
-
- export interface ResultAuthentication3DSAction {
- type: 'DECLINE' | 'CHALLENGE';
- }
-
- export interface DeclineActionTokenization {
- /**
- * Decline the tokenization request
- */
- type: 'DECLINE';
-
- /**
- * Reason code for declining the tokenization request
- */
- reason?:
- | 'ACCOUNT_SCORE_1'
- | 'DEVICE_SCORE_1'
- | 'ALL_WALLET_DECLINE_REASONS_PRESENT'
- | 'WALLET_RECOMMENDED_DECISION_RED'
- | 'CVC_MISMATCH'
- | 'CARD_EXPIRY_MONTH_MISMATCH'
- | 'CARD_EXPIRY_YEAR_MISMATCH'
- | 'CARD_INVALID_STATE'
- | 'CUSTOMER_RED_PATH'
- | 'INVALID_CUSTOMER_RESPONSE'
- | 'NETWORK_FAILURE'
- | 'GENERIC_DECLINE'
- | 'DIGITAL_CARD_ART_REQUIRED';
- }
-
- export interface RequireTfaAction {
- /**
- * Require two-factor authentication for the tokenization request
- */
- type: 'REQUIRE_TFA';
-
- /**
- * Reason code for requiring two-factor authentication
- */
- reason?:
- | 'WALLET_RECOMMENDED_TFA'
- | 'SUSPICIOUS_ACTIVITY'
- | 'DEVICE_RECENTLY_LOST'
- | 'TOO_MANY_RECENT_ATTEMPTS'
- | 'TOO_MANY_RECENT_TOKENS'
- | 'TOO_MANY_DIFFERENT_CARDHOLDERS'
- | 'OUTSIDE_HOME_TERRITORY'
- | 'HAS_SUSPENDED_TOKENS'
- | 'HIGH_RISK'
- | 'ACCOUNT_SCORE_LOW'
- | 'DEVICE_SCORE_LOW'
- | 'CARD_STATE_TFA'
- | 'HARDCODED_TFA'
- | 'CUSTOMER_RULE_TFA'
- | 'DEVICE_HOST_CARD_EMULATION';
- }
-
- export interface ApproveActionACH {
- /**
- * Approve the ACH transaction
- */
- type: 'APPROVE';
- }
-
- export interface ReturnAction {
- /**
- * NACHA return code to use when returning the transaction. Note that the list of
- * available return codes is subject to an allowlist configured at the program
- * level
- */
- code:
- | 'R01'
- | 'R02'
- | 'R03'
- | 'R04'
- | 'R05'
- | 'R06'
- | 'R07'
- | 'R08'
- | 'R09'
- | 'R10'
- | 'R11'
- | 'R12'
- | 'R13'
- | 'R14'
- | 'R15'
- | 'R16'
- | 'R17'
- | 'R18'
- | 'R19'
- | 'R20'
- | 'R21'
- | 'R22'
- | 'R23'
- | 'R24'
- | 'R25'
- | 'R26'
- | 'R27'
- | 'R28'
- | 'R29'
- | 'R30'
- | 'R31'
- | 'R32'
- | 'R33'
- | 'R34'
- | 'R35'
- | 'R36'
- | 'R37'
- | 'R38'
- | 'R39'
- | 'R40'
- | 'R41'
- | 'R42'
- | 'R43'
- | 'R44'
- | 'R45'
- | 'R46'
- | 'R47'
- | 'R50'
- | 'R51'
- | 'R52'
- | 'R53'
- | 'R61'
- | 'R62'
- | 'R67'
- | 'R68'
- | 'R69'
- | 'R70'
- | 'R71'
- | 'R72'
- | 'R73'
- | 'R74'
- | 'R75'
- | 'R76'
- | 'R77'
- | 'R80'
- | 'R81'
- | 'R82'
- | 'R83'
- | 'R84'
- | 'R85';
-
- /**
- * Return the ACH transaction
- */
- type: 'RETURN';
- }
- }
- }
+ versions: Array;
}
}
From 86f19635be0a6dcf7baef1cf2332a9b7aaa529d4 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Fri, 10 Apr 2026 17:14:19 +0000
Subject: [PATCH 071/164] docs: improve examples
---
tests/api-resources/webhooks.test.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/api-resources/webhooks.test.ts b/tests/api-resources/webhooks.test.ts
index 728450b3..d9fa6d5c 100644
--- a/tests/api-resources/webhooks.test.ts
+++ b/tests/api-resources/webhooks.test.ts
@@ -239,7 +239,7 @@ describe('resource webhooks', () => {
describe('parse', () => {
const secret = 'whsec_c2VjcmV0Cg==';
const payload =
- '{"event_type":"account_holder.created","token":"00000000-0000-0000-0000-000000000001","account_token":"00000000-0000-0000-0000-000000000001","created":"2019-12-27T18:11:19.117Z","required_documents":[{"entity_token":"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e","status_reasons":["string"],"valid_documents":["string"]}],"status":"ACCEPTED","status_reason":["string"]}';
+ '{"account_token":"00000000-0000-0000-0000-000000000002","card_token":"00000000-0000-0000-0000-000000000001","created":"2023-09-18T12:34:56Z","digital_wallet_token_metadata":{"payment_account_info":{"account_holder_data":{"phone_number":"+15555555555"},"pan_unique_reference":"pan_unique_ref_1234567890123456789012345678","payment_account_reference":"ref_1234567890123456789012","token_unique_reference":"token_unique_ref_1234567890123456789012345678"},"status":"Pending","payment_app_instance_id":"app_instance_123456789012345678901234567890","token_requestor_id":"12345678901","token_requestor_name":"APPLE_PAY"},"event_type":"digital_wallet.tokenization_approval_request","issuer_decision":"APPROVED","tokenization_channel":"DIGITAL_WALLET","tokenization_token":"tok_1234567890abcdef","wallet_decisioning_info":{"account_score":"100","device_score":"100","recommended_decision":"Decision1","recommendation_reasons":["Reason1"]},"customer_tokenization_decision":{"outcome":"APPROVED","responder_url":"https://example.com","latency":"100","response_code":"123456"},"device":{"imei":"123456789012345","ip_address":"1.1.1.1","location":"37.3860517/-122.0838511"},"rule_results":[{"auth_rule_token":"550e8400-e29b-41d4-a716-446655440003","explanation":"Account risk too high","name":"CustomerAccountRule","result":"DECLINED"}],"tokenization_decline_reasons":["ACCOUNT_SCORE_1"],"tokenization_source":"PUSH_PROVISION","tokenization_tfa_reasons":["WALLET_RECOMMENDED_TFA"]}';
function makeHeaders() {
const msgID = '1';
From 9276d23825bcc4aee3a6dd91f0e72f5806512dcb Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Fri, 10 Apr 2026 21:48:59 +0000
Subject: [PATCH 072/164] docs: update examples
---
packages/mcp-server/src/local-docs-search.ts | 12 ++++++------
.../financial-accounts/financial-accounts.ts | 2 +-
.../financial-accounts/financial-accounts.test.ts | 8 ++++----
3 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/packages/mcp-server/src/local-docs-search.ts b/packages/mcp-server/src/local-docs-search.ts
index b32f4609..af1c9cf8 100644
--- a/packages/mcp-server/src/local-docs-search.ts
+++ b/packages/mcp-server/src/local-docs-search.ts
@@ -4919,16 +4919,16 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response:
"{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }",
markdown:
- "## update_status\n\n`client.financialAccounts.updateStatus(financial_account_token: string, status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING', substatus: string, user_defined_status?: string): { token: string; account_token: string; created: string; credit_configuration: object; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n**post** `/v1/financial_accounts/{financial_account_token}/update_status`\n\nUpdate financial account status\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n Status of the financial account\n\n- `substatus: string`\n Substatus for the financial account\n\n- `user_defined_status?: string`\n User-defined status for the financial account\n\n### Returns\n\n- `{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `created: string`\n - `credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n - `is_for_benefit_of: boolean`\n - `nickname: string`\n - `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n - `substatus: string`\n - `type: string`\n - `updated: string`\n - `user_defined_status: string`\n - `account_number?: string`\n - `routing_number?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialAccount = await client.financialAccounts.updateStatus('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { status: 'OPEN', substatus: 'CHARGED_OFF_FRAUD' });\n\nconsole.log(financialAccount);\n```",
+ "## update_status\n\n`client.financialAccounts.updateStatus(financial_account_token: string, status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING', substatus: string, user_defined_status?: string): { token: string; account_token: string; created: string; credit_configuration: object; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n**post** `/v1/financial_accounts/{financial_account_token}/update_status`\n\nUpdate financial account status\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n Status of the financial account\n\n- `substatus: string`\n Substatus for the financial account\n\n- `user_defined_status?: string`\n User-defined status for the financial account\n\n### Returns\n\n- `{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `created: string`\n - `credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n - `is_for_benefit_of: boolean`\n - `nickname: string`\n - `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n - `substatus: string`\n - `type: string`\n - `updated: string`\n - `user_defined_status: string`\n - `account_number?: string`\n - `routing_number?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialAccount = await client.financialAccounts.updateStatus('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { status: 'CLOSED', substatus: 'END_USER_REQUEST' });\n\nconsole.log(financialAccount);\n```",
perLanguage: {
go: {
method: 'client.FinancialAccounts.UpdateStatus',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialAccount, err := client.FinancialAccounts.UpdateStatus(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountUpdateStatusParams{\n\t\t\tStatus: lithic.F(lithic.FinancialAccountUpdateStatusParamsStatusOpen),\n\t\t\tSubstatus: lithic.F(lithic.FinancialAccountUpdateStatusParamsSubstatusChargedOffFraud),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialAccount.Token)\n}\n',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialAccount, err := client.FinancialAccounts.UpdateStatus(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountUpdateStatusParams{\n\t\t\tStatus: lithic.F(lithic.FinancialAccountUpdateStatusParamsStatusClosed),\n\t\t\tSubstatus: lithic.F(lithic.FinancialAccountUpdateStatusParamsSubstatusEndUserRequest),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialAccount.Token)\n}\n',
},
http: {
example:
- 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/update_status \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "status": "OPEN",\n "substatus": "CHARGED_OFF_FRAUD"\n }\'',
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/update_status \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "status": "CLOSED",\n "substatus": "END_USER_REQUEST"\n }\'',
},
java: {
method: 'financialAccounts().updateStatus',
@@ -4943,17 +4943,17 @@ const EMBEDDED_METHODS: MethodEntry[] = [
python: {
method: 'financial_accounts.update_status',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_account = client.financial_accounts.update_status(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n status="OPEN",\n substatus="CHARGED_OFF_FRAUD",\n)\nprint(financial_account.token)',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_account = client.financial_accounts.update_status(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n status="CLOSED",\n substatus="END_USER_REQUEST",\n)\nprint(financial_account.token)',
},
ruby: {
method: 'financial_accounts.update_status',
example:
- 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nfinancial_account = lithic.financial_accounts.update_status(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n status: :OPEN,\n substatus: :CHARGED_OFF_FRAUD\n)\n\nputs(financial_account)',
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nfinancial_account = lithic.financial_accounts.update_status(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n status: :CLOSED,\n substatus: :END_USER_REQUEST\n)\n\nputs(financial_account)',
},
typescript: {
method: 'client.financialAccounts.updateStatus',
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialAccount = await client.financialAccounts.updateStatus(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { status: 'OPEN', substatus: 'CHARGED_OFF_FRAUD' },\n);\n\nconsole.log(financialAccount.token);",
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialAccount = await client.financialAccounts.updateStatus(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { status: 'CLOSED', substatus: 'END_USER_REQUEST' },\n);\n\nconsole.log(financialAccount.token);",
},
},
},
diff --git a/src/resources/financial-accounts/financial-accounts.ts b/src/resources/financial-accounts/financial-accounts.ts
index e3256f6d..709327df 100644
--- a/src/resources/financial-accounts/financial-accounts.ts
+++ b/src/resources/financial-accounts/financial-accounts.ts
@@ -180,7 +180,7 @@ export class FinancialAccounts extends APIResource {
* const financialAccount =
* await client.financialAccounts.updateStatus(
* '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
- * { status: 'OPEN', substatus: 'CHARGED_OFF_FRAUD' },
+ * { status: 'CLOSED', substatus: 'END_USER_REQUEST' },
* );
* ```
*/
diff --git a/tests/api-resources/financial-accounts/financial-accounts.test.ts b/tests/api-resources/financial-accounts/financial-accounts.test.ts
index 9cb19138..daa46ad8 100644
--- a/tests/api-resources/financial-accounts/financial-accounts.test.ts
+++ b/tests/api-resources/financial-accounts/financial-accounts.test.ts
@@ -110,8 +110,8 @@ describe('resource financialAccounts', () => {
test('updateStatus: only required params', async () => {
const responsePromise = client.financialAccounts.updateStatus('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {
- status: 'OPEN',
- substatus: 'CHARGED_OFF_FRAUD',
+ status: 'CLOSED',
+ substatus: 'END_USER_REQUEST',
});
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
@@ -124,8 +124,8 @@ describe('resource financialAccounts', () => {
test('updateStatus: required and optional params', async () => {
const response = await client.financialAccounts.updateStatus('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {
- status: 'OPEN',
- substatus: 'CHARGED_OFF_FRAUD',
+ status: 'CLOSED',
+ substatus: 'END_USER_REQUEST',
user_defined_status: '26',
});
});
From 1224a9e35dc143a7359d3813e8425634d93f0bec Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Sun, 12 Apr 2026 19:32:37 +0000
Subject: [PATCH 073/164] chore(internal): codegen related update
---
yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index b1a483e1..a41ae84e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1225,9 +1225,9 @@ baseline-browser-mapping@^2.9.0:
integrity sha512-B0xUquLkiGLgHhpPBqvl7GWegWBUNuujQ6kXd/r1U38ElPT6Ok8KZ8e+FpUGEc2ZoRQUzq/aUnaKFc/svWUGSg==
brace-expansion@^2.0.2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.3.tgz#0493338bdd58e319b1039c67cf7ee439892c01d9"
- integrity sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.1.0.tgz#4f41a41190216ee36067ec381526fe9539c4f0ae"
+ integrity sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==
dependencies:
balanced-match "^1.0.0"
From d19ad2634e669aaa2bd25310f34c742cef8474fd Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 13 Apr 2026 18:51:57 +0000
Subject: [PATCH 074/164] feat(api): add DELINQUENT status value to financial
accounts update params
---
.stats.yml | 4 ++--
src/resources/financial-accounts/financial-accounts.ts | 1 +
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 3481820f..d1255ff6 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-df28ee30a3bd4fa595befc2048216e1ee1d3845fcfcf179c1c694ba58fd5e4ed.yml
-openapi_spec_hash: 79bfc19d85c7f03754684d794653e333
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-fd53f07a8b1f148011972d7eba834d5995778d707ff8ef1ead92580b44142a15.yml
+openapi_spec_hash: 45892e6361542824364d82181d4eb80d
config_hash: 5eca052bb23d273fa970eac3127dd919
diff --git a/src/resources/financial-accounts/financial-accounts.ts b/src/resources/financial-accounts/financial-accounts.ts
index 709327df..7b8903dc 100644
--- a/src/resources/financial-accounts/financial-accounts.ts
+++ b/src/resources/financial-accounts/financial-accounts.ts
@@ -564,6 +564,7 @@ export interface FinancialAccountUpdateStatusParams {
| 'BANK_REQUEST'
| 'CHARGED_OFF_DELINQUENT'
| 'INTEREST_AND_FEES_PAUSED'
+ | 'DELINQUENT'
| null;
/**
From cd7f5c9a6853fa0a660edd82d426b28465158d00 Mon Sep 17 00:00:00 2001
From: Becker
Date: Mon, 13 Apr 2026 13:01:10 -0700
Subject: [PATCH 075/164] Next test fix
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
What happened: Commit 5a40af5 ("docs: improve examples") updated the test payload from an account_holder.created webhook event to a digital_wallet.tokenization_approval_request event — the JSON string on line 242 was entirely replaced with a richer example payload. But the assertion on line 264 still checked for 'account_holder.created', which no longer matched the event_type in the new payload. The fix was just updating that one assertion to match the new payload's actual event type.
---
tests/api-resources/webhooks.test.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/api-resources/webhooks.test.ts b/tests/api-resources/webhooks.test.ts
index d9fa6d5c..5f3f5d52 100644
--- a/tests/api-resources/webhooks.test.ts
+++ b/tests/api-resources/webhooks.test.ts
@@ -261,7 +261,7 @@ describe('resource webhooks', () => {
const event = lithic.webhooks.parse(payload, { headers, secret });
expect(event).toBeDefined();
if ('event_type' in event) {
- expect(event.event_type).toBe('account_holder.created');
+ expect(event.event_type).toBe('digital_wallet.tokenization_approval_request');
}
});
From c1f7d9dd791b233de90928df55d1754bbe04c97e Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 13 Apr 2026 21:39:30 +0000
Subject: [PATCH 076/164] release: 0.136.0
---
.release-please-manifest.json | 2 +-
CHANGELOG.md | 51 +++++++++++++++++++++++++++++++
package.json | 2 +-
packages/mcp-server/manifest.json | 2 +-
packages/mcp-server/package.json | 2 +-
packages/mcp-server/src/server.ts | 2 +-
src/version.ts | 2 +-
7 files changed, 57 insertions(+), 6 deletions(-)
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 3799cbc2..d62785c5 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.135.0"
+ ".": "0.136.0"
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3d9ef74c..162fbdf3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,56 @@
# Changelog
+## 0.136.0 (2026-04-13)
+
+Full Changelog: [v0.135.0...v0.136.0](https://github.com/lithic-com/lithic-node/compare/v0.135.0...v0.136.0)
+
+### Features
+
+* **api:** add decline count attributes to auth-rules v2 ([d004ede](https://github.com/lithic-com/lithic-node/commit/d004ede97fda3a5840c8843a648fe5a3977d2d30))
+* **api:** add DELINQUENT status value to financial accounts update params ([e40c1d9](https://github.com/lithic-com/lithic-node/commit/e40c1d908a6ca40e983df773bed1797dc894382e))
+* **api:** add INTERCHANGE, CHARGEBACK, PROVISIONAL_CREDIT_ACCOUNT to financial account type ([847706f](https://github.com/lithic-com/lithic-node/commit/847706f1adb413adcce81f7d1728109b699a6113))
+* **api:** add override_company_name parameter to payments ACH ([954b27e](https://github.com/lithic-com/lithic-node/commit/954b27e3fb8dd7b8c55ea57b42d878094efbe3d8))
+* **api:** add statement_totals field to Statement response ([e3813f7](https://github.com/lithic-com/lithic-node/commit/e3813f70cf8e408de65ec058a39b137cd74c2dfe))
+* **api:** add transaction_token field to auth rules v2 backtest and report responses ([20eedcc](https://github.com/lithic-com/lithic-node/commit/20eedccaeb35b01d243e136793834dec5b65dcb6))
+* **api:** add transaction_token field to auth rules v2 results response ([0f61795](https://github.com/lithic-com/lithic-node/commit/0f617957b0bd7b3ca6f75217b05ba4b3ff426ce3))
+* **types:** [breaking] remove deprecated fields from auth_rules v2 ReportStats ([3e9c80b](https://github.com/lithic-com/lithic-node/commit/3e9c80b8d44b870d024f8fa4d970fc59aed53d81))
+
+
+### Bug Fixes
+
+* **internal:** gitignore generated `oidc` dir ([08c0b61](https://github.com/lithic-com/lithic-node/commit/08c0b61957f3be0c9c52196cf5af017b136d64ee))
+* **types:** make credit_product_token optional in Statement ([17b829f](https://github.com/lithic-com/lithic-node/commit/17b829f64b633e5756eb186c390f19b4aabbb2db))
+* **types:** make fields required, remove hostname in card authorization approval webhook ([019491a](https://github.com/lithic-com/lithic-node/commit/019491ab1d75a48c2217a6979ac15484944dce6a))
+* **types:** remove INTERCHANGE/CHARGEBACK from FinancialAccount types ([d66715a](https://github.com/lithic-com/lithic-node/commit/d66715a88c2f6357b8fba7453d95970de855f277))
+
+
+### Chores
+
+* **ci:** escape input path in publish-npm workflow ([699d85e](https://github.com/lithic-com/lithic-node/commit/699d85e576bdb3d6c25f868c5b6bba2e3772598b))
+* **ci:** skip lint on metadata-only changes ([10dfba6](https://github.com/lithic-com/lithic-node/commit/10dfba6a8f96b1df7d76885f0a762f50b2ada322))
+* **internal:** codegen related update ([b35ca0b](https://github.com/lithic-com/lithic-node/commit/b35ca0bfac887f26f1639d750f3a3fc0388c8d4d))
+* **internal:** codegen related update ([b84877d](https://github.com/lithic-com/lithic-node/commit/b84877d5e9f041aee204663c7d57db835d29a3b7))
+* **internal:** codegen related update ([827a434](https://github.com/lithic-com/lithic-node/commit/827a4344ef5a4e6a47a58564a69373d1135dedcf))
+* **internal:** fix MCP docker image builds in yarn projects ([cd92ad7](https://github.com/lithic-com/lithic-node/commit/cd92ad7fd5d497ae09f9c90fb26171053f89a903))
+* **internal:** fix MCP server import ordering ([7c9afea](https://github.com/lithic-com/lithic-node/commit/7c9afea91945d7e2d6a1d0586f26b28b5fdec82e))
+* **internal:** improve local docs search for MCP servers ([f3658af](https://github.com/lithic-com/lithic-node/commit/f3658af5dfea2fa5b42c9471054945481153ef99))
+* **internal:** improve local docs search for MCP servers ([231f6a0](https://github.com/lithic-com/lithic-node/commit/231f6a037beea43f90512f3eb6bee560a0233a45))
+* **internal:** show error causes in MCP servers when running in local mode ([8f2eb65](https://github.com/lithic-com/lithic-node/commit/8f2eb65211100b293806548b520f5128b84ccf65))
+* **internal:** support custom-instructions-path flag in MCP servers ([21854f4](https://github.com/lithic-com/lithic-node/commit/21854f4bfde44d17f4f22a0f25913f7e91d87c21))
+* **internal:** support local docs search in MCP servers ([c7f9b6a](https://github.com/lithic-com/lithic-node/commit/c7f9b6a3ef5ebd16763c7f17b9c93b407e32a4b2))
+* **internal:** support type annotations when running MCP in local execution mode ([4f94af4](https://github.com/lithic-com/lithic-node/commit/4f94af4683c5c6116e230e95388685066063483b))
+* **internal:** use link instead of file in MCP server package.json files ([9c8e9af](https://github.com/lithic-com/lithic-node/commit/9c8e9af13c7acbda7f78121bd6097e8d0665e1e5))
+* **mcp-server:** add support for session id, forward client info ([9f3f1cb](https://github.com/lithic-com/lithic-node/commit/9f3f1cbbb34756d4d92ef000e9554a7580a775d8))
+* **mcp-server:** increase local docs search result count from 5 to 10 ([b95dd60](https://github.com/lithic-com/lithic-node/commit/b95dd6002ff69d5cc2b19a95c0b863572ad48480))
+* **mcp-server:** log client info ([2e1174a](https://github.com/lithic-com/lithic-node/commit/2e1174ac9aa88945719d45758ea713ebc5c8eaa8))
+
+
+### Documentation
+
+* **api:** clarify nature_of_business and qr_code_url field constraints ([c36c997](https://github.com/lithic-com/lithic-node/commit/c36c99779ede1d40967ed1763e5124e2f38c3db1))
+* improve examples ([5a40af5](https://github.com/lithic-com/lithic-node/commit/5a40af54023b5d717dbfce50088591f1246d88e9))
+* update examples ([4f9b19d](https://github.com/lithic-com/lithic-node/commit/4f9b19ded173c5e63fbde1c5228c621dff77dc64))
+
## 0.135.0 (2026-03-23)
Full Changelog: [v0.134.0...v0.135.0](https://github.com/lithic-com/lithic-node/compare/v0.134.0...v0.135.0)
diff --git a/package.json b/package.json
index 9c4285a8..0b9492b9 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "lithic",
- "version": "0.135.0",
+ "version": "0.136.0",
"description": "The official TypeScript library for the Lithic API",
"author": "Lithic ",
"types": "dist/index.d.ts",
diff --git a/packages/mcp-server/manifest.json b/packages/mcp-server/manifest.json
index 93cd73d1..9b1ce86c 100644
--- a/packages/mcp-server/manifest.json
+++ b/packages/mcp-server/manifest.json
@@ -1,7 +1,7 @@
{
"dxt_version": "0.2",
"name": "lithic-mcp",
- "version": "0.135.0",
+ "version": "0.136.0",
"description": "The official MCP Server for the Lithic API",
"author": {
"name": "Lithic",
diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json
index 512306d8..35a8952b 100644
--- a/packages/mcp-server/package.json
+++ b/packages/mcp-server/package.json
@@ -1,6 +1,6 @@
{
"name": "lithic-mcp",
- "version": "0.135.0",
+ "version": "0.136.0",
"description": "The official MCP Server for the Lithic API",
"author": "Lithic ",
"types": "dist/index.d.ts",
diff --git a/packages/mcp-server/src/server.ts b/packages/mcp-server/src/server.ts
index fd781e91..708528d0 100644
--- a/packages/mcp-server/src/server.ts
+++ b/packages/mcp-server/src/server.ts
@@ -29,7 +29,7 @@ export const newMcpServer = async ({
new McpServer(
{
name: 'lithic_api',
- version: '0.135.0',
+ version: '0.136.0',
},
{
instructions: await getInstructions({ stainlessApiKey, customInstructionsPath }),
diff --git a/src/version.ts b/src/version.ts
index b35cd532..23d9082b 100644
--- a/src/version.ts
+++ b/src/version.ts
@@ -1 +1 @@
-export const VERSION = '0.135.0'; // x-release-please-version
+export const VERSION = '0.136.0'; // x-release-please-version
From a188905adea0386d7c9fb6b9c62289aff13a171f Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Thu, 16 Apr 2026 11:47:42 +0000
Subject: [PATCH 077/164] feat(api): add
CardAuthorizationChallengeResponseWebhookEvent to webhooks
---
.stats.yml | 4 +--
api.md | 1 +
src/client.ts | 2 ++
src/resources/events/events.ts | 5 +++
src/resources/events/subscriptions.ts | 3 ++
src/resources/index.ts | 1 +
src/resources/webhooks.ts | 45 +++++++++++++++++++++++++++
7 files changed, 59 insertions(+), 2 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index d1255ff6..b222baac 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 190
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-fd53f07a8b1f148011972d7eba834d5995778d707ff8ef1ead92580b44142a15.yml
-openapi_spec_hash: 45892e6361542824364d82181d4eb80d
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-28c9b43d3182bf0e1c9635f6100e4995a744724db1edd635cfd3fc7702ced68c.yml
+openapi_spec_hash: aba00a65f877c5095499d9d1a66b5e5f
config_hash: 5eca052bb23d273fa970eac3127dd919
diff --git a/api.md b/api.md
index 6b2fb57d..887a6e82 100644
--- a/api.md
+++ b/api.md
@@ -798,6 +798,7 @@ Types:
- AccountHolderVerificationWebhookEvent
- AccountHolderDocumentUpdatedWebhookEvent
- CardAuthorizationApprovalRequestWebhookEvent
+- CardAuthorizationChallengeResponseWebhookEvent
- AuthRulesBacktestReportCreatedWebhookEvent
- BalanceUpdatedWebhookEvent
- BookTransferTransactionCreatedWebhookEvent
diff --git a/src/client.ts b/src/client.ts
index 92483fed..02f52345 100644
--- a/src/client.ts
+++ b/src/client.ts
@@ -195,6 +195,7 @@ import {
BookTransferTransactionCreatedWebhookEvent,
BookTransferTransactionUpdatedWebhookEvent,
CardAuthorizationApprovalRequestWebhookEvent,
+ CardAuthorizationChallengeResponseWebhookEvent,
CardConvertedWebhookEvent,
CardCreatedWebhookEvent,
CardReissuedWebhookEvent,
@@ -1547,6 +1548,7 @@ export declare namespace Lithic {
type AccountHolderVerificationWebhookEvent as AccountHolderVerificationWebhookEvent,
type AccountHolderDocumentUpdatedWebhookEvent as AccountHolderDocumentUpdatedWebhookEvent,
type CardAuthorizationApprovalRequestWebhookEvent as CardAuthorizationApprovalRequestWebhookEvent,
+ type CardAuthorizationChallengeResponseWebhookEvent as CardAuthorizationChallengeResponseWebhookEvent,
type AuthRulesBacktestReportCreatedWebhookEvent as AuthRulesBacktestReportCreatedWebhookEvent,
type BalanceUpdatedWebhookEvent as BalanceUpdatedWebhookEvent,
type BookTransferTransactionCreatedWebhookEvent as BookTransferTransactionCreatedWebhookEvent,
diff --git a/src/resources/events/events.ts b/src/resources/events/events.ts
index 9d9f3f6b..6ee7dfd9 100644
--- a/src/resources/events/events.ts
+++ b/src/resources/events/events.ts
@@ -109,6 +109,8 @@ export interface Event {
* created.
* - book_transfer_transaction.updated: Occurs when a book transfer transaction is
* updated.
+ * - card_authorization.challenge_response: Occurs when a cardholder responds to an
+ * SMS challenge during card authorization.
* - card_transaction.enhanced_data.created: Occurs when L2/L3 enhanced commercial
* data is processed for a transaction event.
* - card_transaction.enhanced_data.updated: Occurs when L2/L3 enhanced commercial
@@ -203,6 +205,7 @@ export interface Event {
| 'balance.updated'
| 'book_transfer_transaction.created'
| 'book_transfer_transaction.updated'
+ | 'card_authorization.challenge_response'
| 'card_transaction.enhanced_data.created'
| 'card_transaction.enhanced_data.updated'
| 'card_transaction.updated'
@@ -281,6 +284,7 @@ export interface EventSubscription {
| 'balance.updated'
| 'book_transfer_transaction.created'
| 'book_transfer_transaction.updated'
+ | 'card_authorization.challenge_response'
| 'card_transaction.enhanced_data.created'
| 'card_transaction.enhanced_data.updated'
| 'card_transaction.updated'
@@ -397,6 +401,7 @@ export interface EventListParams extends CursorPageParams {
| 'balance.updated'
| 'book_transfer_transaction.created'
| 'book_transfer_transaction.updated'
+ | 'card_authorization.challenge_response'
| 'card_transaction.enhanced_data.created'
| 'card_transaction.enhanced_data.updated'
| 'card_transaction.updated'
diff --git a/src/resources/events/subscriptions.ts b/src/resources/events/subscriptions.ts
index 2223331e..4d08452b 100644
--- a/src/resources/events/subscriptions.ts
+++ b/src/resources/events/subscriptions.ts
@@ -175,6 +175,7 @@ export interface SubscriptionCreateParams {
| 'balance.updated'
| 'book_transfer_transaction.created'
| 'book_transfer_transaction.updated'
+ | 'card_authorization.challenge_response'
| 'card_transaction.enhanced_data.created'
| 'card_transaction.enhanced_data.updated'
| 'card_transaction.updated'
@@ -251,6 +252,7 @@ export interface SubscriptionUpdateParams {
| 'balance.updated'
| 'book_transfer_transaction.created'
| 'book_transfer_transaction.updated'
+ | 'card_authorization.challenge_response'
| 'card_transaction.enhanced_data.created'
| 'card_transaction.enhanced_data.updated'
| 'card_transaction.updated'
@@ -357,6 +359,7 @@ export interface SubscriptionSendSimulatedExampleParams {
| 'balance.updated'
| 'book_transfer_transaction.created'
| 'book_transfer_transaction.updated'
+ | 'card_authorization.challenge_response'
| 'card_transaction.enhanced_data.created'
| 'card_transaction.enhanced_data.updated'
| 'card_transaction.updated'
diff --git a/src/resources/index.ts b/src/resources/index.ts
index 1222ff16..01ed8f62 100644
--- a/src/resources/index.ts
+++ b/src/resources/index.ts
@@ -298,6 +298,7 @@ export {
type AccountHolderVerificationWebhookEvent,
type AccountHolderDocumentUpdatedWebhookEvent,
type CardAuthorizationApprovalRequestWebhookEvent,
+ type CardAuthorizationChallengeResponseWebhookEvent,
type AuthRulesBacktestReportCreatedWebhookEvent,
type BalanceUpdatedWebhookEvent,
type BookTransferTransactionCreatedWebhookEvent,
diff --git a/src/resources/webhooks.ts b/src/resources/webhooks.ts
index d7f80d92..d18feb15 100644
--- a/src/resources/webhooks.ts
+++ b/src/resources/webhooks.ts
@@ -1294,6 +1294,49 @@ export namespace CardAuthorizationApprovalRequestWebhookEvent {
}
}
+export interface CardAuthorizationChallengeResponseWebhookEvent {
+ /**
+ * The token of the card associated with the challenge
+ */
+ card_token: string | null;
+
+ /**
+ * The method used to deliver the challenge to the cardholder
+ */
+ challenge_method: 'SMS';
+
+ /**
+ * The timestamp of when the challenge was completed
+ */
+ completed: string | null;
+
+ /**
+ * The timestamp of when the challenge was created
+ */
+ created: string;
+
+ /**
+ * Globally unique identifier for the event
+ */
+ event_token: string;
+
+ /**
+ * Event type
+ */
+ event_type: 'card_authorization.challenge_response';
+
+ /**
+ * The cardholder's response to the challenge
+ */
+ response: 'APPROVE' | 'DECLINE';
+
+ /**
+ * The token of the transaction associated with the authorization event being
+ * challenged
+ */
+ transaction_token: string | null;
+}
+
export interface AuthRulesBacktestReportCreatedWebhookEvent extends BacktestsAPI.BacktestResults {
/**
* The type of event that occurred.
@@ -2402,6 +2445,7 @@ export type ParsedWebhookEvent =
| AccountHolderVerificationWebhookEvent
| AccountHolderDocumentUpdatedWebhookEvent
| CardAuthorizationApprovalRequestWebhookEvent
+ | CardAuthorizationChallengeResponseWebhookEvent
| AuthRulesBacktestReportCreatedWebhookEvent
| BalanceUpdatedWebhookEvent
| BookTransferTransactionCreatedWebhookEvent
@@ -2881,6 +2925,7 @@ export declare namespace Webhooks {
type AccountHolderVerificationWebhookEvent as AccountHolderVerificationWebhookEvent,
type AccountHolderDocumentUpdatedWebhookEvent as AccountHolderDocumentUpdatedWebhookEvent,
type CardAuthorizationApprovalRequestWebhookEvent as CardAuthorizationApprovalRequestWebhookEvent,
+ type CardAuthorizationChallengeResponseWebhookEvent as CardAuthorizationChallengeResponseWebhookEvent,
type AuthRulesBacktestReportCreatedWebhookEvent as AuthRulesBacktestReportCreatedWebhookEvent,
type BalanceUpdatedWebhookEvent as BalanceUpdatedWebhookEvent,
type BookTransferTransactionCreatedWebhookEvent as BookTransferTransactionCreatedWebhookEvent,
From f582864b82f75e5ea44562ec80180b052f17c037 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 20 Apr 2026 14:25:58 +0000
Subject: [PATCH 078/164] feat(api): add setVerificationMethod to
externalBankAccounts
---
.stats.yml | 4 +-
api.md | 1 +
packages/mcp-server/src/code-tool-worker.ts | 1 +
packages/mcp-server/src/local-docs-search.ts | 55 +++++++++++++++++++
packages/mcp-server/src/methods.ts | 6 ++
src/client.ts | 2 +
.../external-bank-accounts.ts | 38 +++++++++++++
src/resources/external-bank-accounts/index.ts | 1 +
src/resources/index.ts | 1 +
.../external-bank-accounts.test.ts | 24 ++++++++
10 files changed, 131 insertions(+), 2 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index b222baac..f542910e 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
-configured_endpoints: 190
+configured_endpoints: 191
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-28c9b43d3182bf0e1c9635f6100e4995a744724db1edd635cfd3fc7702ced68c.yml
openapi_spec_hash: aba00a65f877c5095499d9d1a66b5e5f
-config_hash: 5eca052bb23d273fa970eac3127dd919
+config_hash: ac8326134e692f3f3bdec82396bbec80
diff --git a/api.md b/api.md
index 887a6e82..edf297ed 100644
--- a/api.md
+++ b/api.md
@@ -527,6 +527,7 @@ Methods:
- client.externalBankAccounts.list({ ...params }) -> ExternalBankAccountListResponsesCursorPage
- client.externalBankAccounts.retryMicroDeposits(externalBankAccountToken, { ...params }) -> ExternalBankAccountRetryMicroDepositsResponse
- client.externalBankAccounts.retryPrenote(externalBankAccountToken, { ...params }) -> ExternalBankAccount
+- client.externalBankAccounts.setVerificationMethod(externalBankAccountToken, { ...params }) -> ExternalBankAccount
- client.externalBankAccounts.unpause(externalBankAccountToken) -> ExternalBankAccount
## MicroDeposits
diff --git a/packages/mcp-server/src/code-tool-worker.ts b/packages/mcp-server/src/code-tool-worker.ts
index 839e2d44..3da4b418 100644
--- a/packages/mcp-server/src/code-tool-worker.ts
+++ b/packages/mcp-server/src/code-tool-worker.ts
@@ -240,6 +240,7 @@ const fuse = new Fuse(
'client.externalBankAccounts.retrieve',
'client.externalBankAccounts.retryMicroDeposits',
'client.externalBankAccounts.retryPrenote',
+ 'client.externalBankAccounts.setVerificationMethod',
'client.externalBankAccounts.unpause',
'client.externalBankAccounts.update',
'client.externalBankAccounts.microDeposits.create',
diff --git a/packages/mcp-server/src/local-docs-search.ts b/packages/mcp-server/src/local-docs-search.ts
index af1c9cf8..393d7d22 100644
--- a/packages/mcp-server/src/local-docs-search.ts
+++ b/packages/mcp-server/src/local-docs-search.ts
@@ -7129,6 +7129,61 @@ const EMBEDDED_METHODS: MethodEntry[] = [
},
},
},
+ {
+ name: 'set_verification_method',
+ endpoint: '/v1/external_bank_accounts/{external_bank_account_token}/set_verification_method',
+ httpMethod: 'post',
+ summary: 'Set verification method',
+ description:
+ 'Update the verification method for an external bank account. Verification method can only be updated\nif the `verification_state` is `PENDING`.\n',
+ stainlessPath: '(resource) external_bank_accounts > (method) set_verification_method',
+ qualified: 'client.externalBankAccounts.setVerificationMethod',
+ params: [
+ 'external_bank_account_token: string;',
+ "verification_method: 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED';",
+ 'financial_account_token?: string;',
+ ],
+ response:
+ "{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'INDIVIDUAL' | 'BUSINESS'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED' | 'UNVERIFIED'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }",
+ markdown:
+ "## set_verification_method\n\n`client.externalBankAccounts.setVerificationMethod(external_bank_account_token: string, verification_method: 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED', financial_account_token?: string): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: owner_type; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: verification_method; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**post** `/v1/external_bank_accounts/{external_bank_account_token}/set_verification_method`\n\nUpdate the verification method for an external bank account. Verification method can only be updated\nif the `verification_state` is `PENDING`.\n\n\n### Parameters\n\n- `external_bank_account_token: string`\n\n- `verification_method: 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED'`\n The verification method to set for the external bank account\n\n- `financial_account_token?: string`\n The financial account token of the operating account to fund the micro deposits. Required when verification_method is MICRO_DEPOSIT or PRENOTE.\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'INDIVIDUAL' | 'BUSINESS'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED' | 'UNVERIFIED'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'INDIVIDUAL' | 'BUSINESS'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED' | 'UNVERIFIED'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalBankAccount = await client.externalBankAccounts.setVerificationMethod('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { verification_method: 'MICRO_DEPOSIT' });\n\nconsole.log(externalBankAccount);\n```",
+ perLanguage: {
+ go: {
+ method: 'client.ExternalBankAccounts.SetVerificationMethod',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalBankAccount, err := client.ExternalBankAccounts.SetVerificationMethod(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalBankAccountSetVerificationMethodParams{\n\t\t\tVerificationMethod: lithic.F(lithic.ExternalBankAccountSetVerificationMethodParamsVerificationMethodMicroDeposit),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalBankAccount.CompanyID)\n}\n',
+ },
+ http: {
+ example:
+ 'curl https://api.lithic.com/v1/external_bank_accounts/$EXTERNAL_BANK_ACCOUNT_TOKEN/set_verification_method \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "verification_method": "MICRO_DEPOSIT"\n }\'',
+ },
+ java: {
+ method: 'externalBankAccounts().setVerificationMethod',
+ example:
+ 'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.ExternalBankAccount;\nimport com.lithic.api.models.ExternalBankAccountSetVerificationMethodParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n ExternalBankAccountSetVerificationMethodParams params = ExternalBankAccountSetVerificationMethodParams.builder()\n .externalBankAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .verificationMethod(ExternalBankAccountSetVerificationMethodParams.SetVerificationMethodAllowedVerificationMethods.MICRO_DEPOSIT)\n .build();\n ExternalBankAccount externalBankAccount = client.externalBankAccounts().setVerificationMethod(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'externalBankAccounts().setVerificationMethod',
+ example:
+ 'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalBankAccount\nimport com.lithic.api.models.ExternalBankAccountSetVerificationMethodParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ExternalBankAccountSetVerificationMethodParams = ExternalBankAccountSetVerificationMethodParams.builder()\n .externalBankAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .verificationMethod(ExternalBankAccountSetVerificationMethodParams.SetVerificationMethodAllowedVerificationMethods.MICRO_DEPOSIT)\n .build()\n val externalBankAccount: ExternalBankAccount = client.externalBankAccounts().setVerificationMethod(params)\n}',
+ },
+ python: {
+ method: 'external_bank_accounts.set_verification_method',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_bank_account = client.external_bank_accounts.set_verification_method(\n external_bank_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n verification_method="MICRO_DEPOSIT",\n)\nprint(external_bank_account.company_id)',
+ },
+ ruby: {
+ method: 'external_bank_accounts.set_verification_method',
+ example:
+ 'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_bank_account = lithic.external_bank_accounts.set_verification_method(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n verification_method: :MICRO_DEPOSIT\n)\n\nputs(external_bank_account)',
+ },
+ typescript: {
+ method: 'client.externalBankAccounts.setVerificationMethod',
+ example:
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalBankAccount = await client.externalBankAccounts.setVerificationMethod(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { verification_method: 'MICRO_DEPOSIT' },\n);\n\nconsole.log(externalBankAccount.company_id);",
+ },
+ },
+ },
{
name: 'create',
endpoint: '/v1/external_bank_accounts/{external_bank_account_token}/micro_deposits',
diff --git a/packages/mcp-server/src/methods.ts b/packages/mcp-server/src/methods.ts
index 6e3324b9..2af49292 100644
--- a/packages/mcp-server/src/methods.ts
+++ b/packages/mcp-server/src/methods.ts
@@ -809,6 +809,12 @@ export const sdkMethods: SdkMethod[] = [
httpMethod: 'post',
httpPath: '/v1/external_bank_accounts/{external_bank_account_token}/retry_prenote',
},
+ {
+ clientCallName: 'client.externalBankAccounts.setVerificationMethod',
+ fullyQualifiedName: 'externalBankAccounts.setVerificationMethod',
+ httpMethod: 'post',
+ httpPath: '/v1/external_bank_accounts/{external_bank_account_token}/set_verification_method',
+ },
{
clientCallName: 'client.externalBankAccounts.unpause',
fullyQualifiedName: 'externalBankAccounts.unpause',
diff --git a/src/client.ts b/src/client.ts
index 02f52345..037bb5ff 100644
--- a/src/client.ts
+++ b/src/client.ts
@@ -313,6 +313,7 @@ import {
ExternalBankAccountRetryMicroDepositsParams,
ExternalBankAccountRetryMicroDepositsResponse,
ExternalBankAccountRetryPrenoteParams,
+ ExternalBankAccountSetVerificationMethodParams,
ExternalBankAccountUpdateParams,
ExternalBankAccountUpdateResponse,
ExternalBankAccounts,
@@ -1413,6 +1414,7 @@ export declare namespace Lithic {
type ExternalBankAccountListParams as ExternalBankAccountListParams,
type ExternalBankAccountRetryMicroDepositsParams as ExternalBankAccountRetryMicroDepositsParams,
type ExternalBankAccountRetryPrenoteParams as ExternalBankAccountRetryPrenoteParams,
+ type ExternalBankAccountSetVerificationMethodParams as ExternalBankAccountSetVerificationMethodParams,
};
export {
diff --git a/src/resources/external-bank-accounts/external-bank-accounts.ts b/src/resources/external-bank-accounts/external-bank-accounts.ts
index 08f5efd9..60621fe8 100644
--- a/src/resources/external-bank-accounts/external-bank-accounts.ts
+++ b/src/resources/external-bank-accounts/external-bank-accounts.ts
@@ -152,6 +152,30 @@ export class ExternalBankAccounts extends APIResource {
});
}
+ /**
+ * Update the verification method for an external bank account. Verification method
+ * can only be updated if the `verification_state` is `PENDING`.
+ *
+ * @example
+ * ```ts
+ * const externalBankAccount =
+ * await client.externalBankAccounts.setVerificationMethod(
+ * '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
+ * { verification_method: 'MICRO_DEPOSIT' },
+ * );
+ * ```
+ */
+ setVerificationMethod(
+ externalBankAccountToken: string,
+ body: ExternalBankAccountSetVerificationMethodParams,
+ options?: RequestOptions,
+ ): APIPromise {
+ return this._client.post(
+ path`/v1/external_bank_accounts/${externalBankAccountToken}/set_verification_method`,
+ { body, ...options },
+ );
+ }
+
/**
* Unpause an external bank account
*
@@ -1255,6 +1279,19 @@ export interface ExternalBankAccountRetryPrenoteParams {
financial_account_token?: string;
}
+export interface ExternalBankAccountSetVerificationMethodParams {
+ /**
+ * The verification method to set for the external bank account
+ */
+ verification_method: 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED';
+
+ /**
+ * The financial account token of the operating account to fund the micro deposits.
+ * Required when verification_method is MICRO_DEPOSIT or PRENOTE.
+ */
+ financial_account_token?: string;
+}
+
ExternalBankAccounts.MicroDeposits = MicroDeposits;
export declare namespace ExternalBankAccounts {
@@ -1274,6 +1311,7 @@ export declare namespace ExternalBankAccounts {
type ExternalBankAccountListParams as ExternalBankAccountListParams,
type ExternalBankAccountRetryMicroDepositsParams as ExternalBankAccountRetryMicroDepositsParams,
type ExternalBankAccountRetryPrenoteParams as ExternalBankAccountRetryPrenoteParams,
+ type ExternalBankAccountSetVerificationMethodParams as ExternalBankAccountSetVerificationMethodParams,
};
export {
diff --git a/src/resources/external-bank-accounts/index.ts b/src/resources/external-bank-accounts/index.ts
index f48376c6..804cc8aa 100644
--- a/src/resources/external-bank-accounts/index.ts
+++ b/src/resources/external-bank-accounts/index.ts
@@ -16,6 +16,7 @@ export {
type ExternalBankAccountListParams,
type ExternalBankAccountRetryMicroDepositsParams,
type ExternalBankAccountRetryPrenoteParams,
+ type ExternalBankAccountSetVerificationMethodParams,
type ExternalBankAccountListResponsesCursorPage,
} from './external-bank-accounts';
export {
diff --git a/src/resources/index.ts b/src/resources/index.ts
index 01ed8f62..61dfe07c 100644
--- a/src/resources/index.ts
+++ b/src/resources/index.ts
@@ -141,6 +141,7 @@ export {
type ExternalBankAccountListParams,
type ExternalBankAccountRetryMicroDepositsParams,
type ExternalBankAccountRetryPrenoteParams,
+ type ExternalBankAccountSetVerificationMethodParams,
type ExternalBankAccountListResponsesCursorPage,
} from './external-bank-accounts/external-bank-accounts';
export {
diff --git a/tests/api-resources/external-bank-accounts/external-bank-accounts.test.ts b/tests/api-resources/external-bank-accounts/external-bank-accounts.test.ts
index eb647c27..46dff173 100644
--- a/tests/api-resources/external-bank-accounts/external-bank-accounts.test.ts
+++ b/tests/api-resources/external-bank-accounts/external-bank-accounts.test.ts
@@ -157,6 +157,30 @@ describe('resource externalBankAccounts', () => {
).rejects.toThrow(Lithic.NotFoundError);
});
+ test('setVerificationMethod: only required params', async () => {
+ const responsePromise = client.externalBankAccounts.setVerificationMethod(
+ '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
+ { verification_method: 'MICRO_DEPOSIT' },
+ );
+ const rawResponse = await responsePromise.asResponse();
+ expect(rawResponse).toBeInstanceOf(Response);
+ const response = await responsePromise;
+ expect(response).not.toBeInstanceOf(Response);
+ const dataAndResponse = await responsePromise.withResponse();
+ expect(dataAndResponse.data).toBe(response);
+ expect(dataAndResponse.response).toBe(rawResponse);
+ });
+
+ test('setVerificationMethod: required and optional params', async () => {
+ const response = await client.externalBankAccounts.setVerificationMethod(
+ '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
+ {
+ verification_method: 'MICRO_DEPOSIT',
+ financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
+ },
+ );
+ });
+
test('unpause', async () => {
const responsePromise = client.externalBankAccounts.unpause('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
const rawResponse = await responsePromise.asResponse();
From 11acd7a189100e85a33405d934baac2a984ee96d Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 20 Apr 2026 16:35:59 +0000
Subject: [PATCH 079/164] feat(api): Add card/account/business account signals
endpoints and behavioral rule attributes
---
.stats.yml | 4 +-
packages/mcp-server/src/local-docs-search.ts | 12 +--
src/resources/auth-rules/v2/v2.ts | 92 +++++++++++++++++++-
3 files changed, 98 insertions(+), 10 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index f542910e..1a1957f0 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 191
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-28c9b43d3182bf0e1c9635f6100e4995a744724db1edd635cfd3fc7702ced68c.yml
-openapi_spec_hash: aba00a65f877c5095499d9d1a66b5e5f
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-d29b68bb85936070878d8badaa8a7c5991313285e70a990bc812c838eba85373.yml
+openapi_spec_hash: 54b44da68df22eb0ea99f2bc564667a2
config_hash: ac8326134e692f3f3bdec82396bbec80
diff --git a/packages/mcp-server/src/local-docs-search.ts b/packages/mcp-server/src/local-docs-search.ts
index 393d7d22..553f80bd 100644
--- a/packages/mcp-server/src/local-docs-search.ts
+++ b/packages/mcp-server/src/local-docs-search.ts
@@ -912,7 +912,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
stainlessPath: '(resource) auth_rules.v2 > (method) create',
qualified: 'client.authRules.v2.create',
params: [
- "{ parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; account_tokens?: string[]; business_account_tokens?: string[]; event_stream?: string; name?: string; } | { card_tokens: string[]; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; event_stream?: string; name?: string; } | { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; program_level: boolean; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; event_stream?: string; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; name?: string; };",
+ "{ parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; parameters?: object; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object | object[]; }; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; account_tokens?: string[]; business_account_tokens?: string[]; event_stream?: string; name?: string; } | { card_tokens: string[]; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; parameters?: object; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object | object[]; }; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; event_stream?: string; name?: string; } | { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; parameters?: object; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object | object[]; }; program_level: boolean; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; event_stream?: string; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; name?: string; };",
],
response:
"{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }",
@@ -975,7 +975,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response:
"{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }",
markdown:
- "## list\n\n`client.authRules.v2.list(account_token?: string, business_account_token?: string, card_token?: string, ending_before?: string, event_stream?: string, event_streams?: string[], page_size?: number, scope?: 'PROGRAM' | 'ACCOUNT' | 'BUSINESS_ACCOUNT' | 'CARD' | 'ANY', starting_after?: string): { token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: object; draft_version: object; event_stream: event_stream; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n**get** `/v2/auth_rules`\n\nLists V2 Auth rules\n\n### Parameters\n\n- `account_token?: string`\n Only return Auth Rules that are bound to the provided account token.\n\n- `business_account_token?: string`\n Only return Auth Rules that are bound to the provided business account token.\n\n- `card_token?: string`\n Only return Auth Rules that are bound to the provided card token.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `event_stream?: string`\n Deprecated: Use event_streams instead. Only return Auth rules that are executed during the provided event stream.\n\n- `event_streams?: string[]`\n Only return Auth rules that are executed during any of the provided event streams. If event_streams and event_stream are specified, the values will be combined.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `scope?: 'PROGRAM' | 'ACCOUNT' | 'BUSINESS_ACCOUNT' | 'CARD' | 'ANY'`\n Only return Auth Rules that are bound to the provided scope.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n - `token: string`\n - `account_tokens: string[]`\n - `business_account_tokens: string[]`\n - `card_tokens: string[]`\n - `current_version: { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; version: number; }`\n - `draft_version: { error: string; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }`\n - `event_stream: string`\n - `lithic_managed: boolean`\n - `name: string`\n - `program_level: boolean`\n - `state: 'ACTIVE' | 'INACTIVE'`\n - `type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'`\n - `excluded_account_tokens?: string[]`\n - `excluded_business_account_tokens?: string[]`\n - `excluded_card_tokens?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const authRule of client.authRules.v2.list()) {\n console.log(authRule);\n}\n```",
+ "## list\n\n`client.authRules.v2.list(account_token?: string, business_account_token?: string, card_token?: string, ending_before?: string, event_stream?: string, event_streams?: string[], page_size?: number, scope?: 'PROGRAM' | 'ACCOUNT' | 'BUSINESS_ACCOUNT' | 'CARD' | 'ANY', starting_after?: string): { token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: object; draft_version: object; event_stream: event_stream; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n**get** `/v2/auth_rules`\n\nLists V2 Auth rules\n\n### Parameters\n\n- `account_token?: string`\n Only return Auth Rules that are bound to the provided account token.\n\n- `business_account_token?: string`\n Only return Auth Rules that are bound to the provided business account token.\n\n- `card_token?: string`\n Only return Auth Rules that are bound to the provided card token.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `event_stream?: string`\n Deprecated: Use event_streams instead. Only return Auth rules that are executed during the provided event stream.\n\n- `event_streams?: string[]`\n Only return Auth rules that are executed during any of the provided event streams. If event_streams and event_stream are specified, the values will be combined.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `scope?: 'PROGRAM' | 'ACCOUNT' | 'BUSINESS_ACCOUNT' | 'CARD' | 'ANY'`\n Only return Auth Rules that are bound to the provided scope.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n - `token: string`\n - `account_tokens: string[]`\n - `business_account_tokens: string[]`\n - `card_tokens: string[]`\n - `current_version: { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; parameters?: object; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object | object[]; }; version: number; }`\n - `draft_version: { error: string; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; parameters?: object; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object | object[]; }; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }`\n - `event_stream: string`\n - `lithic_managed: boolean`\n - `name: string`\n - `program_level: boolean`\n - `state: 'ACTIVE' | 'INACTIVE'`\n - `type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'`\n - `excluded_account_tokens?: string[]`\n - `excluded_business_account_tokens?: string[]`\n - `excluded_card_tokens?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const authRule of client.authRules.v2.list()) {\n console.log(authRule);\n}\n```",
perLanguage: {
go: {
method: 'client.AuthRules.V2.List',
@@ -1024,7 +1024,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response:
"{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }",
markdown:
- "## retrieve\n\n`client.authRules.v2.retrieve(auth_rule_token: string): { token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: object; draft_version: object; event_stream: event_stream; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}`\n\nFetches a V2 Auth rule by its token\n\n### Parameters\n\n- `auth_rule_token: string`\n\n### Returns\n\n- `{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n - `token: string`\n - `account_tokens: string[]`\n - `business_account_tokens: string[]`\n - `card_tokens: string[]`\n - `current_version: { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; version: number; }`\n - `draft_version: { error: string; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }`\n - `event_stream: string`\n - `lithic_managed: boolean`\n - `name: string`\n - `program_level: boolean`\n - `state: 'ACTIVE' | 'INACTIVE'`\n - `type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'`\n - `excluded_account_tokens?: string[]`\n - `excluded_business_account_tokens?: string[]`\n - `excluded_card_tokens?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst authRule = await client.authRules.v2.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule);\n```",
+ "## retrieve\n\n`client.authRules.v2.retrieve(auth_rule_token: string): { token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: object; draft_version: object; event_stream: event_stream; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}`\n\nFetches a V2 Auth rule by its token\n\n### Parameters\n\n- `auth_rule_token: string`\n\n### Returns\n\n- `{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n - `token: string`\n - `account_tokens: string[]`\n - `business_account_tokens: string[]`\n - `card_tokens: string[]`\n - `current_version: { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; parameters?: object; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object | object[]; }; version: number; }`\n - `draft_version: { error: string; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; parameters?: object; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object | object[]; }; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }`\n - `event_stream: string`\n - `lithic_managed: boolean`\n - `name: string`\n - `program_level: boolean`\n - `state: 'ACTIVE' | 'INACTIVE'`\n - `type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'`\n - `excluded_account_tokens?: string[]`\n - `excluded_business_account_tokens?: string[]`\n - `excluded_card_tokens?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst authRule = await client.authRules.v2.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule);\n```",
perLanguage: {
go: {
method: 'client.AuthRules.V2.Get',
@@ -1173,12 +1173,12 @@ const EMBEDDED_METHODS: MethodEntry[] = [
qualified: 'client.authRules.v2.draft',
params: [
'auth_rule_token: string;',
- "parameters?: { conditions: { attribute: conditional_attribute; operation: conditional_operation; value: conditional_value; }[]; } | { period: { duration: number; type: 'CUSTOM'; } | { type: 'DAY'; } | { type: 'WEEK'; day_of_week?: number; } | { type: 'MONTH'; day_of_month?: number; } | { type: 'YEAR'; day_of_month?: number; month?: number; }; scope: 'CARD' | 'ACCOUNT'; filters?: { exclude_countries?: string[]; exclude_mccs?: string[]; include_countries?: string[]; include_mccs?: string[]; include_pan_entry_modes?: string[]; }; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: string; value: string | number | string[] | string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: string; value: string | number | string[] | string; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: string; value: string | number | string[] | string; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: string; value: string | number | string[] | string; }[]; } | { code: string; features: { type: 'AUTHORIZATION'; name?: string; } | { type: 'AUTHENTICATION'; name?: string; } | { type: 'TOKENIZATION'; name?: string; } | { type: 'ACH_RECEIPT'; name?: string; } | { type: 'CARD'; name?: string; } | { type: 'ACCOUNT_HOLDER'; name?: string; } | { type: 'IP_METADATA'; name?: string; } | { period: velocity_limit_period; scope: 'CARD' | 'ACCOUNT'; type: 'SPEND_VELOCITY'; filters?: velocity_limit_filters; name?: string; }[]; };",
+ "parameters?: { conditions: { attribute: conditional_attribute; operation: conditional_operation; value: conditional_value; }[]; } | { period: { duration: number; type: 'CUSTOM'; } | { type: 'DAY'; } | { type: 'WEEK'; day_of_week?: number; } | { type: 'MONTH'; day_of_month?: number; } | { type: 'YEAR'; day_of_month?: number; month?: number; }; scope: 'CARD' | 'ACCOUNT'; filters?: { exclude_countries?: string[]; exclude_mccs?: string[]; include_countries?: string[]; include_mccs?: string[]; include_pan_entry_modes?: string[]; }; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: string; value: string | number | string[] | string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: string; value: string | number | string[] | string; parameters?: { interval?: 'LIFETIME' | '7D' | '30D' | '90D'; scope?: 'CARD' | 'ACCOUNT' | 'BUSINESS_ACCOUNT'; }; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: string; value: string | number | string[] | string; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: string; value: string | number | string[] | string; }[]; } | { code: string; features: { type: 'AUTHORIZATION'; name?: string; } | { type: 'AUTHENTICATION'; name?: string; } | { type: 'TOKENIZATION'; name?: string; } | { type: 'ACH_RECEIPT'; name?: string; } | { type: 'CARD'; name?: string; } | { type: 'ACCOUNT_HOLDER'; name?: string; } | { type: 'IP_METADATA'; name?: string; } | { period: velocity_limit_period; scope: 'CARD' | 'ACCOUNT'; type: 'SPEND_VELOCITY'; filters?: velocity_limit_filters; name?: string; } | { scope: 'CARD' | 'ACCOUNT' | 'BUSINESS_ACCOUNT'; type: 'TRANSACTION_HISTORY_SIGNALS'; name?: string; }[]; };",
],
response:
"{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }",
markdown:
- "## draft\n\n`client.authRules.v2.draft(auth_rule_token: string, parameters?: { conditions: auth_rule_condition[]; } | { period: velocity_limit_period; scope: 'CARD' | 'ACCOUNT'; filters?: velocity_limit_filters; limit_amount?: number; limit_count?: number; } | { merchants: object[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: object[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: object[]; } | { action: object | object; conditions: object[]; } | { action: object | object; conditions: object[]; } | { code: string; features: rule_feature[]; }): { token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: object; draft_version: object; event_stream: event_stream; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n**post** `/v2/auth_rules/{auth_rule_token}/draft`\n\nCreates a new draft version of a rule that will be ran in shadow mode.\n\nThis can also be utilized to reset the draft parameters, causing a draft version to no longer be ran in shadow mode.\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `parameters?: { conditions: { attribute: conditional_attribute; operation: conditional_operation; value: conditional_value; }[]; } | { period: { duration: number; type: 'CUSTOM'; } | { type: 'DAY'; } | { type: 'WEEK'; day_of_week?: number; } | { type: 'MONTH'; day_of_month?: number; } | { type: 'YEAR'; day_of_month?: number; month?: number; }; scope: 'CARD' | 'ACCOUNT'; filters?: { exclude_countries?: string[]; exclude_mccs?: string[]; include_countries?: string[]; include_mccs?: string[]; include_pan_entry_modes?: string[]; }; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: string; value: string | number | string[] | string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: string; value: string | number | string[] | string; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: string; value: string | number | string[] | string; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: string; value: string | number | string[] | string; }[]; } | { code: string; features: { type: 'AUTHORIZATION'; name?: string; } | { type: 'AUTHENTICATION'; name?: string; } | { type: 'TOKENIZATION'; name?: string; } | { type: 'ACH_RECEIPT'; name?: string; } | { type: 'CARD'; name?: string; } | { type: 'ACCOUNT_HOLDER'; name?: string; } | { type: 'IP_METADATA'; name?: string; } | { period: velocity_limit_period; scope: 'CARD' | 'ACCOUNT'; type: 'SPEND_VELOCITY'; filters?: velocity_limit_filters; name?: string; }[]; }`\n Parameters for the Auth Rule\n\n### Returns\n\n- `{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n - `token: string`\n - `account_tokens: string[]`\n - `business_account_tokens: string[]`\n - `card_tokens: string[]`\n - `current_version: { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; version: number; }`\n - `draft_version: { error: string; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }`\n - `event_stream: string`\n - `lithic_managed: boolean`\n - `name: string`\n - `program_level: boolean`\n - `state: 'ACTIVE' | 'INACTIVE'`\n - `type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'`\n - `excluded_account_tokens?: string[]`\n - `excluded_business_account_tokens?: string[]`\n - `excluded_card_tokens?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst authRule = await client.authRules.v2.draft('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule);\n```",
+ "## draft\n\n`client.authRules.v2.draft(auth_rule_token: string, parameters?: { conditions: auth_rule_condition[]; } | { period: velocity_limit_period; scope: 'CARD' | 'ACCOUNT'; filters?: velocity_limit_filters; limit_amount?: number; limit_count?: number; } | { merchants: object[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: object[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: object[]; } | { action: object | object; conditions: object[]; } | { action: object | object; conditions: object[]; } | { code: string; features: rule_feature[]; }): { token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: object; draft_version: object; event_stream: event_stream; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n**post** `/v2/auth_rules/{auth_rule_token}/draft`\n\nCreates a new draft version of a rule that will be ran in shadow mode.\n\nThis can also be utilized to reset the draft parameters, causing a draft version to no longer be ran in shadow mode.\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `parameters?: { conditions: { attribute: conditional_attribute; operation: conditional_operation; value: conditional_value; }[]; } | { period: { duration: number; type: 'CUSTOM'; } | { type: 'DAY'; } | { type: 'WEEK'; day_of_week?: number; } | { type: 'MONTH'; day_of_month?: number; } | { type: 'YEAR'; day_of_month?: number; month?: number; }; scope: 'CARD' | 'ACCOUNT'; filters?: { exclude_countries?: string[]; exclude_mccs?: string[]; include_countries?: string[]; include_mccs?: string[]; include_pan_entry_modes?: string[]; }; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: string; value: string | number | string[] | string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: string; value: string | number | string[] | string; parameters?: { interval?: 'LIFETIME' | '7D' | '30D' | '90D'; scope?: 'CARD' | 'ACCOUNT' | 'BUSINESS_ACCOUNT'; }; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: string; value: string | number | string[] | string; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: string; value: string | number | string[] | string; }[]; } | { code: string; features: { type: 'AUTHORIZATION'; name?: string; } | { type: 'AUTHENTICATION'; name?: string; } | { type: 'TOKENIZATION'; name?: string; } | { type: 'ACH_RECEIPT'; name?: string; } | { type: 'CARD'; name?: string; } | { type: 'ACCOUNT_HOLDER'; name?: string; } | { type: 'IP_METADATA'; name?: string; } | { period: velocity_limit_period; scope: 'CARD' | 'ACCOUNT'; type: 'SPEND_VELOCITY'; filters?: velocity_limit_filters; name?: string; } | { scope: 'CARD' | 'ACCOUNT' | 'BUSINESS_ACCOUNT'; type: 'TRANSACTION_HISTORY_SIGNALS'; name?: string; }[]; }`\n Parameters for the Auth Rule\n\n### Returns\n\n- `{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n - `token: string`\n - `account_tokens: string[]`\n - `business_account_tokens: string[]`\n - `card_tokens: string[]`\n - `current_version: { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; parameters?: object; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object | object[]; }; version: number; }`\n - `draft_version: { error: string; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; parameters?: object; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object | object[]; }; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }`\n - `event_stream: string`\n - `lithic_managed: boolean`\n - `name: string`\n - `program_level: boolean`\n - `state: 'ACTIVE' | 'INACTIVE'`\n - `type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'`\n - `excluded_account_tokens?: string[]`\n - `excluded_business_account_tokens?: string[]`\n - `excluded_card_tokens?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst authRule = await client.authRules.v2.draft('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule);\n```",
perLanguage: {
go: {
method: 'client.AuthRules.V2.Draft',
@@ -1279,7 +1279,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response:
"{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }",
markdown:
- "## promote\n\n`client.authRules.v2.promote(auth_rule_token: string): { token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: object; draft_version: object; event_stream: event_stream; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n**post** `/v2/auth_rules/{auth_rule_token}/promote`\n\nPromotes the draft version of an Auth rule to the currently active version such that it is enforced in the respective stream.\n\n### Parameters\n\n- `auth_rule_token: string`\n\n### Returns\n\n- `{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n - `token: string`\n - `account_tokens: string[]`\n - `business_account_tokens: string[]`\n - `card_tokens: string[]`\n - `current_version: { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; version: number; }`\n - `draft_version: { error: string; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object[]; }; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }`\n - `event_stream: string`\n - `lithic_managed: boolean`\n - `name: string`\n - `program_level: boolean`\n - `state: 'ACTIVE' | 'INACTIVE'`\n - `type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'`\n - `excluded_account_tokens?: string[]`\n - `excluded_business_account_tokens?: string[]`\n - `excluded_card_tokens?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst authRule = await client.authRules.v2.promote('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule);\n```",
+ "## promote\n\n`client.authRules.v2.promote(auth_rule_token: string): { token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: object; draft_version: object; event_stream: event_stream; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n**post** `/v2/auth_rules/{auth_rule_token}/promote`\n\nPromotes the draft version of an Auth rule to the currently active version such that it is enforced in the respective stream.\n\n### Parameters\n\n- `auth_rule_token: string`\n\n### Returns\n\n- `{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n - `token: string`\n - `account_tokens: string[]`\n - `business_account_tokens: string[]`\n - `card_tokens: string[]`\n - `current_version: { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; parameters?: object; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object | object[]; }; version: number; }`\n - `draft_version: { error: string; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; parameters?: object; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object | object[]; }; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }`\n - `event_stream: string`\n - `lithic_managed: boolean`\n - `name: string`\n - `program_level: boolean`\n - `state: 'ACTIVE' | 'INACTIVE'`\n - `type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'`\n - `excluded_account_tokens?: string[]`\n - `excluded_business_account_tokens?: string[]`\n - `excluded_card_tokens?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst authRule = await client.authRules.v2.promote('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule);\n```",
perLanguage: {
go: {
method: 'client.AuthRules.V2.Promote',
diff --git a/src/resources/auth-rules/v2/v2.ts b/src/resources/auth-rules/v2/v2.ts
index cf1f98e7..fd5327c5 100644
--- a/src/resources/auth-rules/v2/v2.ts
+++ b/src/resources/auth-rules/v2/v2.ts
@@ -803,6 +803,33 @@ export namespace ConditionalAuthorizationActionParameters {
* - `CARD_AGE`: The age of the card in seconds at the time of the authorization.
* - `ACCOUNT_AGE`: The age of the account holder's account in seconds at the time
* of the authorization.
+ * - `AMOUNT_Z_SCORE`: The z-score of the transaction amount relative to the
+ * entity's transaction history. Null if fewer than 30 approved transactions in
+ * the specified window. Requires `parameters.scope` and `parameters.interval`.
+ * - `AVG_TRANSACTION_AMOUNT`: The average approved transaction amount for the
+ * entity over the specified window, in cents. Requires `parameters.scope` and
+ * `parameters.interval`.
+ * - `STDEV_TRANSACTION_AMOUNT`: The standard deviation of approved transaction
+ * amounts for the entity over the specified window, in cents. Null if fewer than
+ * 30 approved transactions in the specified window. Requires `parameters.scope`
+ * and `parameters.interval`.
+ * - `IS_NEW_COUNTRY`: Whether the transaction's merchant country has not been seen
+ * in the entity's transaction history. Valid values are `TRUE`, `FALSE`.
+ * Requires `parameters.scope`.
+ * - `IS_NEW_MCC`: Whether the transaction's MCC has not been seen in the entity's
+ * transaction history. Valid values are `TRUE`, `FALSE`. Requires
+ * `parameters.scope`.
+ * - `IS_FIRST_TRANSACTION`: Whether this is the first transaction for the entity.
+ * Valid values are `TRUE`, `FALSE`. Requires `parameters.scope`.
+ * - `CONSECUTIVE_DECLINES`: The number of consecutive declined transactions for
+ * the entity over the last 30 days (rolling). Requires `parameters.scope`. Not
+ * supported for `BUSINESS_ACCOUNT` scope.
+ * - `TIME_SINCE_LAST_TRANSACTION`: The number of days since the last approved
+ * transaction for the entity. Requires `parameters.scope`.
+ * - `DISTINCT_COUNTRY_COUNT`: The number of distinct merchant countries seen in
+ * the entity's transaction history. Requires `parameters.scope`.
+ * - `THREE_DS_SUCCESS_RATE`: The 3DS authentication success rate for the card, as
+ * a percentage from 0.0 to 100.0. Card-scoped only; no `parameters` required.
*/
attribute:
| 'MCC'
@@ -830,7 +857,17 @@ export namespace ConditionalAuthorizationActionParameters {
| 'SERVICE_LOCATION_STATE'
| 'SERVICE_LOCATION_POSTAL_CODE'
| 'CARD_AGE'
- | 'ACCOUNT_AGE';
+ | 'ACCOUNT_AGE'
+ | 'AMOUNT_Z_SCORE'
+ | 'AVG_TRANSACTION_AMOUNT'
+ | 'STDEV_TRANSACTION_AMOUNT'
+ | 'IS_NEW_COUNTRY'
+ | 'IS_NEW_MCC'
+ | 'IS_FIRST_TRANSACTION'
+ | 'CONSECUTIVE_DECLINES'
+ | 'TIME_SINCE_LAST_TRANSACTION'
+ | 'DISTINCT_COUNTRY_COUNT'
+ | 'THREE_DS_SUCCESS_RATE';
/**
* The operation to apply to the attribute
@@ -841,6 +878,38 @@ export namespace ConditionalAuthorizationActionParameters {
* A regex string, to be used with `MATCHES` or `DOES_NOT_MATCH`
*/
value: V2API.ConditionalValue;
+
+ /**
+ * Additional parameters required for transaction history signal attributes.
+ * Required when `attribute` is one of `AMOUNT_Z_SCORE`, `AVG_TRANSACTION_AMOUNT`,
+ * `STDEV_TRANSACTION_AMOUNT`, `IS_NEW_COUNTRY`, `IS_NEW_MCC`,
+ * `IS_FIRST_TRANSACTION`, `CONSECUTIVE_DECLINES`, `TIME_SINCE_LAST_TRANSACTION`,
+ * or `DISTINCT_COUNTRY_COUNT`. Not used for other attributes.
+ */
+ parameters?: Condition.Parameters;
+ }
+
+ export namespace Condition {
+ /**
+ * Additional parameters required for transaction history signal attributes.
+ * Required when `attribute` is one of `AMOUNT_Z_SCORE`, `AVG_TRANSACTION_AMOUNT`,
+ * `STDEV_TRANSACTION_AMOUNT`, `IS_NEW_COUNTRY`, `IS_NEW_MCC`,
+ * `IS_FIRST_TRANSACTION`, `CONSECUTIVE_DECLINES`, `TIME_SINCE_LAST_TRANSACTION`,
+ * or `DISTINCT_COUNTRY_COUNT`. Not used for other attributes.
+ */
+ export interface Parameters {
+ /**
+ * The time window for statistical attributes (`AMOUNT_Z_SCORE`,
+ * `AVG_TRANSACTION_AMOUNT`, `STDEV_TRANSACTION_AMOUNT`). Use `LIFETIME` for
+ * all-time history or a specific window (`7D`, `30D`, `90D`).
+ */
+ interval?: 'LIFETIME' | '7D' | '30D' | '90D';
+
+ /**
+ * The entity scope to evaluate the attribute against.
+ */
+ scope?: 'CARD' | 'ACCOUNT' | 'BUSINESS_ACCOUNT';
+ }
}
}
@@ -1360,6 +1429,10 @@ export namespace ReportStats {
* - `SPEND_VELOCITY`: Spend velocity data for the card or account. Requires
* `scope`, `period`, and optionally `filters` to configure the velocity
* calculation. Available for AUTHORIZATION event stream rules.
+ * - `TRANSACTION_HISTORY_SIGNALS`: Behavioral feature state derived from the
+ * entity's transaction history. Requires `scope` to specify whether to load
+ * card, account, or business account history. Available for AUTHORIZATION event
+ * stream rules.
*/
export type RuleFeature =
| RuleFeature.AuthorizationFeature
@@ -1369,7 +1442,8 @@ export type RuleFeature =
| RuleFeature.CardFeature
| RuleFeature.AccountHolderFeature
| RuleFeature.IPMetadataFeature
- | RuleFeature.SpendVelocityFeature;
+ | RuleFeature.SpendVelocityFeature
+ | RuleFeature.TransactionHistorySignalsFeature;
export namespace RuleFeature {
export interface AuthorizationFeature {
@@ -1455,6 +1529,20 @@ export namespace RuleFeature {
*/
name?: string;
}
+
+ export interface TransactionHistorySignalsFeature {
+ /**
+ * The entity scope to load transaction history signals for.
+ */
+ scope: 'CARD' | 'ACCOUNT' | 'BUSINESS_ACCOUNT';
+
+ type: 'TRANSACTION_HISTORY_SIGNALS';
+
+ /**
+ * The variable name for this feature in the rule function signature
+ */
+ name?: string;
+ }
}
/**
From d65797f622422584b519f2b37935f151bfe2f9f0 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 20 Apr 2026 16:36:37 +0000
Subject: [PATCH 080/164] release: 0.137.0
---
.release-please-manifest.json | 2 +-
CHANGELOG.md | 10 ++++++++++
package.json | 2 +-
packages/mcp-server/manifest.json | 2 +-
packages/mcp-server/package.json | 2 +-
packages/mcp-server/src/server.ts | 2 +-
src/version.ts | 2 +-
7 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index d62785c5..7d69fc3f 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.136.0"
+ ".": "0.137.0"
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 162fbdf3..05ab0382 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,15 @@
# Changelog
+## 0.137.0 (2026-04-20)
+
+Full Changelog: [v0.136.0...v0.137.0](https://github.com/lithic-com/lithic-node/compare/v0.136.0...v0.137.0)
+
+### Features
+
+* **api:** Add card/account/business account signals endpoints and behavioral rule attributes ([77e743c](https://github.com/lithic-com/lithic-node/commit/77e743c03583f477bd43aa1d600dd563912b53c4))
+* **api:** add CardAuthorizationChallengeResponseWebhookEvent to webhooks ([2e285c4](https://github.com/lithic-com/lithic-node/commit/2e285c4208849bab60afbc0036b5efdff77d6904))
+* **api:** add setVerificationMethod to externalBankAccounts ([fd9c676](https://github.com/lithic-com/lithic-node/commit/fd9c6762fc46e5da4e751e5d84a199356a374348))
+
## 0.136.0 (2026-04-13)
Full Changelog: [v0.135.0...v0.136.0](https://github.com/lithic-com/lithic-node/compare/v0.135.0...v0.136.0)
diff --git a/package.json b/package.json
index 0b9492b9..c1dac825 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "lithic",
- "version": "0.136.0",
+ "version": "0.137.0",
"description": "The official TypeScript library for the Lithic API",
"author": "Lithic ",
"types": "dist/index.d.ts",
diff --git a/packages/mcp-server/manifest.json b/packages/mcp-server/manifest.json
index 9b1ce86c..cc783200 100644
--- a/packages/mcp-server/manifest.json
+++ b/packages/mcp-server/manifest.json
@@ -1,7 +1,7 @@
{
"dxt_version": "0.2",
"name": "lithic-mcp",
- "version": "0.136.0",
+ "version": "0.137.0",
"description": "The official MCP Server for the Lithic API",
"author": {
"name": "Lithic",
diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json
index 35a8952b..69e72ddb 100644
--- a/packages/mcp-server/package.json
+++ b/packages/mcp-server/package.json
@@ -1,6 +1,6 @@
{
"name": "lithic-mcp",
- "version": "0.136.0",
+ "version": "0.137.0",
"description": "The official MCP Server for the Lithic API",
"author": "Lithic ",
"types": "dist/index.d.ts",
diff --git a/packages/mcp-server/src/server.ts b/packages/mcp-server/src/server.ts
index 708528d0..468c1847 100644
--- a/packages/mcp-server/src/server.ts
+++ b/packages/mcp-server/src/server.ts
@@ -29,7 +29,7 @@ export const newMcpServer = async ({
new McpServer(
{
name: 'lithic_api',
- version: '0.136.0',
+ version: '0.137.0',
},
{
instructions: await getInstructions({ stainlessApiKey, customInstructionsPath }),
diff --git a/src/version.ts b/src/version.ts
index 23d9082b..bbd0a12b 100644
--- a/src/version.ts
+++ b/src/version.ts
@@ -1 +1 @@
-export const VERSION = '0.136.0'; // x-release-please-version
+export const VERSION = '0.137.0'; // x-release-please-version
From 94a149cbf86a804214b101a9b1fffb51fd742476 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 21 Apr 2026 19:11:33 +0000
Subject: [PATCH 081/164] fix(types): make fields nullable in account-holders,
accounts, and cards
---
.stats.yml | 4 ++--
src/resources/account-holders/account-holders.ts | 6 +++---
src/resources/accounts.ts | 6 ++++--
src/resources/cards/cards.ts | 15 ++++++++-------
4 files changed, 17 insertions(+), 14 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 1a1957f0..ccbfde87 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 191
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-d29b68bb85936070878d8badaa8a7c5991313285e70a990bc812c838eba85373.yml
-openapi_spec_hash: 54b44da68df22eb0ea99f2bc564667a2
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-dc8aacc11d74a1e25c95ba549dd0f4a4e735cbf7562fc6b17b0c81d62fd5475c.yml
+openapi_spec_hash: 1906583f260a3e9ace5ae38fd2254763
config_hash: ac8326134e692f3f3bdec82396bbec80
diff --git a/src/resources/account-holders/account-holders.ts b/src/resources/account-holders/account-holders.ts
index 246e076a..f3bb224c 100644
--- a/src/resources/account-holders/account-holders.ts
+++ b/src/resources/account-holders/account-holders.ts
@@ -1284,7 +1284,7 @@ export namespace AccountHolderUpdateResponse {
email?: string;
/**
- * The type of KYC exemption for a KYC-Exempt Account Holder. "None" if the account
+ * The type of KYC exemption for a KYC-Exempt Account Holder. `null` if the account
* holder is not KYC-Exempt.
*/
exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER';
@@ -1839,10 +1839,10 @@ export interface AccountHolderSimulateEnrollmentReviewResponse {
email?: string;
/**
- * The type of KYC exemption for a KYC-Exempt Account Holder. "None" if the account
+ * The type of KYC exemption for a KYC-Exempt Account Holder. `null` if the account
* holder is not KYC-Exempt.
*/
- exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER';
+ exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER' | null;
/**
* Customer-provided token that indicates a relationship with an object outside of
diff --git a/src/resources/accounts.ts b/src/resources/accounts.ts
index b73824ca..5468f897 100644
--- a/src/resources/accounts.ts
+++ b/src/resources/accounts.ts
@@ -172,7 +172,8 @@ export interface Account {
| 'ISSUER_REQUEST'
| 'NOT_ACTIVE'
| 'INTERNAL_REVIEW'
- | 'OTHER';
+ | 'OTHER'
+ | null;
/**
* @deprecated
@@ -406,7 +407,8 @@ export interface AccountUpdateParams {
| 'ISSUER_REQUEST'
| 'NOT_ACTIVE'
| 'INTERNAL_REVIEW'
- | 'OTHER';
+ | 'OTHER'
+ | null;
/**
* @deprecated Address used during Address Verification Service (AVS) checks during
diff --git a/src/resources/cards/cards.ts b/src/resources/cards/cards.ts
index 0ba3ba9b..0cf91fe7 100644
--- a/src/resources/cards/cards.ts
+++ b/src/resources/cards/cards.ts
@@ -524,9 +524,9 @@ export interface NonPCICard {
created: string;
/**
- * Deprecated: Funding account for the card.
+ * Funding account for a card
*/
- funding: NonPCICard.Funding;
+ funding: NonPCICard.Funding | null;
/**
* Last four digits of the card number.
@@ -611,7 +611,7 @@ export interface NonPCICard {
* after tokenization. This artwork must be approved by Mastercard and configured
* by Lithic to use.
*/
- digital_card_art_token?: string;
+ digital_card_art_token?: string | null;
/**
* Two digit (MM) expiry month.
@@ -652,7 +652,7 @@ export interface NonPCICard {
* before use. Specifies the configuration (i.e., physical card art) that the card
* should be manufactured with.
*/
- product_id?: string;
+ product_id?: string | null;
/**
* If the card is a replacement for another card, the globally unique identifier
@@ -693,12 +693,13 @@ export interface NonPCICard {
| 'INTERNAL_REVIEW'
| 'EXPIRED'
| 'UNDELIVERABLE'
- | 'OTHER';
+ | 'OTHER'
+ | null;
}
export namespace NonPCICard {
/**
- * Deprecated: Funding account for the card.
+ * Funding account for a card
*/
export interface Funding {
/**
@@ -740,7 +741,7 @@ export namespace NonPCICard {
/**
* The nickname given to the `FundingAccount` or `null` if it has no nickname.
*/
- nickname?: string;
+ nickname?: string | null;
}
}
From f6958e14e293a607f5d957701ee8408a2664fbce Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 21 Apr 2026 19:35:18 +0000
Subject: [PATCH 082/164] codegen metadata
---
.stats.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index ccbfde87..a0da8756 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 191
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-dc8aacc11d74a1e25c95ba549dd0f4a4e735cbf7562fc6b17b0c81d62fd5475c.yml
-openapi_spec_hash: 1906583f260a3e9ace5ae38fd2254763
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-599dd2ac665b09566a84c4871ffb3b7313f6b40d0808b8ab4df63bec608b4f9f.yml
+openapi_spec_hash: 429e0ad5e3aae4f63935859c2ac64fdc
config_hash: ac8326134e692f3f3bdec82396bbec80
From 9ce1e24946a7329a7e2217de5765d0abdd1f8d95 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 22 Apr 2026 10:32:10 +0000
Subject: [PATCH 083/164] chore(internal): update docs ordering
---
packages/mcp-server/src/local-docs-search.ts | 24 ++++++++++----------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/packages/mcp-server/src/local-docs-search.ts b/packages/mcp-server/src/local-docs-search.ts
index 553f80bd..8efb6988 100644
--- a/packages/mcp-server/src/local-docs-search.ts
+++ b/packages/mcp-server/src/local-docs-search.ts
@@ -10236,24 +10236,24 @@ const EMBEDDED_METHODS: MethodEntry[] = [
const EMBEDDED_READMES: { language: string; content: string }[] = [
{
- language: 'python',
+ language: 'go',
content:
- '# Lithic Python API library\n\n\n[)](https://pypi.org/project/lithic/)\n\nThe Lithic Python library provides convenient access to the Lithic REST API from any Python 3.9+\napplication. The library includes type definitions for all request params and response fields,\nand offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).\n\n\n\n\n\n## MCP Server\n\nUse the Lithic MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=lithic-mcp&config=eyJuYW1lIjoibGl0aGljLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2xpdGhpYy5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LWxpdGhpYy1hcGkta2V5IjoiTXkgTGl0aGljIEFQSSBLZXkifX0)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22lithic-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Flithic.stlmcp.com%22%2C%22headers%22%3A%7B%22x-lithic-api-key%22%3A%22My%20Lithic%20API%20Key%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n## Documentation\n\nThe REST API documentation can be found on [docs.lithic.com](https://docs.lithic.com). The full API of this library can be found in [api.md](api.md).\n\n## Installation\n\n```sh\n# install from PyPI\npip install lithic\n```\n\n## Usage\n\nThe full API of this library can be found in [api.md](api.md).\n\n```python\nimport os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n # defaults to "production".\n environment="sandbox",\n)\n\ncard = client.cards.create(\n type="SINGLE_USE",\n)\nprint(card.token)\n```\n\nWhile you can provide an `api_key` keyword argument,\nwe recommend using [python-dotenv](https://pypi.org/project/python-dotenv/)\nto add `LITHIC_API_KEY="My Lithic API Key"` to your `.env` file\nso that your API Key is not stored in source control.\n\n## Async usage\n\nSimply import `AsyncLithic` instead of `Lithic` and use `await` with each API call:\n\n```python\nimport os\nimport asyncio\nfrom lithic import AsyncLithic\n\nclient = AsyncLithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n # defaults to "production".\n environment="sandbox",\n)\n\nasync def main() -> None:\n card = await client.cards.create(\n type="SINGLE_USE",\n )\n print(card.token)\n\nasyncio.run(main())\n```\n\nFunctionality between the synchronous and asynchronous clients is otherwise identical.\n\n### With aiohttp\n\nBy default, the async client uses `httpx` for HTTP requests. However, for improved concurrency performance you may also use `aiohttp` as the HTTP backend.\n\nYou can enable this by installing `aiohttp`:\n\n```sh\n# install from PyPI\npip install lithic[aiohttp]\n```\n\nThen you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:\n\n```python\nimport os\nimport asyncio\nfrom lithic import DefaultAioHttpClient\nfrom lithic import AsyncLithic\n\nasync def main() -> None:\n async with AsyncLithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n http_client=DefaultAioHttpClient(),\n) as client:\n card = await client.cards.create(\n type="SINGLE_USE",\n )\n print(card.token)\n\nasyncio.run(main())\n```\n\n\n\n## Using types\n\nNested request parameters are [TypedDicts](https://docs.python.org/3/library/typing.html#typing.TypedDict). Responses are [Pydantic models](https://docs.pydantic.dev) which also provide helper methods for things like:\n\n- Serializing back into JSON, `model.to_json()`\n- Converting to a dictionary, `model.to_dict()`\n\nTyped requests and responses provide autocomplete and documentation within your editor. If you would like to see type errors in VS Code to help catch bugs earlier, set `python.analysis.typeCheckingMode` to `basic`.\n\n## Pagination\n\nList methods in the Lithic API are paginated.\n\nThis library provides auto-paginating iterators with each list response, so you do not have to request successive pages manually:\n\n```python\nfrom lithic import Lithic\n\nclient = Lithic()\n\nall_cards = []\n# Automatically fetches more pages as needed.\nfor card in client.cards.list():\n # Do something with card here\n all_cards.append(card)\nprint(all_cards)\n```\n\nOr, asynchronously:\n\n```python\nimport asyncio\nfrom lithic import AsyncLithic\n\nclient = AsyncLithic()\n\nasync def main() -> None:\n all_cards = []\n # Iterate through items across all pages, issuing requests as needed.\n async for card in client.cards.list():\n all_cards.append(card)\n print(all_cards)\n\nasyncio.run(main())\n```\n\nAlternatively, you can use the `.has_next_page()`, `.next_page_info()`, or `.get_next_page()` methods for more granular control working with pages:\n\n```python\nfirst_page = await client.cards.list()\nif first_page.has_next_page():\n print(f"will fetch next page using these details: {first_page.next_page_info()}")\n next_page = await first_page.get_next_page()\n print(f"number of items we just fetched: {len(next_page.data)}")\n\n# Remove `await` for non-async usage.\n```\n\nOr just work directly with the returned data:\n\n```python\nfirst_page = await client.cards.list()\n\nprint(f"next page cursor: {first_page.starting_after}") # => "next page cursor: ..."\nfor card in first_page.data:\n print(card.product_id)\n\n# Remove `await` for non-async usage.\n```\n\n## Nested params\n\nNested parameters are dictionaries, typed using `TypedDict`, for example:\n\n```python\nfrom lithic import Lithic\n\nclient = Lithic()\n\ncard = client.cards.create(\n type="PHYSICAL",\n shipping_address={\n "address1": "123",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Johnny",\n "last_name": "Appleseed",\n "postal_code": "10001",\n "state": "NY",\n },\n)\n```\n\n\n\n## Handling errors\n\nWhen the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `lithic.APIConnectionError` is raised.\n\nWhen the API returns a non-success status code (that is, 4xx or 5xx\nresponse), a subclass of `lithic.APIStatusError` is raised, containing `status_code` and `response` properties.\n\nAll errors inherit from `lithic.APIError`.\n\n```python\nimport lithic\nfrom lithic import Lithic\n\nclient = Lithic()\n\ntry:\n client.cards.create(\n type="MERCHANT_LOCKED",\n )\nexcept lithic.APIConnectionError as e:\n print("The server could not be reached")\n print(e.__cause__) # an underlying Exception, likely raised within httpx.\nexcept lithic.RateLimitError as e:\n print("A 429 status code was received; we should back off a bit.")\nexcept lithic.APIStatusError as e:\n print("Another non-200-range status code was received")\n print(e.status_code)\n print(e.response)\n```\n\nError codes are as follows:\n\n| Status Code | Error Type |\n| ----------- | -------------------------- |\n| 400 | `BadRequestError` |\n| 401 | `AuthenticationError` |\n| 403 | `PermissionDeniedError` |\n| 404 | `NotFoundError` |\n| 422 | `UnprocessableEntityError` |\n| 429 | `RateLimitError` |\n| >=500 | `InternalServerError` |\n| N/A | `APIConnectionError` |\n\n### Retries\n\nCertain errors are automatically retried 2 times by default, with a short exponential backoff.\nConnection errors (for example, due to a network connectivity problem), 408 Request Timeout, 409 Conflict,\n429 Rate Limit, and >=500 Internal errors are all retried by default.\n\nYou can use the `max_retries` option to configure or disable retry settings:\n\n```python\nfrom lithic import Lithic\n\n# Configure the default for all requests:\nclient = Lithic(\n # default is 2\n max_retries=0,\n)\n\n# Or, configure per-request:\nclient.with_options(max_retries = 5).cards.list(\n page_size=10,\n)\n```\n\n### Timeouts\n\nBy default requests time out after 1 minute. You can configure this with a `timeout` option,\nwhich accepts a float or an [`httpx.Timeout`](https://www.python-httpx.org/advanced/timeouts/#fine-tuning-the-configuration) object:\n\n```python\nfrom lithic import Lithic\n\n# Configure the default for all requests:\nclient = Lithic(\n # 20 seconds (default is 1 minute)\n timeout=20.0,\n)\n\n# More granular control:\nclient = Lithic(\n timeout=httpx.Timeout(60.0, read=5.0, write=10.0, connect=2.0),\n)\n\n# Override per-request:\nclient.with_options(timeout = 5.0).cards.list(\n page_size=10,\n)\n```\n\nOn timeout, an `APITimeoutError` is thrown.\n\nNote that requests that time out are [retried twice by default](#retries).\n\n\n\n## Advanced\n\n### Logging\n\nWe use the standard library [`logging`](https://docs.python.org/3/library/logging.html) module.\n\nYou can enable logging by setting the environment variable `LITHIC_LOG` to `info`.\n\n```shell\n$ export LITHIC_LOG=info\n```\n\nOr to `debug` for more verbose logging.\n\n### How to tell whether `None` means `null` or missing\n\nIn an API response, a field may be explicitly `null`, or missing entirely; in either case, its value is `None` in this library. You can differentiate the two cases with `.model_fields_set`:\n\n```py\nif response.my_field is None:\n if \'my_field\' not in response.model_fields_set:\n print(\'Got json like {}, without a "my_field" key present at all.\')\n else:\n print(\'Got json like {"my_field": null}.\')\n```\n\n### Accessing raw response data (e.g. headers)\n\nThe "raw" Response object can be accessed by prefixing `.with_raw_response.` to any HTTP method call, e.g.,\n\n```py\nfrom lithic import Lithic\n\nclient = Lithic()\nresponse = client.cards.with_raw_response.create(\n type="SINGLE_USE",\n)\nprint(response.headers.get(\'X-My-Header\'))\n\ncard = response.parse() # get the object that `cards.create()` would have returned\nprint(card.token)\n```\n\nThese methods return a [`LegacyAPIResponse`](https://github.com/lithic-com/lithic-python/tree/main/src/lithic/_legacy_response.py) object. This is a legacy class as we\'re changing it slightly in the next major version.\n\nFor the sync client this will mostly be the same with the exception\nof `content` & `text` will be methods instead of properties. In the\nasync client, all methods will be async.\n\nA migration script will be provided & the migration in general should\nbe smooth.\n\n#### `.with_streaming_response`\n\nThe above interface eagerly reads the full response body when you make the request, which may not always be what you want.\n\nTo stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.\n\nAs such, `.with_streaming_response` methods return a different [`APIResponse`](https://github.com/lithic-com/lithic-python/tree/main/src/lithic/_response.py) object, and the async client returns an [`AsyncAPIResponse`](https://github.com/lithic-com/lithic-python/tree/main/src/lithic/_response.py) object.\n\n```python\nwith client.cards.with_streaming_response.create(\n type="SINGLE_USE",\n) as response :\n print(response.headers.get(\'X-My-Header\'))\n\n for line in response.iter_lines():\n print(line)\n```\n\nThe context manager is required so that the response will reliably be closed.\n\n### Making custom/undocumented requests\n\nThis library is typed for convenient access to the documented API.\n\nIf you need to access undocumented endpoints, params, or response properties, the library can still be used.\n\n#### Undocumented endpoints\n\nTo make requests to undocumented endpoints, you can make requests using `client.get`, `client.post`, and other\nhttp verbs. Options on the client will be respected (such as retries) when making this request.\n\n```py\nimport httpx\n\nresponse = client.post(\n "/foo",\n cast_to=httpx.Response,\n body={"my_param": True},\n)\n\nprint(response.headers.get("x-foo"))\n```\n\n#### Undocumented request params\n\nIf you want to explicitly send an extra param, you can do so with the `extra_query`, `extra_body`, and `extra_headers` request\noptions.\n\n#### Undocumented response properties\n\nTo access undocumented response properties, you can access the extra fields like `response.unknown_prop`. You\ncan also get all the extra fields on the Pydantic model as a dict with\n[`response.model_extra`](https://docs.pydantic.dev/latest/api/base_model/#pydantic.BaseModel.model_extra).\n\n### Configuring the HTTP client\n\nYou can directly override the [httpx client](https://www.python-httpx.org/api/#client) to customize it for your use case, including:\n\n- Support for [proxies](https://www.python-httpx.org/advanced/proxies/)\n- Custom [transports](https://www.python-httpx.org/advanced/transports/)\n- Additional [advanced](https://www.python-httpx.org/advanced/clients/) functionality\n\n```python\nimport httpx\nfrom lithic import Lithic, DefaultHttpxClient\n\nclient = Lithic(\n # Or use the `LITHIC_BASE_URL` env var\n base_url="http://my.test.server.example.com:8083",\n http_client=DefaultHttpxClient(proxy="http://my.test.proxy.example.com", transport=httpx.HTTPTransport(local_address="0.0.0.0")),\n)\n```\n\nYou can also customize the client on a per-request basis by using `with_options()`:\n\n```python\nclient.with_options(http_client=DefaultHttpxClient(...))\n```\n\n### Managing HTTP resources\n\nBy default the library closes underlying HTTP connections whenever the client is [garbage collected](https://docs.python.org/3/reference/datamodel.html#object.__del__). You can manually close the client using the `.close()` method if desired, or with a context manager that closes when exiting.\n\n```py\nfrom lithic import Lithic\n\nwith Lithic() as client:\n # make requests here\n ...\n\n# HTTP client is now closed\n```\n\n## Versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes that only affect static types, without breaking runtime behavior.\n2. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n3. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/lithic-com/lithic-python/issues) with questions, bugs, or suggestions.\n\n### Determining the installed version\n\nIf you\'ve upgraded to the latest version but aren\'t seeing any new features you were expecting then your python environment is likely still using an older version.\n\nYou can determine the version that is being used at runtime with:\n\n```py\nimport lithic\nprint(lithic.__version__)\n```\n\n## Requirements\n\nPython 3.9 or higher.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n',
+ '# Lithic Go API Library\n\n
\n\nThe Lithic Go library provides convenient access to the [Lithic REST API](https://docs.lithic.com)\nfrom applications written in Go.\n\n\n\n## MCP Server\n\nUse the Lithic MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=lithic-mcp&config=eyJuYW1lIjoibGl0aGljLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2xpdGhpYy5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LWxpdGhpYy1hcGkta2V5IjoiTXkgTGl0aGljIEFQSSBLZXkifX0)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22lithic-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Flithic.stlmcp.com%22%2C%22headers%22%3A%7B%22x-lithic-api-key%22%3A%22My%20Lithic%20API%20Key%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n## Installation\n\n\n\n```go\nimport (\n\t"github.com/lithic-com/lithic-go" // imported as SDK_PackageName\n)\n```\n\n\n\nOr to pin the version:\n\n\n\n```sh\ngo get -u \'github.com/lithic-com/lithic-go@v0.0.1\'\n```\n\n\n\n## Requirements\n\nThis library requires Go 1.22+.\n\n## Usage\n\nThe full API of this library can be found in [api.md](api.md).\n\n```go\npackage main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"), // defaults to os.LookupEnv("LITHIC_API_KEY")\n\t\toption.WithEnvironmentSandbox(), // defaults to option.WithEnvironmentProduction()\n\t)\n\tcard, err := client.Cards.New(context.TODO(), lithic.CardNewParams{\n\t\tType: lithic.F(lithic.CardNewParamsTypeSingleUse),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card.Token)\n}\n\n```\n\n### Request fields\n\nAll request parameters are wrapped in a generic `Field` type,\nwhich we use to distinguish zero values from null or omitted fields.\n\nThis prevents accidentally sending a zero value if you forget a required parameter,\nand enables explicitly sending `null`, `false`, `\'\'`, or `0` on optional parameters.\nAny field not specified is not sent.\n\nTo construct fields with values, use the helpers `String()`, `Int()`, `Float()`, or most commonly, the generic `F[T]()`.\nTo send a null, use `Null[T]()`, and to send a nonconforming value, use `Raw[T](any)`. For example:\n\n```go\nparams := FooParams{\n\tName: SDK_PackageName.F("hello"),\n\n\t// Explicitly send `"description": null`\n\tDescription: SDK_PackageName.Null[string](),\n\n\tPoint: SDK_PackageName.F(SDK_PackageName.Point{\n\t\tX: SDK_PackageName.Int(0),\n\t\tY: SDK_PackageName.Int(1),\n\n\t\t// In cases where the API specifies a given type,\n\t\t// but you want to send something else, use `Raw`:\n\t\tZ: SDK_PackageName.Raw[int64](0.01), // sends a float\n\t}),\n}\n```\n\n### Response objects\n\nAll fields in response structs are value types (not pointers or wrappers).\n\nIf a given field is `null`, not present, or invalid, the corresponding field\nwill simply be its zero value.\n\nAll response structs also include a special `JSON` field, containing more detailed\ninformation about each property, which you can use like so:\n\n```go\nif res.Name == "" {\n\t// true if `"name"` is either not present or explicitly null\n\tres.JSON.Name.IsNull()\n\n\t// true if the `"name"` key was not present in the response JSON at all\n\tres.JSON.Name.IsMissing()\n\n\t// When the API returns data that cannot be coerced to the expected type:\n\tif res.JSON.Name.IsInvalid() {\n\t\traw := res.JSON.Name.Raw()\n\n\t\tlegacyName := struct{\n\t\t\tFirst string `json:"first"`\n\t\t\tLast string `json:"last"`\n\t\t}{}\n\t\tjson.Unmarshal([]byte(raw), &legacyName)\n\t\tname = legacyName.First + " " + legacyName.Last\n\t}\n}\n```\n\nThese `.JSON` structs also include an `Extras` map containing\nany properties in the json response that were not specified\nin the struct. This can be useful for API features not yet\npresent in the SDK.\n\n```go\nbody := res.JSON.ExtraFields["my_unexpected_field"].Raw()\n```\n\n### RequestOptions\n\nThis library uses the functional options pattern. Functions defined in the\n`SDK_PackageOptionName` package return a `RequestOption`, which is a closure that mutates a\n`RequestConfig`. These options can be supplied to the client or at individual\nrequests. For example:\n\n```go\nclient := SDK_PackageName.SDK_ClientInitializerName(\n\t// Adds a header to every request made by the client\n\tSDK_PackageOptionName.WithHeader("X-Some-Header", "custom_header_info"),\n)\n\nclient.Cards.New(context.TODO(), ...,\n\t// Override the header\n\tSDK_PackageOptionName.WithHeader("X-Some-Header", "some_other_custom_header_info"),\n\t// Add an undocumented field to the request body, using sjson syntax\n\tSDK_PackageOptionName.WithJSONSet("some.json.path", map[string]string{"my": "object"}),\n)\n```\n\nSee the [full list of request options](https://pkg.go.dev/github.com/lithic-com/lithic-go/SDK_PackageOptionName).\n\n### Pagination\n\nThis library provides some conveniences for working with paginated list endpoints.\n\nYou can use `.ListAutoPaging()` methods to iterate through items across all pages:\n\n```go\niter := client.Cards.ListAutoPaging(context.TODO(), lithic.CardListParams{})\n// Automatically fetches more pages as needed.\nfor iter.Next() {\n\tnonPCICard := iter.Current()\n\tfmt.Printf("%+v\\n", nonPCICard)\n}\nif err := iter.Err(); err != nil {\n\tpanic(err.Error())\n}\n```\n\nOr you can use simple `.List()` methods to fetch a single page and receive a standard response object\nwith additional helper methods like `.GetNextPage()`, e.g.:\n\n```go\npage, err := client.Cards.List(context.TODO(), lithic.CardListParams{})\nfor page != nil {\n\tfor _, card := range page.Data {\n\t\tfmt.Printf("%+v\\n", card)\n\t}\n\tpage, err = page.GetNextPage()\n}\nif err != nil {\n\tpanic(err.Error())\n}\n```\n\n### Errors\n\nWhen the API returns a non-success status code, we return an error with type\n`*SDK_PackageName.Error`. This contains the `StatusCode`, `*http.Request`, and\n`*http.Response` values of the request, as well as the JSON of the error body\n(much like other response objects in the SDK).\n\nTo handle errors, we recommend that you use the `errors.As` pattern:\n\n```go\n_, err := client.Cards.New(context.TODO(), lithic.CardNewParams{\n\tType: lithic.F(lithic.CardNewParamsTypeMerchantLocked),\n})\nif err != nil {\n\tvar apierr *lithic.Error\n\tif errors.As(err, &apierr) {\n\t\tprintln(string(apierr.DumpRequest(true))) // Prints the serialized HTTP request\n\t\tprintln(string(apierr.DumpResponse(true))) // Prints the serialized HTTP response\n\t\tprintln(apierr.Message) // Invalid parameter(s): type\n\t\tprintln(apierr.DebuggingRequestID) // 94d5e915-xxxx-4cee-a4f5-2xd6ebd279ac\n\t}\n\tpanic(err.Error()) // GET "/v1/cards": 400 Bad Request { ... }\n}\n```\n\nWhen other errors occur, they are returned unwrapped; for example,\nif HTTP transport fails, you might receive `*url.Error` wrapping `*net.OpError`.\n\n### Timeouts\n\nRequests do not time out by default; use context to configure a timeout for a request lifecycle.\n\nNote that if a request is [retried](#retries), the context timeout does not start over.\nTo set a per-retry timeout, use `SDK_PackageOptionName.WithRequestTimeout()`.\n\n```go\n// This sets the timeout for the request, including all the retries.\nctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute)\ndefer cancel()\nclient.Cards.List(\n\tctx,\n\tlithic.CardListParams{\n\t\tPageSize: lithic.F(int64(10)),\n\t},\n\t// This sets the per-retry timeout\n\toption.WithRequestTimeout(20*time.Second),\n)\n```\n\n### File uploads\n\nRequest parameters that correspond to file uploads in multipart requests are typed as\n`param.Field[io.Reader]`. The contents of the `io.Reader` will by default be sent as a multipart form\npart with the file name of "anonymous_file" and content-type of "application/octet-stream".\n\nThe file name and content-type can be customized by implementing `Name() string` or `ContentType()\nstring` on the run-time type of `io.Reader`. Note that `os.File` implements `Name() string`, so a\nfile returned by `os.Open` will be sent with the file name on disk.\n\nWe also provide a helper `SDK_PackageName.FileParam(reader io.Reader, filename string, contentType string)`\nwhich can be used to wrap any `io.Reader` with the appropriate file name and content type.\n\n\n\n### Retries\n\nCertain errors will be automatically retried 2 times by default, with a short exponential backoff.\nWe retry by default all connection errors, 408 Request Timeout, 409 Conflict, 429 Rate Limit,\nand >=500 Internal errors.\n\nYou can use the `WithMaxRetries` option to configure or disable this:\n\n```go\n// Configure the default for all requests:\nclient := lithic.NewClient(\n\toption.WithMaxRetries(0), // default is 2\n)\n\n// Override per-request:\nclient.Cards.List(\n\tcontext.TODO(),\n\tlithic.CardListParams{\n\t\tPageSize: lithic.F(int64(10)),\n\t},\n\toption.WithMaxRetries(5),\n)\n```\n\n\n### Accessing raw response data (e.g. response headers)\n\nYou can access the raw HTTP response data by using the `option.WithResponseInto()` request option. This is useful when\nyou need to examine response headers, status codes, or other details.\n\n```go\n// Create a variable to store the HTTP response\nvar response *http.Response\ncard, err := client.Cards.New(\n\tcontext.TODO(),\n\tlithic.CardNewParams{\n\t\tType: lithic.F(lithic.CardNewParamsTypeSingleUse),\n\t},\n\toption.WithResponseInto(&response),\n)\nif err != nil {\n\t// handle error\n}\nfmt.Printf("%+v\\n", card)\n\nfmt.Printf("Status Code: %d\\n", response.StatusCode)\nfmt.Printf("Headers: %+#v\\n", response.Header)\n```\n\n### Making custom/undocumented requests\n\nThis library is typed for convenient access to the documented API. If you need to access undocumented\nendpoints, params, or response properties, the library can still be used.\n\n#### Undocumented endpoints\n\nTo make requests to undocumented endpoints, you can use `client.Get`, `client.Post`, and other HTTP verbs.\n`RequestOptions` on the client, such as retries, will be respected when making these requests.\n\n```go\nvar (\n // params can be an io.Reader, a []byte, an encoding/json serializable object,\n // or a "…Params" struct defined in this library.\n params map[string]interface{}\n\n // result can be an []byte, *http.Response, a encoding/json deserializable object,\n // or a model defined in this library.\n result *http.Response\n)\nerr := client.Post(context.Background(), "/unspecified", params, &result)\nif err != nil {\n …\n}\n```\n\n#### Undocumented request params\n\nTo make requests using undocumented parameters, you may use either the `SDK_PackageOptionName.WithQuerySet()`\nor the `SDK_PackageOptionName.WithJSONSet()` methods.\n\n```go\nparams := FooNewParams{\n ID: SDK_PackageName.F("id_xxxx"),\n Data: SDK_PackageName.F(FooNewParamsData{\n FirstName: SDK_PackageName.F("John"),\n }),\n}\nclient.Foo.New(context.Background(), params, SDK_PackageOptionName.WithJSONSet("data.last_name", "Doe"))\n```\n\n#### Undocumented response properties\n\nTo access undocumented response properties, you may either access the raw JSON of the response as a string\nwith `result.JSON.RawJSON()`, or get the raw JSON of a particular field on the result with\n`result.JSON.Foo.Raw()`.\n\nAny fields that are not present on the response struct will be saved and can be accessed by `result.JSON.ExtraFields()` which returns the extra fields as a `map[string]Field`.\n\n### Middleware\n\nWe provide `SDK_PackageOptionName.WithMiddleware` which applies the given\nmiddleware to requests.\n\n```go\nfunc Logger(req *http.Request, next SDK_PackageOptionName.MiddlewareNext) (res *http.Response, err error) {\n\t// Before the request\n\tstart := time.Now()\n\tLogReq(req)\n\n\t// Forward the request to the next handler\n\tres, err = next(req)\n\n\t// Handle stuff after the request\n\tend := time.Now()\n\tLogRes(res, err, start - end)\n\n return res, err\n}\n\nclient := SDK_PackageName.SDK_ClientInitializerName(\n\tSDK_PackageOptionName.WithMiddleware(Logger),\n)\n```\n\nWhen multiple middlewares are provided as variadic arguments, the middlewares\nare applied left to right. If `SDK_PackageOptionName.WithMiddleware` is given\nmultiple times, for example first in the client then the method, the\nmiddleware in the client will run first and the middleware given in the method\nwill run next.\n\nYou may also replace the default `http.Client` with\n`SDK_PackageOptionName.WithHTTPClient(client)`. Only one http client is\naccepted (this overwrites any previous client) and receives requests after any\nmiddleware has been applied.\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n2. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/lithic-com/lithic-go/issues) with questions, bugs, or suggestions.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n',
},
{
- language: 'go',
+ language: 'java',
content:
- '# Lithic Go API Library\n\n
\n\nThe Lithic Go library provides convenient access to the [Lithic REST API](https://docs.lithic.com)\nfrom applications written in Go.\n\n\n\n## MCP Server\n\nUse the Lithic MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=lithic-mcp&config=eyJuYW1lIjoibGl0aGljLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2xpdGhpYy5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LWxpdGhpYy1hcGkta2V5IjoiTXkgTGl0aGljIEFQSSBLZXkifX0)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22lithic-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Flithic.stlmcp.com%22%2C%22headers%22%3A%7B%22x-lithic-api-key%22%3A%22My%20Lithic%20API%20Key%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n## Installation\n\n\n\n```go\nimport (\n\t"github.com/lithic-com/lithic-go" // imported as SDK_PackageName\n)\n```\n\n\n\nOr to pin the version:\n\n\n\n```sh\ngo get -u \'github.com/lithic-com/lithic-go@v0.0.1\'\n```\n\n\n\n## Requirements\n\nThis library requires Go 1.22+.\n\n## Usage\n\nThe full API of this library can be found in [api.md](api.md).\n\n```go\npackage main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"), // defaults to os.LookupEnv("LITHIC_API_KEY")\n\t\toption.WithEnvironmentSandbox(), // defaults to option.WithEnvironmentProduction()\n\t)\n\tcard, err := client.Cards.New(context.TODO(), lithic.CardNewParams{\n\t\tType: lithic.F(lithic.CardNewParamsTypeSingleUse),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card.Token)\n}\n\n```\n\n### Request fields\n\nAll request parameters are wrapped in a generic `Field` type,\nwhich we use to distinguish zero values from null or omitted fields.\n\nThis prevents accidentally sending a zero value if you forget a required parameter,\nand enables explicitly sending `null`, `false`, `\'\'`, or `0` on optional parameters.\nAny field not specified is not sent.\n\nTo construct fields with values, use the helpers `String()`, `Int()`, `Float()`, or most commonly, the generic `F[T]()`.\nTo send a null, use `Null[T]()`, and to send a nonconforming value, use `Raw[T](any)`. For example:\n\n```go\nparams := FooParams{\n\tName: SDK_PackageName.F("hello"),\n\n\t// Explicitly send `"description": null`\n\tDescription: SDK_PackageName.Null[string](),\n\n\tPoint: SDK_PackageName.F(SDK_PackageName.Point{\n\t\tX: SDK_PackageName.Int(0),\n\t\tY: SDK_PackageName.Int(1),\n\n\t\t// In cases where the API specifies a given type,\n\t\t// but you want to send something else, use `Raw`:\n\t\tZ: SDK_PackageName.Raw[int64](0.01), // sends a float\n\t}),\n}\n```\n\n### Response objects\n\nAll fields in response structs are value types (not pointers or wrappers).\n\nIf a given field is `null`, not present, or invalid, the corresponding field\nwill simply be its zero value.\n\nAll response structs also include a special `JSON` field, containing more detailed\ninformation about each property, which you can use like so:\n\n```go\nif res.Name == "" {\n\t// true if `"name"` is either not present or explicitly null\n\tres.JSON.Name.IsNull()\n\n\t// true if the `"name"` key was not present in the response JSON at all\n\tres.JSON.Name.IsMissing()\n\n\t// When the API returns data that cannot be coerced to the expected type:\n\tif res.JSON.Name.IsInvalid() {\n\t\traw := res.JSON.Name.Raw()\n\n\t\tlegacyName := struct{\n\t\t\tFirst string `json:"first"`\n\t\t\tLast string `json:"last"`\n\t\t}{}\n\t\tjson.Unmarshal([]byte(raw), &legacyName)\n\t\tname = legacyName.First + " " + legacyName.Last\n\t}\n}\n```\n\nThese `.JSON` structs also include an `Extras` map containing\nany properties in the json response that were not specified\nin the struct. This can be useful for API features not yet\npresent in the SDK.\n\n```go\nbody := res.JSON.ExtraFields["my_unexpected_field"].Raw()\n```\n\n### RequestOptions\n\nThis library uses the functional options pattern. Functions defined in the\n`SDK_PackageOptionName` package return a `RequestOption`, which is a closure that mutates a\n`RequestConfig`. These options can be supplied to the client or at individual\nrequests. For example:\n\n```go\nclient := SDK_PackageName.SDK_ClientInitializerName(\n\t// Adds a header to every request made by the client\n\tSDK_PackageOptionName.WithHeader("X-Some-Header", "custom_header_info"),\n)\n\nclient.Cards.New(context.TODO(), ...,\n\t// Override the header\n\tSDK_PackageOptionName.WithHeader("X-Some-Header", "some_other_custom_header_info"),\n\t// Add an undocumented field to the request body, using sjson syntax\n\tSDK_PackageOptionName.WithJSONSet("some.json.path", map[string]string{"my": "object"}),\n)\n```\n\nSee the [full list of request options](https://pkg.go.dev/github.com/lithic-com/lithic-go/SDK_PackageOptionName).\n\n### Pagination\n\nThis library provides some conveniences for working with paginated list endpoints.\n\nYou can use `.ListAutoPaging()` methods to iterate through items across all pages:\n\n```go\niter := client.Cards.ListAutoPaging(context.TODO(), lithic.CardListParams{})\n// Automatically fetches more pages as needed.\nfor iter.Next() {\n\tnonPCICard := iter.Current()\n\tfmt.Printf("%+v\\n", nonPCICard)\n}\nif err := iter.Err(); err != nil {\n\tpanic(err.Error())\n}\n```\n\nOr you can use simple `.List()` methods to fetch a single page and receive a standard response object\nwith additional helper methods like `.GetNextPage()`, e.g.:\n\n```go\npage, err := client.Cards.List(context.TODO(), lithic.CardListParams{})\nfor page != nil {\n\tfor _, card := range page.Data {\n\t\tfmt.Printf("%+v\\n", card)\n\t}\n\tpage, err = page.GetNextPage()\n}\nif err != nil {\n\tpanic(err.Error())\n}\n```\n\n### Errors\n\nWhen the API returns a non-success status code, we return an error with type\n`*SDK_PackageName.Error`. This contains the `StatusCode`, `*http.Request`, and\n`*http.Response` values of the request, as well as the JSON of the error body\n(much like other response objects in the SDK).\n\nTo handle errors, we recommend that you use the `errors.As` pattern:\n\n```go\n_, err := client.Cards.New(context.TODO(), lithic.CardNewParams{\n\tType: lithic.F(lithic.CardNewParamsTypeMerchantLocked),\n})\nif err != nil {\n\tvar apierr *lithic.Error\n\tif errors.As(err, &apierr) {\n\t\tprintln(string(apierr.DumpRequest(true))) // Prints the serialized HTTP request\n\t\tprintln(string(apierr.DumpResponse(true))) // Prints the serialized HTTP response\n\t\tprintln(apierr.Message) // Invalid parameter(s): type\n\t\tprintln(apierr.DebuggingRequestID) // 94d5e915-xxxx-4cee-a4f5-2xd6ebd279ac\n\t}\n\tpanic(err.Error()) // GET "/v1/cards": 400 Bad Request { ... }\n}\n```\n\nWhen other errors occur, they are returned unwrapped; for example,\nif HTTP transport fails, you might receive `*url.Error` wrapping `*net.OpError`.\n\n### Timeouts\n\nRequests do not time out by default; use context to configure a timeout for a request lifecycle.\n\nNote that if a request is [retried](#retries), the context timeout does not start over.\nTo set a per-retry timeout, use `SDK_PackageOptionName.WithRequestTimeout()`.\n\n```go\n// This sets the timeout for the request, including all the retries.\nctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute)\ndefer cancel()\nclient.Cards.List(\n\tctx,\n\tlithic.CardListParams{\n\t\tPageSize: lithic.F(int64(10)),\n\t},\n\t// This sets the per-retry timeout\n\toption.WithRequestTimeout(20*time.Second),\n)\n```\n\n### File uploads\n\nRequest parameters that correspond to file uploads in multipart requests are typed as\n`param.Field[io.Reader]`. The contents of the `io.Reader` will by default be sent as a multipart form\npart with the file name of "anonymous_file" and content-type of "application/octet-stream".\n\nThe file name and content-type can be customized by implementing `Name() string` or `ContentType()\nstring` on the run-time type of `io.Reader`. Note that `os.File` implements `Name() string`, so a\nfile returned by `os.Open` will be sent with the file name on disk.\n\nWe also provide a helper `SDK_PackageName.FileParam(reader io.Reader, filename string, contentType string)`\nwhich can be used to wrap any `io.Reader` with the appropriate file name and content type.\n\n\n\n### Retries\n\nCertain errors will be automatically retried 2 times by default, with a short exponential backoff.\nWe retry by default all connection errors, 408 Request Timeout, 409 Conflict, 429 Rate Limit,\nand >=500 Internal errors.\n\nYou can use the `WithMaxRetries` option to configure or disable this:\n\n```go\n// Configure the default for all requests:\nclient := lithic.NewClient(\n\toption.WithMaxRetries(0), // default is 2\n)\n\n// Override per-request:\nclient.Cards.List(\n\tcontext.TODO(),\n\tlithic.CardListParams{\n\t\tPageSize: lithic.F(int64(10)),\n\t},\n\toption.WithMaxRetries(5),\n)\n```\n\n\n### Accessing raw response data (e.g. response headers)\n\nYou can access the raw HTTP response data by using the `option.WithResponseInto()` request option. This is useful when\nyou need to examine response headers, status codes, or other details.\n\n```go\n// Create a variable to store the HTTP response\nvar response *http.Response\ncard, err := client.Cards.New(\n\tcontext.TODO(),\n\tlithic.CardNewParams{\n\t\tType: lithic.F(lithic.CardNewParamsTypeSingleUse),\n\t},\n\toption.WithResponseInto(&response),\n)\nif err != nil {\n\t// handle error\n}\nfmt.Printf("%+v\\n", card)\n\nfmt.Printf("Status Code: %d\\n", response.StatusCode)\nfmt.Printf("Headers: %+#v\\n", response.Header)\n```\n\n### Making custom/undocumented requests\n\nThis library is typed for convenient access to the documented API. If you need to access undocumented\nendpoints, params, or response properties, the library can still be used.\n\n#### Undocumented endpoints\n\nTo make requests to undocumented endpoints, you can use `client.Get`, `client.Post`, and other HTTP verbs.\n`RequestOptions` on the client, such as retries, will be respected when making these requests.\n\n```go\nvar (\n // params can be an io.Reader, a []byte, an encoding/json serializable object,\n // or a "…Params" struct defined in this library.\n params map[string]interface{}\n\n // result can be an []byte, *http.Response, a encoding/json deserializable object,\n // or a model defined in this library.\n result *http.Response\n)\nerr := client.Post(context.Background(), "/unspecified", params, &result)\nif err != nil {\n …\n}\n```\n\n#### Undocumented request params\n\nTo make requests using undocumented parameters, you may use either the `SDK_PackageOptionName.WithQuerySet()`\nor the `SDK_PackageOptionName.WithJSONSet()` methods.\n\n```go\nparams := FooNewParams{\n ID: SDK_PackageName.F("id_xxxx"),\n Data: SDK_PackageName.F(FooNewParamsData{\n FirstName: SDK_PackageName.F("John"),\n }),\n}\nclient.Foo.New(context.Background(), params, SDK_PackageOptionName.WithJSONSet("data.last_name", "Doe"))\n```\n\n#### Undocumented response properties\n\nTo access undocumented response properties, you may either access the raw JSON of the response as a string\nwith `result.JSON.RawJSON()`, or get the raw JSON of a particular field on the result with\n`result.JSON.Foo.Raw()`.\n\nAny fields that are not present on the response struct will be saved and can be accessed by `result.JSON.ExtraFields()` which returns the extra fields as a `map[string]Field`.\n\n### Middleware\n\nWe provide `SDK_PackageOptionName.WithMiddleware` which applies the given\nmiddleware to requests.\n\n```go\nfunc Logger(req *http.Request, next SDK_PackageOptionName.MiddlewareNext) (res *http.Response, err error) {\n\t// Before the request\n\tstart := time.Now()\n\tLogReq(req)\n\n\t// Forward the request to the next handler\n\tres, err = next(req)\n\n\t// Handle stuff after the request\n\tend := time.Now()\n\tLogRes(res, err, start - end)\n\n return res, err\n}\n\nclient := SDK_PackageName.SDK_ClientInitializerName(\n\tSDK_PackageOptionName.WithMiddleware(Logger),\n)\n```\n\nWhen multiple middlewares are provided as variadic arguments, the middlewares\nare applied left to right. If `SDK_PackageOptionName.WithMiddleware` is given\nmultiple times, for example first in the client then the method, the\nmiddleware in the client will run first and the middleware given in the method\nwill run next.\n\nYou may also replace the default `http.Client` with\n`SDK_PackageOptionName.WithHTTPClient(client)`. Only one http client is\naccepted (this overwrites any previous client) and receives requests after any\nmiddleware has been applied.\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n2. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/lithic-com/lithic-go/issues) with questions, bugs, or suggestions.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n',
+ '# Lithic Java API Library\n\n\n[](https://central.sonatype.com/artifact/com.lithic.api/lithic-java/0.0.1)\n[](https://javadoc.io/doc/com.lithic.api/lithic-java/0.0.1)\n\n\nThe Lithic Java SDK provides convenient access to the [Lithic REST API](https://docs.lithic.com) from applications written in Java.\n\nThe Lithic Java SDK is similar to the Lithic Kotlin SDK but with minor differences that make it more ergonomic for use in Java, such as `Optional` instead of nullable values, `Stream` instead of `Sequence`, and `CompletableFuture` instead of suspend functions.\n\n\n\n## MCP Server\n\nUse the Lithic MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=lithic-mcp&config=eyJuYW1lIjoibGl0aGljLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2xpdGhpYy5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LWxpdGhpYy1hcGkta2V5IjoiTXkgTGl0aGljIEFQSSBLZXkifX0)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22lithic-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Flithic.stlmcp.com%22%2C%22headers%22%3A%7B%22x-lithic-api-key%22%3A%22My%20Lithic%20API%20Key%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n\n\nThe REST API documentation can be found on [docs.lithic.com](https://docs.lithic.com). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.lithic.api/lithic-java/0.0.1).\n\n\n\n## Installation\n\n\n\n### Gradle\n\n~~~kotlin\nimplementation("com.lithic.api:lithic-java:0.0.1")\n~~~\n\n### Maven\n\n~~~xml\n\n com.lithic.api\n lithic-java\n 0.0.1\n\n~~~\n\n\n\n## Requirements\n\nThis library requires Java 8 or later.\n\n## Usage\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Card;\nimport com.lithic.api.models.CardCreateParams;\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nLithicClient client = LithicOkHttpClient.fromEnv();\n\nCardCreateParams params = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build();\nCard card = client.cards().create(params);\n```\n\n## Client configuration\n\nConfigure the client using system properties or environment variables:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nLithicClient client = LithicOkHttpClient.fromEnv();\n```\n\nOr manually:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\n\nLithicClient client = LithicOkHttpClient.builder()\n .apiKey("My Lithic API Key")\n .build();\n```\n\nOr using a combination of the two approaches:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\n\nLithicClient client = LithicOkHttpClient.builder()\n // Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n // Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\n .fromEnv()\n .apiKey("My Lithic API Key")\n .build();\n```\n\nSee this table for the available options:\n\n| Setter | System property | Environment variable | Required | Default value |\n| --------------- | ---------------------- | ----------------------- | -------- | -------------------------- |\n| `apiKey` | `lithic.apiKey` | `LITHIC_API_KEY` | true | - |\n| `webhookSecret` | `lithic.webhookSecret` | `LITHIC_WEBHOOK_SECRET` | false | - |\n| `baseUrl` | `lithic.baseUrl` | `LITHIC_BASE_URL` | true | `"https://api.lithic.com"` |\n\nSystem properties take precedence over environment variables.\n\n> [!TIP]\n> Don\'t create more than one client in the same application. Each client has a connection pool and\n> thread pools, which are more efficient to share between requests.\n\n### Modifying configuration\n\nTo temporarily use a modified client configuration, while reusing the same connection and thread pools, call `withOptions()` on any client or service:\n\n```java\nimport com.lithic.api.client.LithicClient;\n\nLithicClient clientWithOptions = client.withOptions(optionsBuilder -> {\n optionsBuilder.baseUrl("https://example.com");\n optionsBuilder.maxRetries(42);\n});\n```\n\nThe `withOptions()` method does not affect the original client or service.\n\n## Requests and responses\n\nTo send a request to the Lithic API, build an instance of some `Params` class and pass it to the corresponding client method. When the response is received, it will be deserialized into an instance of a Java class.\n\nFor example, `client.cards().create(...)` should be called with an instance of `CardCreateParams`, and it will return an instance of `Card`.\n\n## Immutability\n\nEach class in the SDK has an associated [builder](https://blogs.oracle.com/javamagazine/post/exploring-joshua-blochs-builder-design-pattern-in-java) or factory method for constructing it.\n\nEach class is [immutable](https://docs.oracle.com/javase/tutorial/essential/concurrency/immutable.html) once constructed. If the class has an associated builder, then it has a `toBuilder()` method, which can be used to convert it back to a builder for making a modified copy.\n\nBecause each class is immutable, builder modification will _never_ affect already built class instances.\n\n## Asynchronous execution\n\nThe default client is synchronous. To switch to asynchronous execution, call the `async()` method:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Card;\nimport com.lithic.api.models.CardCreateParams;\nimport java.util.concurrent.CompletableFuture;\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nLithicClient client = LithicOkHttpClient.fromEnv();\n\nCardCreateParams params = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build();\nCompletableFuture card = client.async().cards().create(params);\n```\n\nOr create an asynchronous client from the beginning:\n\n```java\nimport com.lithic.api.client.LithicClientAsync;\nimport com.lithic.api.client.okhttp.LithicOkHttpClientAsync;\nimport com.lithic.api.models.Card;\nimport com.lithic.api.models.CardCreateParams;\nimport java.util.concurrent.CompletableFuture;\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nLithicClientAsync client = LithicOkHttpClientAsync.fromEnv();\n\nCardCreateParams params = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build();\nCompletableFuture card = client.cards().create(params);\n```\n\nThe asynchronous client supports the same options as the synchronous one, except most methods return `CompletableFuture`s.\n\n\n\n\n\n\n\n## Raw responses\n\nThe SDK defines methods that deserialize responses into instances of Java classes. However, these methods don\'t provide access to the response headers, status code, or the raw response body.\n\nTo access this data, prefix any HTTP method call on a client or service with `withRawResponse()`:\n\n```java\nimport com.lithic.api.core.http.Headers;\nimport com.lithic.api.core.http.HttpResponseFor;\nimport com.lithic.api.models.Card;\nimport com.lithic.api.models.CardCreateParams;\n\nCardCreateParams params = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build();\nHttpResponseFor card = client.cards().withRawResponse().create(params);\n\nint statusCode = card.statusCode();\nHeaders headers = card.headers();\n```\n\nYou can still deserialize the response into an instance of a Java class if needed:\n\n```java\nimport com.lithic.api.models.Card;\n\nCard parsedCard = card.parse();\n```\n\n## Error handling\n\nThe SDK throws custom unchecked exception types:\n\n- [`LithicServiceException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/LithicServiceException.kt): Base class for HTTP errors. See this table for which exception subclass is thrown for each HTTP status code:\n\n | Status | Exception |\n | ------ | -------------------------------------------------- |\n | 400 | [`BadRequestException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/BadRequestException.kt) |\n | 401 | [`UnauthorizedException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/UnauthorizedException.kt) |\n | 403 | [`PermissionDeniedException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/PermissionDeniedException.kt) |\n | 404 | [`NotFoundException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/NotFoundException.kt) |\n | 422 | [`UnprocessableEntityException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/UnprocessableEntityException.kt) |\n | 429 | [`RateLimitException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/RateLimitException.kt) |\n | 5xx | [`InternalServerException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/InternalServerException.kt) |\n | others | [`UnexpectedStatusCodeException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/UnexpectedStatusCodeException.kt) |\n\n- [`LithicIoException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/LithicIoException.kt): I/O networking errors.\n\n- [`LithicRetryableException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/LithicRetryableException.kt): Generic error indicating a failure that could be retried by the client.\n\n- [`LithicInvalidDataException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/LithicInvalidDataException.kt): Failure to interpret successfully parsed data. For example, when accessing a property that\'s supposed to be required, but the API unexpectedly omitted it from the response.\n\n- [`LithicException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/LithicException.kt): Base class for all exceptions. Most errors will result in one of the previously mentioned ones, but completely generic errors may be thrown using the base class.\n\n## Pagination\n\nThe SDK defines methods that return a paginated lists of results. It provides convenient ways to access the results either one page at a time or item-by-item across all pages.\n\n### Auto-pagination\n\nTo iterate through all results across all pages, use the `autoPager()` method, which automatically fetches more pages as needed.\n\nWhen using the synchronous client, the method returns an [`Iterable`](https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html)\n\n```java\nimport com.lithic.api.models.CardListPage;\nimport com.lithic.api.models.NonPciCard;\n\nCardListPage page = client.cards().list();\n\n// Process as an Iterable\nfor (NonPciCard card : page.autoPager()) {\n System.out.println(card);\n}\n\n// Process as a Stream\npage.autoPager()\n .stream()\n .limit(50)\n .forEach(card -> System.out.println(card));\n```\n\nWhen using the asynchronous client, the method returns an [`AsyncStreamResponse`](lithic-java-core/src/main/kotlin/com/lithic/api/core/http/AsyncStreamResponse.kt):\n\n```java\nimport com.lithic.api.core.http.AsyncStreamResponse;\nimport com.lithic.api.models.CardListPageAsync;\nimport com.lithic.api.models.NonPciCard;\nimport java.util.Optional;\nimport java.util.concurrent.CompletableFuture;\n\nCompletableFuture pageFuture = client.async().cards().list();\n\npageFuture.thenRun(page -> page.autoPager().subscribe(card -> {\n System.out.println(card);\n}));\n\n// If you need to handle errors or completion of the stream\npageFuture.thenRun(page -> page.autoPager().subscribe(new AsyncStreamResponse.Handler<>() {\n @Override\n public void onNext(NonPciCard card) {\n System.out.println(card);\n }\n\n @Override\n public void onComplete(Optional error) {\n if (error.isPresent()) {\n System.out.println("Something went wrong!");\n throw new RuntimeException(error.get());\n } else {\n System.out.println("No more!");\n }\n }\n}));\n\n// Or use futures\npageFuture.thenRun(page -> page.autoPager()\n .subscribe(card -> {\n System.out.println(card);\n })\n .onCompleteFuture()\n .whenComplete((unused, error) -> {\n if (error != null) {\n System.out.println("Something went wrong!");\n throw new RuntimeException(error);\n } else {\n System.out.println("No more!");\n }\n }));\n```\n\n### Manual pagination\n\nTo access individual page items and manually request the next page, use the `items()`,\n`hasNextPage()`, and `nextPage()` methods:\n\n```java\nimport com.lithic.api.models.CardListPage;\nimport com.lithic.api.models.NonPciCard;\n\nCardListPage page = client.cards().list();\nwhile (true) {\n for (NonPciCard card : page.items()) {\n System.out.println(card);\n }\n\n if (!page.hasNextPage()) {\n break;\n }\n\n page = page.nextPage();\n}\n```\n\n## Logging\n\nThe SDK uses the standard [OkHttp logging interceptor](https://github.com/square/okhttp/tree/master/okhttp-logging-interceptor).\n\nEnable logging by setting the `LITHIC_LOG` environment variable to `info`:\n\n```sh\nexport LITHIC_LOG=info\n```\n\nOr to `debug` for more verbose logging:\n\n```sh\nexport LITHIC_LOG=debug\n```\n\n## ProGuard and R8\n\nAlthough the SDK uses reflection, it is still usable with [ProGuard](https://github.com/Guardsquare/proguard) and [R8](https://developer.android.com/topic/performance/app-optimization/enable-app-optimization) because `lithic-java-core` is published with a [configuration file](lithic-java-core/src/main/resources/META-INF/proguard/lithic-java-core.pro) containing [keep rules](https://www.guardsquare.com/manual/configuration/usage).\n\nProGuard and R8 should automatically detect and use the published rules, but you can also manually copy the keep rules if necessary.\n\n\n\n\n\n## Jackson\n\nThe SDK depends on [Jackson](https://github.com/FasterXML/jackson) for JSON serialization/deserialization. It is compatible with version 2.13.4 or higher, but depends on version 2.18.2 by default.\n\nThe SDK throws an exception if it detects an incompatible Jackson version at runtime (e.g. if the default version was overridden in your Maven or Gradle config).\n\nIf the SDK threw an exception, but you\'re _certain_ the version is compatible, then disable the version check using the `checkJacksonVersionCompatibility` on [`LithicOkHttpClient`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) or [`LithicOkHttpClientAsync`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt).\n\n> [!CAUTION]\n> We make no guarantee that the SDK works correctly when the Jackson version check is disabled.\n\nAlso note that there are bugs in older Jackson versions that can affect the SDK. We don\'t work around all Jackson bugs ([example](https://github.com/FasterXML/jackson-databind/issues/3240)) and expect users to upgrade Jackson for those instead.\n\n## Network options\n\n### Retries\n\nThe SDK automatically retries 2 times by default, with a short exponential backoff between requests.\n\nOnly the following error types are retried:\n- Connection errors (for example, due to a network connectivity problem)\n- 408 Request Timeout\n- 409 Conflict\n- 429 Rate Limit\n- 5xx Internal\n\nThe API may also explicitly instruct the SDK to retry or not retry a request.\n\nTo set a custom number of retries, configure the client using the `maxRetries` method:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\n\nLithicClient client = LithicOkHttpClient.builder()\n .fromEnv()\n .maxRetries(4)\n .build();\n```\n\n### Timeouts\n\nRequests time out after 1 minute by default.\n\nTo set a custom timeout, configure the method call using the `timeout` method:\n\n```java\nimport com.lithic.api.models.CardListPage;\n\nCardListPage page = client.cards().list(RequestOptions.builder().timeout(Duration.ofSeconds(30)).build());\n```\n\nOr configure the default for all method calls at the client level:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport java.time.Duration;\n\nLithicClient client = LithicOkHttpClient.builder()\n .fromEnv()\n .timeout(Duration.ofSeconds(30))\n .build();\n```\n\n### Proxies\n\nTo route requests through a proxy, configure the client using the `proxy` method:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport java.net.InetSocketAddress;\nimport java.net.Proxy;\n\nLithicClient client = LithicOkHttpClient.builder()\n .fromEnv()\n .proxy(new Proxy(\n Proxy.Type.HTTP, new InetSocketAddress(\n "https://example.com", 8080\n )\n ))\n .build();\n```\n\n### Connection pooling\n\nTo customize the underlying OkHttp connection pool, configure the client using the `maxIdleConnections` and `keepAliveDuration` methods:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport java.time.Duration;\n\nLithicClient client = LithicOkHttpClient.builder()\n .fromEnv()\n // If `maxIdleConnections` is set, then `keepAliveDuration` must be set, and vice versa.\n .maxIdleConnections(10)\n .keepAliveDuration(Duration.ofMinutes(2))\n .build();\n```\n\nIf both options are unset, OkHttp\'s default connection pool settings are used.\n\n### HTTPS\n\n> [!NOTE]\n> Most applications should not call these methods, and instead use the system defaults. The defaults include\n> special optimizations that can be lost if the implementations are modified.\n\nTo configure how HTTPS connections are secured, configure the client using the `sslSocketFactory`, `trustManager`, and `hostnameVerifier` methods:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\n\nLithicClient client = LithicOkHttpClient.builder()\n .fromEnv()\n // If `sslSocketFactory` is set, then `trustManager` must be set, and vice versa.\n .sslSocketFactory(yourSSLSocketFactory)\n .trustManager(yourTrustManager)\n .hostnameVerifier(yourHostnameVerifier)\n .build();\n```\n\n### Environments\n\nThe SDK sends requests to the production by default. To send requests to a different environment, configure the client like so:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\n\nLithicClient client = LithicOkHttpClient.builder()\n .fromEnv()\n .sandbox()\n .build();\n```\n\n### Custom HTTP client\n\nThe SDK consists of three artifacts:\n- `lithic-java-core`\n - Contains core SDK logic\n - Does not depend on [OkHttp](https://square.github.io/okhttp)\n - Exposes [`LithicClient`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClient.kt), [`LithicClientAsync`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientAsync.kt), [`LithicClientImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt), and [`LithicClientAsyncImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), all of which can work with any HTTP client\n- `lithic-java-client-okhttp`\n - Depends on [OkHttp](https://square.github.io/okhttp)\n - Exposes [`LithicOkHttpClient`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) and [`LithicOkHttpClientAsync`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt), which provide a way to construct [`LithicClientImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt) and [`LithicClientAsyncImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), respectively, using OkHttp\n- `lithic-java`\n - Depends on and exposes the APIs of both `lithic-java-core` and `lithic-java-client-okhttp`\n - Does not have its own logic\n\nThis structure allows replacing the SDK\'s default HTTP client without pulling in unnecessary dependencies.\n\n#### Customized [`OkHttpClient`](https://square.github.io/okhttp/3.x/okhttp/okhttp3/OkHttpClient.html)\n\n> [!TIP]\n> Try the available [network options](#network-options) before replacing the default client.\n\nTo use a customized `OkHttpClient`:\n\n1. Replace your [`lithic-java` dependency](#installation) with `lithic-java-core`\n2. Copy `lithic-java-client-okhttp`\'s [`OkHttpClient`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/OkHttpClient.kt) class into your code and customize it\n3. Construct [`LithicClientImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt) or [`LithicClientAsyncImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), similarly to [`LithicOkHttpClient`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) or [`LithicOkHttpClientAsync`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt), using your customized client\n\n### Completely custom HTTP client\n\nTo use a completely custom HTTP client:\n\n1. Replace your [`lithic-java` dependency](#installation) with `lithic-java-core`\n2. Write a class that implements the [`HttpClient`](lithic-java-core/src/main/kotlin/com/lithic/api/core/http/HttpClient.kt) interface\n3. Construct [`LithicClientImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt) or [`LithicClientAsyncImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), similarly to [`LithicOkHttpClient`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) or [`LithicOkHttpClientAsync`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt), using your new client class\n\n## Undocumented API functionality\n\nThe SDK is typed for convenient usage of the documented API. However, it also supports working with undocumented or not yet supported parts of the API.\n\n### Parameters\n\nTo set undocumented parameters, call the `putAdditionalHeader`, `putAdditionalQueryParam`, or `putAdditionalBodyProperty` methods on any `Params` class:\n\n```java\nimport com.lithic.api.core.JsonValue;\nimport com.lithic.api.models.CardCreateParams;\n\nCardCreateParams params = CardCreateParams.builder()\n .putAdditionalHeader("Secret-Header", "42")\n .putAdditionalQueryParam("secret_query_param", "42")\n .putAdditionalBodyProperty("secretProperty", JsonValue.from("42"))\n .build();\n```\n\nThese can be accessed on the built object later using the `_additionalHeaders()`, `_additionalQueryParams()`, and `_additionalBodyProperties()` methods.\n\nTo set undocumented parameters on _nested_ headers, query params, or body classes, call the `putAdditionalProperty` method on the nested class:\n\n```java\nimport com.lithic.api.core.JsonValue;\nimport com.lithic.api.models.CardCreateParams;\nimport com.lithic.api.models.ShippingAddress;\n\nCardCreateParams params = CardCreateParams.builder()\n .shippingAddress(ShippingAddress.builder()\n .putAdditionalProperty("secretProperty", JsonValue.from("42"))\n .build())\n .build();\n```\n\nThese properties can be accessed on the nested built object later using the `_additionalProperties()` method.\n\nTo set a documented parameter or property to an undocumented or not yet supported _value_, pass a [`JsonValue`](lithic-java-core/src/main/kotlin/com/lithic/api/core/Values.kt) object to its setter:\n\n```java\nimport com.lithic.api.core.JsonValue;\nimport com.lithic.api.models.CardCreateParams;\n\nCardCreateParams params = CardCreateParams.builder()\n .type(JsonValue.from(42))\n .build();\n```\n\nThe most straightforward way to create a [`JsonValue`](lithic-java-core/src/main/kotlin/com/lithic/api/core/Values.kt) is using its `from(...)` method:\n\n```java\nimport com.lithic.api.core.JsonValue;\nimport java.util.List;\nimport java.util.Map;\n\n// Create primitive JSON values\nJsonValue nullValue = JsonValue.from(null);\nJsonValue booleanValue = JsonValue.from(true);\nJsonValue numberValue = JsonValue.from(42);\nJsonValue stringValue = JsonValue.from("Hello World!");\n\n// Create a JSON array value equivalent to `["Hello", "World"]`\nJsonValue arrayValue = JsonValue.from(List.of(\n "Hello", "World"\n));\n\n// Create a JSON object value equivalent to `{ "a": 1, "b": 2 }`\nJsonValue objectValue = JsonValue.from(Map.of(\n "a", 1,\n "b", 2\n));\n\n// Create an arbitrarily nested JSON equivalent to:\n// {\n// "a": [1, 2],\n// "b": [3, 4]\n// }\nJsonValue complexValue = JsonValue.from(Map.of(\n "a", List.of(\n 1, 2\n ),\n "b", List.of(\n 3, 4\n )\n));\n```\n\nNormally a `Builder` class\'s `build` method will throw [`IllegalStateException`](https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html) if any required parameter or property is unset.\n\nTo forcibly omit a required parameter or property, pass [`JsonMissing`](lithic-java-core/src/main/kotlin/com/lithic/api/core/Values.kt):\n\n```java\nimport com.lithic.api.core.JsonMissing;\nimport com.lithic.api.models.CardCreateParams;\n\nCardCreateParams params = CardCreateParams.builder()\n .type(JsonMissing.of())\n .build();\n```\n\n### Response properties\n\nTo access undocumented response properties, call the `_additionalProperties()` method:\n\n```java\nimport com.lithic.api.core.JsonValue;\nimport java.util.Map;\n\nMap additionalProperties = client.cards().create(params)._additionalProperties();\nJsonValue secretPropertyValue = additionalProperties.get("secretProperty");\n\nString result = secretPropertyValue.accept(new JsonValue.Visitor<>() {\n @Override\n public String visitNull() {\n return "It\'s null!";\n }\n\n @Override\n public String visitBoolean(boolean value) {\n return "It\'s a boolean!";\n }\n\n @Override\n public String visitNumber(Number value) {\n return "It\'s a number!";\n }\n\n // Other methods include `visitMissing`, `visitString`, `visitArray`, and `visitObject`\n // The default implementation of each unimplemented method delegates to `visitDefault`, which throws by default, but can also be overridden\n});\n```\n\nTo access a property\'s raw JSON value, which may be undocumented, call its `_` prefixed method:\n\n```java\nimport com.lithic.api.core.JsonField;\nimport com.lithic.api.models.CardCreateParams;\nimport java.util.Optional;\n\nJsonField type = client.cards().create(params)._type();\n\nif (type.isMissing()) {\n // The property is absent from the JSON response\n} else if (type.isNull()) {\n // The property was set to literal null\n} else {\n // Check if value was provided as a string\n // Other methods include `asNumber()`, `asBoolean()`, etc.\n Optional jsonString = type.asString();\n\n // Try to deserialize into a custom type\n MyClass myObject = type.asUnknown().orElseThrow().convert(MyClass.class);\n}\n```\n\n### Response validation\n\nIn rare cases, the API may return a response that doesn\'t match the expected type. For example, the SDK may expect a property to contain a `String`, but the API could return something else.\n\nBy default, the SDK will not throw an exception in this case. It will throw [`LithicInvalidDataException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/LithicInvalidDataException.kt) only if you directly access the property.\n\nIf you would prefer to check that the response is completely well-typed upfront, then either call `validate()`:\n\n```java\nimport com.lithic.api.models.Card;\n\nCard card = client.cards().create(params).validate();\n```\n\nOr configure the method call to validate the response using the `responseValidation` method:\n\n```java\nimport com.lithic.api.models.Card;\n\nCard card = client.cards().create(\n params, RequestOptions.builder().responseValidation(true).build()\n);\n```\n\nOr configure the default for all method calls at the client level:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\n\nLithicClient client = LithicOkHttpClient.builder()\n .fromEnv()\n .responseValidation(true)\n .build();\n```\n\n## FAQ\n\n### Why don\'t you use plain `enum` classes?\n\nJava `enum` classes are not trivially [forwards compatible](https://www.stainless.com/blog/making-java-enums-forwards-compatible). Using them in the SDK could cause runtime exceptions if the API is updated to respond with a new enum value.\n\n### Why do you represent fields using `JsonField` instead of just plain `T`?\n\nUsing `JsonField` enables a few features:\n\n- Allowing usage of [undocumented API functionality](#undocumented-api-functionality)\n- Lazily [validating the API response against the expected shape](#response-validation)\n- Representing absent vs explicitly null values\n\n### Why don\'t you use [`data` classes](https://kotlinlang.org/docs/data-classes.html)?\n\nIt is not [backwards compatible to add new fields to a data class](https://kotlinlang.org/docs/api-guidelines-backward-compatibility.html#avoid-using-data-classes-in-your-api) and we don\'t want to introduce a breaking change every time we add a field to a class.\n\n### Why don\'t you use checked exceptions?\n\nChecked exceptions are widely considered a mistake in the Java programming language. In fact, they were omitted from Kotlin for this reason.\n\nChecked exceptions:\n\n- Are verbose to handle\n- Encourage error handling at the wrong level of abstraction, where nothing can be done about the error\n- Are tedious to propagate due to the [function coloring problem](https://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function)\n- Don\'t play well with lambdas (also due to the function coloring problem)\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n2. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/lithic-com/lithic-java/issues) with questions, bugs, or suggestions.\n',
},
{
- language: 'terraform',
+ language: 'kotlin',
content:
- '# Lithic Terraform Provider\n\nThe [Lithic Terraform provider](https://registry.terraform.io/providers/stainless-sdks/lithic/latest/docs) provides convenient access to\nthe [Lithic REST API](https://docs.lithic.com) from Terraform.\n\n\n\n## Requirements\n\nThis provider requires Terraform CLI 1.0 or later. You can [install it for your system](https://developer.hashicorp.com/terraform/install)\non Hashicorp\'s website.\n\n## Usage\n\nAdd the following to your `main.tf` file:\n\n\n\n```hcl\n# Declare the provider and version\nterraform {\n required_providers {\n SDK_ProviderTypeName = {\n source = "stainless-sdks/lithic"\n version = "~> 0.0.1"\n }\n }\n}\n\n# Initialize the provider\nprovider "lithic" {\n api_key = "My Lithic API Key" # or set LITHIC_API_KEY env variable\n webhook_secret = "My Webhook Secret" # or set LITHIC_WEBHOOK_SECRET env variable\n}\n\n# Configure a resource\nresource "lithic_event_subscription" "example_event_subscription" {\n url = "https://example.com"\n description = "description"\n disabled = true\n event_types = ["account_holder_document.updated"]\n}\n```\n\n\n\nInitialize your project by running `terraform init` in the directory.\n\nAdditional examples can be found in the [./examples](./examples) folder within this repository, and you can\nrefer to the full documentation on [the Terraform Registry](https://registry.terraform.io/providers/stainless-sdks/lithic/latest/docs).\n\n### Provider Options\nWhen you initialize the provider, the following options are supported. It is recommended to use environment variables for sensitive values like access tokens.\nIf an environment variable is provided, then the option does not need to be set in the terraform source.\n\n| Property | Environment variable | Required | Default value |\n| -------------- | ----------------------- | -------- | ------------- |\n| api_key | `LITHIC_API_KEY` | true | — |\n| webhook_secret | `LITHIC_WEBHOOK_SECRET` | false | — |\n\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n2. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/stainless-sdks/lithic-terraform/issues) with questions, bugs, or suggestions.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n',
+ '# Lithic Kotlin API Library\n\n\n[](https://central.sonatype.com/artifact/com.lithic.api/lithic-kotlin/0.0.1)\n[](https://javadoc.io/doc/com.lithic.api/lithic-kotlin/0.0.1)\n\n\nThe Lithic Kotlin SDK provides convenient access to the [Lithic REST API](https://docs.lithic.com) from applications written in Kotlin.\n\nThe Lithic Kotlin SDK is similar to the Lithic Java SDK but with minor differences that make it more ergonomic for use in Kotlin, such as nullable values instead of `Optional`, `Sequence` instead of `Stream`, and suspend functions instead of `CompletableFuture`.\n\n\n\n## MCP Server\n\nUse the Lithic MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=lithic-mcp&config=eyJuYW1lIjoibGl0aGljLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2xpdGhpYy5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LWxpdGhpYy1hcGkta2V5IjoiTXkgTGl0aGljIEFQSSBLZXkifX0)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22lithic-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Flithic.stlmcp.com%22%2C%22headers%22%3A%7B%22x-lithic-api-key%22%3A%22My%20Lithic%20API%20Key%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n\n\nThe REST API documentation can be found on [docs.lithic.com](https://docs.lithic.com). KDocs are available on [javadoc.io](https://javadoc.io/doc/com.lithic.api/lithic-kotlin/0.0.1).\n\n\n\n## Installation\n\n\n\n### Gradle\n\n~~~kotlin\nimplementation("com.lithic.api:lithic-kotlin:0.0.1")\n~~~\n\n### Maven\n\n~~~xml\n\n com.lithic.api\n lithic-kotlin\n 0.0.1\n\n~~~\n\n\n\n## Requirements\n\nThis library requires Java 8 or later.\n\n## Usage\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardCreateParams\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nval client: LithicClient = LithicOkHttpClient.fromEnv()\n\nval params: CardCreateParams = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build()\nval card: Card = client.cards().create(params)\n```\n\n## Client configuration\n\nConfigure the client using system properties or environment variables:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nval client: LithicClient = LithicOkHttpClient.fromEnv()\n```\n\nOr manually:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .apiKey("My Lithic API Key")\n .build()\n```\n\nOr using a combination of the two approaches:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\n\nval client: LithicClient = LithicOkHttpClient.builder()\n // Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n // Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\n .fromEnv()\n .apiKey("My Lithic API Key")\n .build()\n```\n\nSee this table for the available options:\n\n| Setter | System property | Environment variable | Required | Default value |\n| --------------- | ---------------------- | ----------------------- | -------- | -------------------------- |\n| `apiKey` | `lithic.apiKey` | `LITHIC_API_KEY` | true | - |\n| `webhookSecret` | `lithic.webhookSecret` | `LITHIC_WEBHOOK_SECRET` | false | - |\n| `baseUrl` | `lithic.baseUrl` | `LITHIC_BASE_URL` | true | `"https://api.lithic.com"` |\n\nSystem properties take precedence over environment variables.\n\n> [!TIP]\n> Don\'t create more than one client in the same application. Each client has a connection pool and\n> thread pools, which are more efficient to share between requests.\n\n### Modifying configuration\n\nTo temporarily use a modified client configuration, while reusing the same connection and thread pools, call `withOptions()` on any client or service:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\n\nval clientWithOptions: LithicClient = client.withOptions {\n it.baseUrl("https://example.com")\n it.maxRetries(42)\n}\n```\n\nThe `withOptions()` method does not affect the original client or service.\n\n## Requests and responses\n\nTo send a request to the Lithic API, build an instance of some `Params` class and pass it to the corresponding client method. When the response is received, it will be deserialized into an instance of a Kotlin class.\n\nFor example, `client.cards().create(...)` should be called with an instance of `CardCreateParams`, and it will return an instance of `Card`.\n\n## Immutability\n\nEach class in the SDK has an associated [builder](https://blogs.oracle.com/javamagazine/post/exploring-joshua-blochs-builder-design-pattern-in-java) or factory method for constructing it.\n\nEach class is [immutable](https://docs.oracle.com/javase/tutorial/essential/concurrency/immutable.html) once constructed. If the class has an associated builder, then it has a `toBuilder()` method, which can be used to convert it back to a builder for making a modified copy.\n\nBecause each class is immutable, builder modification will _never_ affect already built class instances.\n\n## Asynchronous execution\n\nThe default client is synchronous. To switch to asynchronous execution, call the `async()` method:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardCreateParams\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nval client: LithicClient = LithicOkHttpClient.fromEnv()\n\nval params: CardCreateParams = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build()\nval card: Card = client.async().cards().create(params)\n```\n\nOr create an asynchronous client from the beginning:\n\n```kotlin\nimport com.lithic.api.client.LithicClientAsync\nimport com.lithic.api.client.okhttp.LithicOkHttpClientAsync\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardCreateParams\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nval client: LithicClientAsync = LithicOkHttpClientAsync.fromEnv()\n\nval params: CardCreateParams = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build()\nval card: Card = client.cards().create(params)\n```\n\nThe asynchronous client supports the same options as the synchronous one, except most methods are [suspending](https://kotlinlang.org/docs/coroutines-guide.html).\n\n\n\n\n\n\n\n## Raw responses\n\nThe SDK defines methods that deserialize responses into instances of Kotlin classes. However, these methods don\'t provide access to the response headers, status code, or the raw response body.\n\nTo access this data, prefix any HTTP method call on a client or service with `withRawResponse()`:\n\n```kotlin\nimport com.lithic.api.core.http.Headers\nimport com.lithic.api.core.http.HttpResponseFor\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardCreateParams\n\nval params: CardCreateParams = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build()\nval card: HttpResponseFor = client.cards().withRawResponse().create(params)\n\nval statusCode: Int = card.statusCode()\nval headers: Headers = card.headers()\n```\n\nYou can still deserialize the response into an instance of a Kotlin class if needed:\n\n```kotlin\nimport com.lithic.api.models.Card\n\nval parsedCard: Card = card.parse()\n```\n\n## Error handling\n\nThe SDK throws custom unchecked exception types:\n\n- [`LithicServiceException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/LithicServiceException.kt): Base class for HTTP errors. See this table for which exception subclass is thrown for each HTTP status code:\n\n | Status | Exception |\n | ------ | -------------------------------------------------- |\n | 400 | [`BadRequestException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/BadRequestException.kt) |\n | 401 | [`UnauthorizedException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/UnauthorizedException.kt) |\n | 403 | [`PermissionDeniedException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/PermissionDeniedException.kt) |\n | 404 | [`NotFoundException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/NotFoundException.kt) |\n | 422 | [`UnprocessableEntityException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/UnprocessableEntityException.kt) |\n | 429 | [`RateLimitException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/RateLimitException.kt) |\n | 5xx | [`InternalServerException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/InternalServerException.kt) |\n | others | [`UnexpectedStatusCodeException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/UnexpectedStatusCodeException.kt) |\n\n- [`LithicIoException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/LithicIoException.kt): I/O networking errors.\n\n- [`LithicRetryableException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/LithicRetryableException.kt): Generic error indicating a failure that could be retried by the client.\n\n- [`LithicInvalidDataException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/LithicInvalidDataException.kt): Failure to interpret successfully parsed data. For example, when accessing a property that\'s supposed to be required, but the API unexpectedly omitted it from the response.\n\n- [`LithicException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/LithicException.kt): Base class for all exceptions. Most errors will result in one of the previously mentioned ones, but completely generic errors may be thrown using the base class.\n\n## Pagination\n\nThe SDK defines methods that return a paginated lists of results. It provides convenient ways to access the results either one page at a time or item-by-item across all pages.\n\n### Auto-pagination\n\nTo iterate through all results across all pages, use the `autoPager()` method, which automatically fetches more pages as needed.\n\nWhen using the synchronous client, the method returns a [`Sequence`](https://kotlinlang.org/docs/sequences.html)\n\n```kotlin\nimport com.lithic.api.models.CardListPage\n\nval page: CardListPage = client.cards().list()\npage.autoPager()\n .take(50)\n .forEach { card -> println(card) }\n```\n\nWhen using the asynchronous client, the method returns a [`Flow`](https://kotlinlang.org/docs/flow.html):\n\n```kotlin\nimport com.lithic.api.models.CardListPageAsync\n\nval page: CardListPageAsync = client.async().cards().list()\npage.autoPager()\n .take(50)\n .forEach { card -> println(card) }\n```\n\n### Manual pagination\n\nTo access individual page items and manually request the next page, use the `items()`,\n`hasNextPage()`, and `nextPage()` methods:\n\n```kotlin\nimport com.lithic.api.models.CardListPage\nimport com.lithic.api.models.NonPciCard\n\nval page: CardListPage = client.cards().list()\nwhile (true) {\n for (card in page.items()) {\n println(card)\n }\n\n if (!page.hasNextPage()) {\n break\n }\n\n page = page.nextPage()\n}\n```\n\n## Logging\n\nThe SDK uses the standard [OkHttp logging interceptor](https://github.com/square/okhttp/tree/master/okhttp-logging-interceptor).\n\nEnable logging by setting the `LITHIC_LOG` environment variable to `info`:\n\n```sh\nexport LITHIC_LOG=info\n```\n\nOr to `debug` for more verbose logging:\n\n```sh\nexport LITHIC_LOG=debug\n```\n\n## ProGuard and R8\n\nAlthough the SDK uses reflection, it is still usable with [ProGuard](https://github.com/Guardsquare/proguard) and [R8](https://developer.android.com/topic/performance/app-optimization/enable-app-optimization) because `lithic-kotlin-core` is published with a [configuration file](lithic-kotlin-core/src/main/resources/META-INF/proguard/lithic-kotlin-core.pro) containing [keep rules](https://www.guardsquare.com/manual/configuration/usage).\n\nProGuard and R8 should automatically detect and use the published rules, but you can also manually copy the keep rules if necessary.\n\n\n\n\n\n## Jackson\n\nThe SDK depends on [Jackson](https://github.com/FasterXML/jackson) for JSON serialization/deserialization. It is compatible with version 2.13.4 or higher, but depends on version 2.18.2 by default.\n\nThe SDK throws an exception if it detects an incompatible Jackson version at runtime (e.g. if the default version was overridden in your Maven or Gradle config).\n\nIf the SDK threw an exception, but you\'re _certain_ the version is compatible, then disable the version check using the `checkJacksonVersionCompatibility` on [`LithicOkHttpClient`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) or [`LithicOkHttpClientAsync`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt).\n\n> [!CAUTION]\n> We make no guarantee that the SDK works correctly when the Jackson version check is disabled.\n\nAlso note that there are bugs in older Jackson versions that can affect the SDK. We don\'t work around all Jackson bugs ([example](https://github.com/FasterXML/jackson-databind/issues/3240)) and expect users to upgrade Jackson for those instead.\n\n## Network options\n\n### Retries\n\nThe SDK automatically retries 2 times by default, with a short exponential backoff between requests.\n\nOnly the following error types are retried:\n- Connection errors (for example, due to a network connectivity problem)\n- 408 Request Timeout\n- 409 Conflict\n- 429 Rate Limit\n- 5xx Internal\n\nThe API may also explicitly instruct the SDK to retry or not retry a request.\n\nTo set a custom number of retries, configure the client using the `maxRetries` method:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .fromEnv()\n .maxRetries(4)\n .build()\n```\n\n### Timeouts\n\nRequests time out after 1 minute by default.\n\nTo set a custom timeout, configure the method call using the `timeout` method:\n\n```kotlin\nimport com.lithic.api.models.CardListPage\n\nval page: CardListPage = client.cards().list(RequestOptions.builder().timeout(Duration.ofSeconds(30)).build())\n```\n\nOr configure the default for all method calls at the client level:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport java.time.Duration\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .fromEnv()\n .timeout(Duration.ofSeconds(30))\n .build()\n```\n\n### Proxies\n\nTo route requests through a proxy, configure the client using the `proxy` method:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport java.net.InetSocketAddress\nimport java.net.Proxy\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .fromEnv()\n .proxy(Proxy(\n Proxy.Type.HTTP, InetSocketAddress(\n "https://example.com", 8080\n )\n ))\n .build()\n```\n\n### Connection pooling\n\nTo customize the underlying OkHttp connection pool, configure the client using the `maxIdleConnections` and `keepAliveDuration` methods:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport java.time.Duration\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .fromEnv()\n // If `maxIdleConnections` is set, then `keepAliveDuration` must be set, and vice versa.\n .maxIdleConnections(10)\n .keepAliveDuration(Duration.ofMinutes(2))\n .build()\n```\n\nIf both options are unset, OkHttp\'s default connection pool settings are used.\n\n### HTTPS\n\n> [!NOTE]\n> Most applications should not call these methods, and instead use the system defaults. The defaults include\n> special optimizations that can be lost if the implementations are modified.\n\nTo configure how HTTPS connections are secured, configure the client using the `sslSocketFactory`, `trustManager`, and `hostnameVerifier` methods:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .fromEnv()\n // If `sslSocketFactory` is set, then `trustManager` must be set, and vice versa.\n .sslSocketFactory(yourSSLSocketFactory)\n .trustManager(yourTrustManager)\n .hostnameVerifier(yourHostnameVerifier)\n .build()\n```\n\n### Environments\n\nThe SDK sends requests to the production by default. To send requests to a different environment, configure the client like so:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .fromEnv()\n .sandbox()\n .build()\n```\n\n### Custom HTTP client\n\nThe SDK consists of three artifacts:\n- `lithic-kotlin-core`\n - Contains core SDK logic\n - Does not depend on [OkHttp](https://square.github.io/okhttp)\n - Exposes [`LithicClient`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClient.kt), [`LithicClientAsync`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientAsync.kt), [`LithicClientImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt), and [`LithicClientAsyncImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), all of which can work with any HTTP client\n- `lithic-kotlin-client-okhttp`\n - Depends on [OkHttp](https://square.github.io/okhttp)\n - Exposes [`LithicOkHttpClient`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) and [`LithicOkHttpClientAsync`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt), which provide a way to construct [`LithicClientImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt) and [`LithicClientAsyncImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), respectively, using OkHttp\n- `lithic-kotlin`\n - Depends on and exposes the APIs of both `lithic-kotlin-core` and `lithic-kotlin-client-okhttp`\n - Does not have its own logic\n\nThis structure allows replacing the SDK\'s default HTTP client without pulling in unnecessary dependencies.\n\n#### Customized [`OkHttpClient`](https://square.github.io/okhttp/3.x/okhttp/okhttp3/OkHttpClient.html)\n\n> [!TIP]\n> Try the available [network options](#network-options) before replacing the default client.\n\nTo use a customized `OkHttpClient`:\n\n1. Replace your [`lithic-kotlin` dependency](#installation) with `lithic-kotlin-core`\n2. Copy `lithic-kotlin-client-okhttp`\'s [`OkHttpClient`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/OkHttpClient.kt) class into your code and customize it\n3. Construct [`LithicClientImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt) or [`LithicClientAsyncImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), similarly to [`LithicOkHttpClient`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) or [`LithicOkHttpClientAsync`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt), using your customized client\n\n### Completely custom HTTP client\n\nTo use a completely custom HTTP client:\n\n1. Replace your [`lithic-kotlin` dependency](#installation) with `lithic-kotlin-core`\n2. Write a class that implements the [`HttpClient`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/core/http/HttpClient.kt) interface\n3. Construct [`LithicClientImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt) or [`LithicClientAsyncImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), similarly to [`LithicOkHttpClient`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) or [`LithicOkHttpClientAsync`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt), using your new client class\n\n## Undocumented API functionality\n\nThe SDK is typed for convenient usage of the documented API. However, it also supports working with undocumented or not yet supported parts of the API.\n\n### Parameters\n\nTo set undocumented parameters, call the `putAdditionalHeader`, `putAdditionalQueryParam`, or `putAdditionalBodyProperty` methods on any `Params` class:\n\n```kotlin\nimport com.lithic.api.core.JsonValue\nimport com.lithic.api.models.CardCreateParams\n\nval params: CardCreateParams = CardCreateParams.builder()\n .putAdditionalHeader("Secret-Header", "42")\n .putAdditionalQueryParam("secret_query_param", "42")\n .putAdditionalBodyProperty("secretProperty", JsonValue.from("42"))\n .build()\n```\n\nThese can be accessed on the built object later using the `_additionalHeaders()`, `_additionalQueryParams()`, and `_additionalBodyProperties()` methods.\n\nTo set undocumented parameters on _nested_ headers, query params, or body classes, call the `putAdditionalProperty` method on the nested class:\n\n```kotlin\nimport com.lithic.api.core.JsonValue\nimport com.lithic.api.models.CardCreateParams\nimport com.lithic.api.models.ShippingAddress\n\nval params: CardCreateParams = CardCreateParams.builder()\n .shippingAddress(ShippingAddress.builder()\n .putAdditionalProperty("secretProperty", JsonValue.from("42"))\n .build())\n .build()\n```\n\nThese properties can be accessed on the nested built object later using the `_additionalProperties()` method.\n\nTo set a documented parameter or property to an undocumented or not yet supported _value_, pass a [`JsonValue`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/core/Values.kt) object to its setter:\n\n```kotlin\nimport com.lithic.api.core.JsonValue\nimport com.lithic.api.models.CardCreateParams\n\nval params: CardCreateParams = CardCreateParams.builder()\n .type(JsonValue.from(42))\n .build()\n```\n\nThe most straightforward way to create a [`JsonValue`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/core/Values.kt) is using its `from(...)` method:\n\n```kotlin\nimport com.lithic.api.core.JsonValue\n\n// Create primitive JSON values\nval nullValue: JsonValue = JsonValue.from(null)\nval booleanValue: JsonValue = JsonValue.from(true)\nval numberValue: JsonValue = JsonValue.from(42)\nval stringValue: JsonValue = JsonValue.from("Hello World!")\n\n// Create a JSON array value equivalent to `["Hello", "World"]`\nval arrayValue: JsonValue = JsonValue.from(listOf(\n "Hello", "World"\n))\n\n// Create a JSON object value equivalent to `{ "a": 1, "b": 2 }`\nval objectValue: JsonValue = JsonValue.from(mapOf(\n "a" to 1, "b" to 2\n))\n\n// Create an arbitrarily nested JSON equivalent to:\n// {\n// "a": [1, 2],\n// "b": [3, 4]\n// }\nval complexValue: JsonValue = JsonValue.from(mapOf(\n "a" to listOf(\n 1, 2\n ), "b" to listOf(\n 3, 4\n )\n))\n```\n\nNormally a `Builder` class\'s `build` method will throw [`IllegalStateException`](https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html) if any required parameter or property is unset.\n\nTo forcibly omit a required parameter or property, pass [`JsonMissing`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/core/Values.kt):\n\n```kotlin\nimport com.lithic.api.core.JsonMissing\nimport com.lithic.api.models.CardCreateParams\n\nval params: CardCreateParams = CardCreateParams.builder()\n .type(JsonMissing.of())\n .build()\n```\n\n### Response properties\n\nTo access undocumented response properties, call the `_additionalProperties()` method:\n\n```kotlin\nimport com.lithic.api.core.JsonBoolean\nimport com.lithic.api.core.JsonNull\nimport com.lithic.api.core.JsonNumber\nimport com.lithic.api.core.JsonValue\n\nval additionalProperties: Map = client.cards().create(params)._additionalProperties()\nval secretPropertyValue: JsonValue = additionalProperties.get("secretProperty")\n\nval result = when (secretPropertyValue) {\n is JsonNull -> "It\'s null!"\n is JsonBoolean -> "It\'s a boolean!"\n is JsonNumber -> "It\'s a number!"\n // Other types include `JsonMissing`, `JsonString`, `JsonArray`, and `JsonObject`\n else -> "It\'s something else!"\n}\n```\n\nTo access a property\'s raw JSON value, which may be undocumented, call its `_` prefixed method:\n\n```kotlin\nimport com.lithic.api.core.JsonField\nimport com.lithic.api.models.CardCreateParams\n\nval type: JsonField = client.cards().create(params)._type()\n\nif (type.isMissing()) {\n // The property is absent from the JSON response\n} else if (type.isNull()) {\n // The property was set to literal null\n} else {\n // Check if value was provided as a string\n // Other methods include `asNumber()`, `asBoolean()`, etc.\n val jsonString: String? = type.asString();\n\n // Try to deserialize into a custom type\n val myObject: MyClass = type.asUnknown()!!.convert(MyClass::class.java)\n}\n```\n\n### Response validation\n\nIn rare cases, the API may return a response that doesn\'t match the expected type. For example, the SDK may expect a property to contain a `String`, but the API could return something else.\n\nBy default, the SDK will not throw an exception in this case. It will throw [`LithicInvalidDataException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/LithicInvalidDataException.kt) only if you directly access the property.\n\nIf you would prefer to check that the response is completely well-typed upfront, then either call `validate()`:\n\n```kotlin\nimport com.lithic.api.models.Card\n\nval card: Card = client.cards().create(params).validate()\n```\n\nOr configure the method call to validate the response using the `responseValidation` method:\n\n```kotlin\nimport com.lithic.api.models.Card\n\nval card: Card = client.cards().create(\n params, RequestOptions.builder().responseValidation(true).build()\n)\n```\n\nOr configure the default for all method calls at the client level:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .fromEnv()\n .responseValidation(true)\n .build()\n```\n\n## FAQ\n\n### Why don\'t you use plain `enum` classes?\n\nKotlin `enum` classes are not trivially [forwards compatible](https://www.stainless.com/blog/making-java-enums-forwards-compatible). Using them in the SDK could cause runtime exceptions if the API is updated to respond with a new enum value.\n\n### Why do you represent fields using `JsonField` instead of just plain `T`?\n\nUsing `JsonField` enables a few features:\n\n- Allowing usage of [undocumented API functionality](#undocumented-api-functionality)\n- Lazily [validating the API response against the expected shape](#response-validation)\n- Representing absent vs explicitly null values\n\n### Why don\'t you use [`data` classes](https://kotlinlang.org/docs/data-classes.html)?\n\nIt is not [backwards compatible to add new fields to a data class](https://kotlinlang.org/docs/api-guidelines-backward-compatibility.html#avoid-using-data-classes-in-your-api) and we don\'t want to introduce a breaking change every time we add a field to a class.\n\n### Why don\'t you use checked exceptions?\n\nChecked exceptions are widely considered a mistake in the Java programming language. In fact, they were omitted from Kotlin for this reason.\n\nChecked exceptions:\n\n- Are verbose to handle\n- Encourage error handling at the wrong level of abstraction, where nothing can be done about the error\n- Are tedious to propagate due to the [function coloring problem](https://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function)\n- Don\'t play well with lambdas (also due to the function coloring problem)\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n2. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/lithic-com/lithic-kotlin/issues) with questions, bugs, or suggestions.\n',
},
{
- language: 'typescript',
+ language: 'python',
content:
- "# Lithic TypeScript API Library\n\n[)](https://npmjs.org/package/lithic) \n\nThis library provides convenient access to the Lithic REST API from server-side TypeScript or JavaScript.\n\n\n\nThe REST API documentation can be found on [docs.lithic.com](https://docs.lithic.com). The full API of this library can be found in [api.md](api.md).\n\n\n\n## MCP Server\n\nUse the Lithic MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=lithic-mcp&config=eyJuYW1lIjoibGl0aGljLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2xpdGhpYy5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LWxpdGhpYy1hcGkta2V5IjoiTXkgTGl0aGljIEFQSSBLZXkifX0)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22lithic-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Flithic.stlmcp.com%22%2C%22headers%22%3A%7B%22x-lithic-api-key%22%3A%22My%20Lithic%20API%20Key%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n## Installation\n\n```sh\nnpm install lithic\n```\n\n\n\n## Usage\n\nThe full API of this library can be found in [api.md](api.md).\n\n\n```js\nimport Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n environment: 'sandbox', // defaults to 'production'\n});\n\nconst card = await client.cards.create({ type: 'SINGLE_USE' });\n\nconsole.log(card.token);\n```\n\n\n\n### Request & Response types\n\nThis library includes TypeScript definitions for all request params and response fields. You may import and use them like so:\n\n\n```ts\nimport Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n environment: 'sandbox', // defaults to 'production'\n});\n\nconst params: Lithic.CardCreateParams = { type: 'SINGLE_USE' };\nconst card: Lithic.Card = await client.cards.create(params);\n```\n\nDocumentation for each method, request param, and response field are available in docstrings and will appear on hover in most modern editors.\n\n\n\n\n\n## Handling errors\n\nWhen the library is unable to connect to the API,\nor if the API returns a non-success status code (i.e., 4xx or 5xx response),\na subclass of `APIError` will be thrown:\n\n\n```ts\nconst card = await client.cards.create({ type: 'MERCHANT_LOCKED' }).catch(async (err) => {\n if (err instanceof Lithic.APIError) {\n console.log(err.status); // 400\n console.log(err.name); // BadRequestError\n console.log(err.error?.message); // Invalid parameter(s): type\n console.log(err.error?.debugging_request_id); // 94d5e915-xxxx-4cee-a4f5-2xd6ebd279ac\n console.log(err.headers); // {server: 'nginx', ...}\n } else {\n throw err;\n }\n});\n```\n\nError codes are as follows:\n\n| Status Code | Error Type |\n| ----------- | -------------------------- |\n| 400 | `BadRequestError` |\n| 401 | `AuthenticationError` |\n| 403 | `PermissionDeniedError` |\n| 404 | `NotFoundError` |\n| 422 | `UnprocessableEntityError` |\n| 429 | `RateLimitError` |\n| >=500 | `InternalServerError` |\n| N/A | `APIConnectionError` |\n\n### Retries\n\nCertain errors will be automatically retried 2 times by default, with a short exponential backoff.\nConnection errors (for example, due to a network connectivity problem), 408 Request Timeout, 409 Conflict,\n429 Rate Limit, and >=500 Internal errors will all be retried by default.\n\nYou can use the `maxRetries` option to configure or disable this:\n\n\n```js\n// Configure the default for all requests:\nconst client = new Lithic({\n maxRetries: 0, // default is 2\n});\n\n// Or, configure per-request:\nawait client.cards.list({ page_size: 10 }, {\n maxRetries: 5,\n});\n```\n\n### Timeouts\n\nRequests time out after 1 minute by default. You can configure this with a `timeout` option:\n\n\n```ts\n// Configure the default for all requests:\nconst client = new Lithic({\n timeout: 20 * 1000, // 20 seconds (default is 1 minute)\n});\n\n// Override per-request:\nawait client.cards.list({ page_size: 10 }, {\n timeout: 5 * 1000,\n});\n```\n\nOn timeout, an `APIConnectionTimeoutError` is thrown.\n\nNote that requests which time out will be [retried twice by default](#retries).\n\n## Auto-pagination\n\nList methods in the Lithic API are paginated.\nYou can use the `for await … of` syntax to iterate through items across all pages:\n\n```ts\nasync function fetchAllNonPCICards(params) {\n const allNonPCICards = [];\n // Automatically fetches more pages as needed.\n for await (const nonPCICard of client.cards.list()) {\n allNonPCICards.push(nonPCICard);\n }\n return allNonPCICards;\n}\n```\n\nAlternatively, you can request a single page at a time:\n\n```ts\nlet page = await client.cards.list();\nfor (const nonPCICard of page.data) {\n console.log(nonPCICard);\n}\n\n// Convenience methods are provided for manually paginating:\nwhile (page.hasNextPage()) {\n page = await page.getNextPage();\n // ...\n}\n```\n\n\n\n## Advanced Usage\n\n### Accessing raw Response data (e.g., headers)\n\nThe \"raw\" `Response` returned by `fetch()` can be accessed through the `.asResponse()` method on the `APIPromise` type that all methods return.\nThis method returns as soon as the headers for a successful response are received and does not consume the response body, so you are free to write custom parsing or streaming logic.\n\nYou can also use the `.withResponse()` method to get the raw `Response` along with the parsed data.\nUnlike `.asResponse()` this method consumes the body, returning once it is parsed.\n\n\n```ts\nconst client = new Lithic();\n\nconst response = await client.cards.create({ type: 'SINGLE_USE' }).asResponse();\nconsole.log(response.headers.get('X-My-Header'));\nconsole.log(response.statusText); // access the underlying Response object\n\nconst { data: card, response: raw } = await client.cards\n .create({ type: 'SINGLE_USE' })\n .withResponse();\nconsole.log(raw.headers.get('X-My-Header'));\nconsole.log(card.token);\n```\n\n### Logging\n\n> [!IMPORTANT]\n> All log messages are intended for debugging only. The format and content of log messages\n> may change between releases.\n\n#### Log levels\n\nThe log level can be configured in two ways:\n\n1. Via the `LITHIC_LOG` environment variable\n2. Using the `logLevel` client option (overrides the environment variable if set)\n\n```ts\nimport Lithic from 'lithic';\n\nconst client = new Lithic({\n logLevel: 'debug', // Show all log messages\n});\n```\n\nAvailable log levels, from most to least verbose:\n\n- `'debug'` - Show debug messages, info, warnings, and errors\n- `'info'` - Show info messages, warnings, and errors\n- `'warn'` - Show warnings and errors (default)\n- `'error'` - Show only errors\n- `'off'` - Disable all logging\n\nAt the `'debug'` level, all HTTP requests and responses are logged, including headers and bodies.\nSome authentication-related headers are redacted, but sensitive data in request and response bodies\nmay still be visible.\n\n#### Custom logger\n\nBy default, this library logs to `globalThis.console`. You can also provide a custom logger.\nMost logging libraries are supported, including [pino](https://www.npmjs.com/package/pino), [winston](https://www.npmjs.com/package/winston), [bunyan](https://www.npmjs.com/package/bunyan), [consola](https://www.npmjs.com/package/consola), [signale](https://www.npmjs.com/package/signale), and [@std/log](https://jsr.io/@std/log). If your logger doesn't work, please open an issue.\n\nWhen providing a custom logger, the `logLevel` option still controls which messages are emitted, messages\nbelow the configured level will not be sent to your logger.\n\n```ts\nimport Lithic from 'lithic';\nimport pino from 'pino';\n\nconst logger = pino();\n\nconst client = new Lithic({\n logger: logger.child({ name: 'Lithic' }),\n logLevel: 'debug', // Send all messages to pino, allowing it to filter\n});\n```\n\n### Making custom/undocumented requests\n\nThis library is typed for convenient access to the documented API. If you need to access undocumented\nendpoints, params, or response properties, the library can still be used.\n\n#### Undocumented endpoints\n\nTo make requests to undocumented endpoints, you can use `client.get`, `client.post`, and other HTTP verbs.\nOptions on the client, such as retries, will be respected when making these requests.\n\n```ts\nawait client.post('/some/path', {\n body: { some_prop: 'foo' },\n query: { some_query_arg: 'bar' },\n});\n```\n\n#### Undocumented request params\n\nTo make requests using undocumented parameters, you may use `// @ts-expect-error` on the undocumented\nparameter. This library doesn't validate at runtime that the request matches the type, so any extra values you\nsend will be sent as-is.\n\n```ts\nclient.cards.create({\n // ...\n // @ts-expect-error baz is not yet public\n baz: 'undocumented option',\n});\n```\n\nFor requests with the `GET` verb, any extra params will be in the query, all other requests will send the\nextra param in the body.\n\nIf you want to explicitly send an extra argument, you can do so with the `query`, `body`, and `headers` request\noptions.\n\n#### Undocumented response properties\n\nTo access undocumented response properties, you may access the response object with `// @ts-expect-error` on\nthe response object, or cast the response object to the requisite type. Like the request params, we do not\nvalidate or strip extra properties from the response from the API.\n\n### Customizing the fetch client\n\nBy default, this library expects a global `fetch` function is defined.\n\nIf you want to use a different `fetch` function, you can either polyfill the global:\n\n```ts\nimport fetch from 'my-fetch';\n\nglobalThis.fetch = fetch;\n```\n\nOr pass it to the client:\n\n```ts\nimport Lithic from 'lithic';\nimport fetch from 'my-fetch';\n\nconst client = new Lithic({ fetch });\n```\n\n### Fetch options\n\nIf you want to set custom `fetch` options without overriding the `fetch` function, you can provide a `fetchOptions` object when instantiating the client or making a request. (Request-specific options override client options.)\n\n```ts\nimport Lithic from 'lithic';\n\nconst client = new Lithic({\n fetchOptions: {\n // `RequestInit` options\n },\n});\n```\n\n#### Configuring proxies\n\nTo modify proxy behavior, you can provide custom `fetchOptions` that add runtime-specific proxy\noptions to requests:\n\n
**Node** [[docs](https://github.com/nodejs/undici/blob/main/docs/docs/api/ProxyAgent.md#example---proxyagent-with-fetch)]\n\n```ts\nimport Lithic from 'lithic';\nimport * as undici from 'undici';\n\nconst proxyAgent = new undici.ProxyAgent('http://localhost:8888');\nconst client = new Lithic({\n fetchOptions: {\n dispatcher: proxyAgent,\n },\n});\n```\n\n
**Bun** [[docs](https://bun.sh/guides/http/proxy)]\n\n```ts\nimport Lithic from 'lithic';\n\nconst client = new Lithic({\n fetchOptions: {\n proxy: 'http://localhost:8888',\n },\n});\n```\n\n
**Deno** [[docs](https://docs.deno.com/api/deno/~/Deno.createHttpClient)]\n\n```ts\nimport Lithic from 'npm:lithic';\n\nconst httpClient = Deno.createHttpClient({ proxy: { url: 'http://localhost:8888' } });\nconst client = new Lithic({\n fetchOptions: {\n client: httpClient,\n },\n});\n```\n\n## Frequently Asked Questions\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes that only affect static types, without breaking runtime behavior.\n2. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n3. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/lithic-com/lithic-node/issues) with questions, bugs, or suggestions.\n\n## Requirements\n\nTypeScript >= 4.9 is supported.\n\nThe following runtimes are supported:\n\n- Web browsers (Up-to-date Chrome, Firefox, Safari, Edge, and more)\n- Node.js 20 LTS or later ([non-EOL](https://endoflife.date/nodejs)) versions.\n- Deno v1.28.0 or higher.\n- Bun 1.0 or later.\n- Cloudflare Workers.\n- Vercel Edge Runtime.\n- Jest 28 or greater with the `\"node\"` environment (`\"jsdom\"` is not supported at this time).\n- Nitro v2.6 or greater.\n\nNote that React Native is not supported at this time.\n\nIf you are interested in other runtime environments, please open or upvote an issue on GitHub.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n",
+ '# Lithic Python API library\n\n\n[)](https://pypi.org/project/lithic/)\n\nThe Lithic Python library provides convenient access to the Lithic REST API from any Python 3.9+\napplication. The library includes type definitions for all request params and response fields,\nand offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).\n\n\n\n\n\n## MCP Server\n\nUse the Lithic MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=lithic-mcp&config=eyJuYW1lIjoibGl0aGljLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2xpdGhpYy5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LWxpdGhpYy1hcGkta2V5IjoiTXkgTGl0aGljIEFQSSBLZXkifX0)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22lithic-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Flithic.stlmcp.com%22%2C%22headers%22%3A%7B%22x-lithic-api-key%22%3A%22My%20Lithic%20API%20Key%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n## Documentation\n\nThe REST API documentation can be found on [docs.lithic.com](https://docs.lithic.com). The full API of this library can be found in [api.md](api.md).\n\n## Installation\n\n```sh\n# install from PyPI\npip install lithic\n```\n\n## Usage\n\nThe full API of this library can be found in [api.md](api.md).\n\n```python\nimport os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n # defaults to "production".\n environment="sandbox",\n)\n\ncard = client.cards.create(\n type="SINGLE_USE",\n)\nprint(card.token)\n```\n\nWhile you can provide an `api_key` keyword argument,\nwe recommend using [python-dotenv](https://pypi.org/project/python-dotenv/)\nto add `LITHIC_API_KEY="My Lithic API Key"` to your `.env` file\nso that your API Key is not stored in source control.\n\n## Async usage\n\nSimply import `AsyncLithic` instead of `Lithic` and use `await` with each API call:\n\n```python\nimport os\nimport asyncio\nfrom lithic import AsyncLithic\n\nclient = AsyncLithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n # defaults to "production".\n environment="sandbox",\n)\n\nasync def main() -> None:\n card = await client.cards.create(\n type="SINGLE_USE",\n )\n print(card.token)\n\nasyncio.run(main())\n```\n\nFunctionality between the synchronous and asynchronous clients is otherwise identical.\n\n### With aiohttp\n\nBy default, the async client uses `httpx` for HTTP requests. However, for improved concurrency performance you may also use `aiohttp` as the HTTP backend.\n\nYou can enable this by installing `aiohttp`:\n\n```sh\n# install from PyPI\npip install lithic[aiohttp]\n```\n\nThen you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:\n\n```python\nimport os\nimport asyncio\nfrom lithic import DefaultAioHttpClient\nfrom lithic import AsyncLithic\n\nasync def main() -> None:\n async with AsyncLithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n http_client=DefaultAioHttpClient(),\n) as client:\n card = await client.cards.create(\n type="SINGLE_USE",\n )\n print(card.token)\n\nasyncio.run(main())\n```\n\n\n\n## Using types\n\nNested request parameters are [TypedDicts](https://docs.python.org/3/library/typing.html#typing.TypedDict). Responses are [Pydantic models](https://docs.pydantic.dev) which also provide helper methods for things like:\n\n- Serializing back into JSON, `model.to_json()`\n- Converting to a dictionary, `model.to_dict()`\n\nTyped requests and responses provide autocomplete and documentation within your editor. If you would like to see type errors in VS Code to help catch bugs earlier, set `python.analysis.typeCheckingMode` to `basic`.\n\n## Pagination\n\nList methods in the Lithic API are paginated.\n\nThis library provides auto-paginating iterators with each list response, so you do not have to request successive pages manually:\n\n```python\nfrom lithic import Lithic\n\nclient = Lithic()\n\nall_cards = []\n# Automatically fetches more pages as needed.\nfor card in client.cards.list():\n # Do something with card here\n all_cards.append(card)\nprint(all_cards)\n```\n\nOr, asynchronously:\n\n```python\nimport asyncio\nfrom lithic import AsyncLithic\n\nclient = AsyncLithic()\n\nasync def main() -> None:\n all_cards = []\n # Iterate through items across all pages, issuing requests as needed.\n async for card in client.cards.list():\n all_cards.append(card)\n print(all_cards)\n\nasyncio.run(main())\n```\n\nAlternatively, you can use the `.has_next_page()`, `.next_page_info()`, or `.get_next_page()` methods for more granular control working with pages:\n\n```python\nfirst_page = await client.cards.list()\nif first_page.has_next_page():\n print(f"will fetch next page using these details: {first_page.next_page_info()}")\n next_page = await first_page.get_next_page()\n print(f"number of items we just fetched: {len(next_page.data)}")\n\n# Remove `await` for non-async usage.\n```\n\nOr just work directly with the returned data:\n\n```python\nfirst_page = await client.cards.list()\n\nprint(f"next page cursor: {first_page.starting_after}") # => "next page cursor: ..."\nfor card in first_page.data:\n print(card.product_id)\n\n# Remove `await` for non-async usage.\n```\n\n## Nested params\n\nNested parameters are dictionaries, typed using `TypedDict`, for example:\n\n```python\nfrom lithic import Lithic\n\nclient = Lithic()\n\ncard = client.cards.create(\n type="PHYSICAL",\n shipping_address={\n "address1": "123",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Johnny",\n "last_name": "Appleseed",\n "postal_code": "10001",\n "state": "NY",\n },\n)\n```\n\n\n\n## Handling errors\n\nWhen the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `lithic.APIConnectionError` is raised.\n\nWhen the API returns a non-success status code (that is, 4xx or 5xx\nresponse), a subclass of `lithic.APIStatusError` is raised, containing `status_code` and `response` properties.\n\nAll errors inherit from `lithic.APIError`.\n\n```python\nimport lithic\nfrom lithic import Lithic\n\nclient = Lithic()\n\ntry:\n client.cards.create(\n type="MERCHANT_LOCKED",\n )\nexcept lithic.APIConnectionError as e:\n print("The server could not be reached")\n print(e.__cause__) # an underlying Exception, likely raised within httpx.\nexcept lithic.RateLimitError as e:\n print("A 429 status code was received; we should back off a bit.")\nexcept lithic.APIStatusError as e:\n print("Another non-200-range status code was received")\n print(e.status_code)\n print(e.response)\n```\n\nError codes are as follows:\n\n| Status Code | Error Type |\n| ----------- | -------------------------- |\n| 400 | `BadRequestError` |\n| 401 | `AuthenticationError` |\n| 403 | `PermissionDeniedError` |\n| 404 | `NotFoundError` |\n| 422 | `UnprocessableEntityError` |\n| 429 | `RateLimitError` |\n| >=500 | `InternalServerError` |\n| N/A | `APIConnectionError` |\n\n### Retries\n\nCertain errors are automatically retried 2 times by default, with a short exponential backoff.\nConnection errors (for example, due to a network connectivity problem), 408 Request Timeout, 409 Conflict,\n429 Rate Limit, and >=500 Internal errors are all retried by default.\n\nYou can use the `max_retries` option to configure or disable retry settings:\n\n```python\nfrom lithic import Lithic\n\n# Configure the default for all requests:\nclient = Lithic(\n # default is 2\n max_retries=0,\n)\n\n# Or, configure per-request:\nclient.with_options(max_retries = 5).cards.list(\n page_size=10,\n)\n```\n\n### Timeouts\n\nBy default requests time out after 1 minute. You can configure this with a `timeout` option,\nwhich accepts a float or an [`httpx.Timeout`](https://www.python-httpx.org/advanced/timeouts/#fine-tuning-the-configuration) object:\n\n```python\nfrom lithic import Lithic\n\n# Configure the default for all requests:\nclient = Lithic(\n # 20 seconds (default is 1 minute)\n timeout=20.0,\n)\n\n# More granular control:\nclient = Lithic(\n timeout=httpx.Timeout(60.0, read=5.0, write=10.0, connect=2.0),\n)\n\n# Override per-request:\nclient.with_options(timeout = 5.0).cards.list(\n page_size=10,\n)\n```\n\nOn timeout, an `APITimeoutError` is thrown.\n\nNote that requests that time out are [retried twice by default](#retries).\n\n\n\n## Advanced\n\n### Logging\n\nWe use the standard library [`logging`](https://docs.python.org/3/library/logging.html) module.\n\nYou can enable logging by setting the environment variable `LITHIC_LOG` to `info`.\n\n```shell\n$ export LITHIC_LOG=info\n```\n\nOr to `debug` for more verbose logging.\n\n### How to tell whether `None` means `null` or missing\n\nIn an API response, a field may be explicitly `null`, or missing entirely; in either case, its value is `None` in this library. You can differentiate the two cases with `.model_fields_set`:\n\n```py\nif response.my_field is None:\n if \'my_field\' not in response.model_fields_set:\n print(\'Got json like {}, without a "my_field" key present at all.\')\n else:\n print(\'Got json like {"my_field": null}.\')\n```\n\n### Accessing raw response data (e.g. headers)\n\nThe "raw" Response object can be accessed by prefixing `.with_raw_response.` to any HTTP method call, e.g.,\n\n```py\nfrom lithic import Lithic\n\nclient = Lithic()\nresponse = client.cards.with_raw_response.create(\n type="SINGLE_USE",\n)\nprint(response.headers.get(\'X-My-Header\'))\n\ncard = response.parse() # get the object that `cards.create()` would have returned\nprint(card.token)\n```\n\nThese methods return a [`LegacyAPIResponse`](https://github.com/lithic-com/lithic-python/tree/main/src/lithic/_legacy_response.py) object. This is a legacy class as we\'re changing it slightly in the next major version.\n\nFor the sync client this will mostly be the same with the exception\nof `content` & `text` will be methods instead of properties. In the\nasync client, all methods will be async.\n\nA migration script will be provided & the migration in general should\nbe smooth.\n\n#### `.with_streaming_response`\n\nThe above interface eagerly reads the full response body when you make the request, which may not always be what you want.\n\nTo stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.\n\nAs such, `.with_streaming_response` methods return a different [`APIResponse`](https://github.com/lithic-com/lithic-python/tree/main/src/lithic/_response.py) object, and the async client returns an [`AsyncAPIResponse`](https://github.com/lithic-com/lithic-python/tree/main/src/lithic/_response.py) object.\n\n```python\nwith client.cards.with_streaming_response.create(\n type="SINGLE_USE",\n) as response :\n print(response.headers.get(\'X-My-Header\'))\n\n for line in response.iter_lines():\n print(line)\n```\n\nThe context manager is required so that the response will reliably be closed.\n\n### Making custom/undocumented requests\n\nThis library is typed for convenient access to the documented API.\n\nIf you need to access undocumented endpoints, params, or response properties, the library can still be used.\n\n#### Undocumented endpoints\n\nTo make requests to undocumented endpoints, you can make requests using `client.get`, `client.post`, and other\nhttp verbs. Options on the client will be respected (such as retries) when making this request.\n\n```py\nimport httpx\n\nresponse = client.post(\n "/foo",\n cast_to=httpx.Response,\n body={"my_param": True},\n)\n\nprint(response.headers.get("x-foo"))\n```\n\n#### Undocumented request params\n\nIf you want to explicitly send an extra param, you can do so with the `extra_query`, `extra_body`, and `extra_headers` request\noptions.\n\n#### Undocumented response properties\n\nTo access undocumented response properties, you can access the extra fields like `response.unknown_prop`. You\ncan also get all the extra fields on the Pydantic model as a dict with\n[`response.model_extra`](https://docs.pydantic.dev/latest/api/base_model/#pydantic.BaseModel.model_extra).\n\n### Configuring the HTTP client\n\nYou can directly override the [httpx client](https://www.python-httpx.org/api/#client) to customize it for your use case, including:\n\n- Support for [proxies](https://www.python-httpx.org/advanced/proxies/)\n- Custom [transports](https://www.python-httpx.org/advanced/transports/)\n- Additional [advanced](https://www.python-httpx.org/advanced/clients/) functionality\n\n```python\nimport httpx\nfrom lithic import Lithic, DefaultHttpxClient\n\nclient = Lithic(\n # Or use the `LITHIC_BASE_URL` env var\n base_url="http://my.test.server.example.com:8083",\n http_client=DefaultHttpxClient(proxy="http://my.test.proxy.example.com", transport=httpx.HTTPTransport(local_address="0.0.0.0")),\n)\n```\n\nYou can also customize the client on a per-request basis by using `with_options()`:\n\n```python\nclient.with_options(http_client=DefaultHttpxClient(...))\n```\n\n### Managing HTTP resources\n\nBy default the library closes underlying HTTP connections whenever the client is [garbage collected](https://docs.python.org/3/reference/datamodel.html#object.__del__). You can manually close the client using the `.close()` method if desired, or with a context manager that closes when exiting.\n\n```py\nfrom lithic import Lithic\n\nwith Lithic() as client:\n # make requests here\n ...\n\n# HTTP client is now closed\n```\n\n## Versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes that only affect static types, without breaking runtime behavior.\n2. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n3. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/lithic-com/lithic-python/issues) with questions, bugs, or suggestions.\n\n### Determining the installed version\n\nIf you\'ve upgraded to the latest version but aren\'t seeing any new features you were expecting then your python environment is likely still using an older version.\n\nYou can determine the version that is being used at runtime with:\n\n```py\nimport lithic\nprint(lithic.__version__)\n```\n\n## Requirements\n\nPython 3.9 or higher.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n',
},
{
language: 'ruby',
@@ -10261,14 +10261,14 @@ const EMBEDDED_READMES: { language: string; content: string }[] = [
'# Lithic Ruby API library\n\nThe Lithic Ruby library provides convenient access to the Lithic REST API from any Ruby 3.2.0+ application. It ships with comprehensive types & docstrings in Yard, RBS, and RBI – [see below](https://github.com/lithic-com/lithic-ruby#Sorbet) for usage with Sorbet. The standard library\'s `net/http` is used as the HTTP transport, with connection pooling via the `connection_pool` gem.\n\n\n\n\n\n## MCP Server\n\nUse the Lithic MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=lithic-mcp&config=eyJuYW1lIjoibGl0aGljLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2xpdGhpYy5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LWxpdGhpYy1hcGkta2V5IjoiTXkgTGl0aGljIEFQSSBLZXkifX0)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22lithic-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Flithic.stlmcp.com%22%2C%22headers%22%3A%7B%22x-lithic-api-key%22%3A%22My%20Lithic%20API%20Key%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n## Documentation\n\nDocumentation for releases of this gem can be found [on RubyDoc](https://gemdocs.org/gems/lithic).\n\nThe REST API documentation can be found on [docs.lithic.com](https://docs.lithic.com).\n\n## Installation\n\nTo use this gem, install via Bundler by adding the following to your application\'s `Gemfile`:\n\n\n\n```ruby\ngem "lithic", "~> 0.0.1"\n```\n\n\n\n## Usage\n\n```ruby\nrequire "bundler/setup"\nrequire "lithic"\n\nlithic = Lithic::Client.new(\n api_key: ENV["LITHIC_API_KEY"], # This is the default and can be omitted\n environment: "sandbox" # defaults to "production"\n)\n\ncard = lithic.cards.create(type: "SINGLE_USE")\n\nputs(card.token)\n```\n\n\n\n### Pagination\n\nList methods in the Lithic API are paginated.\n\nThis library provides auto-paginating iterators with each list response, so you do not have to request successive pages manually:\n\n```ruby\npage = lithic.cards.list\n\n# Fetch single item from page.\ncard = page.data[0]\nputs(card.product_id)\n\n# Automatically fetches more pages as needed.\npage.auto_paging_each do |card|\n puts(card.product_id)\nend\n```\n\nAlternatively, you can use the `#next_page?` and `#next_page` methods for more granular control working with pages.\n\n```ruby\nif page.next_page?\n new_page = page.next_page\n puts(new_page.data[0].product_id)\nend\n```\n\n\n\n### Handling errors\n\nWhen the library is unable to connect to the API, or if the API returns a non-success status code (i.e., 4xx or 5xx response), a subclass of `Lithic::Errors::APIError` will be thrown:\n\n```ruby\nbegin\n card = lithic.cards.create(type: "MERCHANT_LOCKED")\nrescue Lithic::Errors::APIConnectionError => e\n puts("The server could not be reached")\n puts(e.cause) # an underlying Exception, likely raised within `net/http`\nrescue Lithic::Errors::RateLimitError => e\n puts("A 429 status code was received; we should back off a bit.")\nrescue Lithic::Errors::APIStatusError => e\n puts("Another non-200-range status code was received")\n puts(e.status)\nend\n```\n\nError codes are as follows:\n\n| Cause | Error Type |\n| ---------------- | -------------------------- |\n| HTTP 400 | `BadRequestError` |\n| HTTP 401 | `AuthenticationError` |\n| HTTP 403 | `PermissionDeniedError` |\n| HTTP 404 | `NotFoundError` |\n| HTTP 409 | `ConflictError` |\n| HTTP 422 | `UnprocessableEntityError` |\n| HTTP 429 | `RateLimitError` |\n| HTTP >= 500 | `InternalServerError` |\n| Other HTTP error | `APIStatusError` |\n| Timeout | `APITimeoutError` |\n| Network error | `APIConnectionError` |\n\n### Retries\n\nCertain errors will be automatically retried 2 times by default, with a short exponential backoff.\n\nConnection errors (for example, due to a network connectivity problem), 408 Request Timeout, 409 Conflict, 429 Rate Limit, >=500 Internal errors, and timeouts will all be retried by default.\n\nYou can use the `max_retries` option to configure or disable this:\n\n```ruby\n# Configure the default for all requests:\nlithic = Lithic::Client.new(\n max_retries: 0 # default is 2\n)\n\n# Or, configure per-request:\nlithic.cards.list(page_size: 10, request_options: {max_retries: 5})\n```\n\n### Timeouts\n\nBy default, requests will time out after 60 seconds. You can use the timeout option to configure or disable this:\n\n```ruby\n# Configure the default for all requests:\nlithic = Lithic::Client.new(\n timeout: nil # default is 60\n)\n\n# Or, configure per-request:\nlithic.cards.list(page_size: 10, request_options: {timeout: 5})\n```\n\nOn timeout, `Lithic::Errors::APITimeoutError` is raised.\n\nNote that requests that time out are retried by default.\n\n## Advanced concepts\n\n### BaseModel\n\nAll parameter and response objects inherit from `Lithic::Internal::Type::BaseModel`, which provides several conveniences, including:\n\n1. All fields, including unknown ones, are accessible with `obj[:prop]` syntax, and can be destructured with `obj => {prop: prop}` or pattern-matching syntax.\n\n2. Structural equivalence for equality; if two API calls return the same values, comparing the responses with == will return true.\n\n3. Both instances and the classes themselves can be pretty-printed.\n\n4. Helpers such as `#to_h`, `#deep_to_h`, `#to_json`, and `#to_yaml`.\n\n### Making custom or undocumented requests\n\n#### Undocumented properties\n\nYou can send undocumented parameters to any endpoint, and read undocumented response properties, like so:\n\nNote: the `extra_` parameters of the same name overrides the documented parameters.\n\n```ruby\npage =\n lithic.cards.list(\n page_size: 10,\n request_options: {\n extra_query: {my_query_parameter: value},\n extra_body: {my_body_parameter: value},\n extra_headers: {"my-header": value}\n }\n )\n\nputs(page[:my_undocumented_property])\n```\n\n#### Undocumented request params\n\nIf you want to explicitly send an extra param, you can do so with the `extra_query`, `extra_body`, and `extra_headers` under the `request_options:` parameter when making a request, as seen in the examples above.\n\n#### Undocumented endpoints\n\nTo make requests to undocumented endpoints while retaining the benefit of auth, retries, and so on, you can make requests using `client.request`, like so:\n\n```ruby\nresponse = client.request(\n method: :post,\n path: \'/undocumented/endpoint\',\n query: {"dog": "woof"},\n headers: {"useful-header": "interesting-value"},\n body: {"hello": "world"}\n)\n```\n\n### Concurrency & connection pooling\n\nThe `Lithic::Client` instances are threadsafe, but are only are fork-safe when there are no in-flight HTTP requests.\n\nEach instance of `Lithic::Client` has its own HTTP connection pool with a default size of 99. As such, we recommend instantiating the client once per application in most settings.\n\nWhen all available connections from the pool are checked out, requests wait for a new connection to become available, with queue time counting towards the request timeout.\n\nUnless otherwise specified, other classes in the SDK do not have locks protecting their underlying data structure.\n\n## Sorbet\n\nThis library provides comprehensive [RBI](https://sorbet.org/docs/rbi) definitions, and has no dependency on sorbet-runtime.\n\nYou can provide typesafe request parameters like so:\n\n```ruby\nlithic.cards.create(type: "SINGLE_USE")\n```\n\nOr, equivalently:\n\n```ruby\n# Hashes work, but are not typesafe:\nlithic.cards.create(type: "SINGLE_USE")\n\n# You can also splat a full Params class:\nparams = Lithic::CardCreateParams.new(type: "SINGLE_USE")\nlithic.cards.create(**params)\n```\n\n### Enums\n\nSince this library does not depend on `sorbet-runtime`, it cannot provide [`T::Enum`](https://sorbet.org/docs/tenum) instances. Instead, we provide "tagged symbols" instead, which is always a primitive at runtime:\n\n```ruby\n# :ACTIVE\nputs(Lithic::AccountUpdateParams::State::ACTIVE)\n\n# Revealed type: `T.all(Lithic::AccountUpdateParams::State, Symbol)`\nT.reveal_type(Lithic::AccountUpdateParams::State::ACTIVE)\n```\n\nEnum parameters have a "relaxed" type, so you can either pass in enum constants or their literal value:\n\n```ruby\n# Using the enum constants preserves the tagged type information:\nlithic.accounts.update(\n state: Lithic::AccountUpdateParams::State::ACTIVE,\n # …\n)\n\n# Literal values are also permissible:\nlithic.accounts.update(\n state: :ACTIVE,\n # …\n)\n```\n\n## Versioning\n\nThis package follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions. As the library is in initial development and has a major version of `0`, APIs may change at any time.\n\nThis package considers improvements to the (non-runtime) `*.rbi` and `*.rbs` type definitions to be non-breaking changes.\n\n## Requirements\n\nRuby 3.2.0 or higher.\n\n## Contributing\n\nSee [the contributing documentation](https://github.com/lithic-com/lithic-ruby/tree/main/CONTRIBUTING.md).\n',
},
{
- language: 'java',
+ language: 'terraform',
content:
- '# Lithic Java API Library\n\n\n[](https://central.sonatype.com/artifact/com.lithic.api/lithic-java/0.0.1)\n[](https://javadoc.io/doc/com.lithic.api/lithic-java/0.0.1)\n\n\nThe Lithic Java SDK provides convenient access to the [Lithic REST API](https://docs.lithic.com) from applications written in Java.\n\nThe Lithic Java SDK is similar to the Lithic Kotlin SDK but with minor differences that make it more ergonomic for use in Java, such as `Optional` instead of nullable values, `Stream` instead of `Sequence`, and `CompletableFuture` instead of suspend functions.\n\n\n\n## MCP Server\n\nUse the Lithic MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=lithic-mcp&config=eyJuYW1lIjoibGl0aGljLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2xpdGhpYy5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LWxpdGhpYy1hcGkta2V5IjoiTXkgTGl0aGljIEFQSSBLZXkifX0)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22lithic-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Flithic.stlmcp.com%22%2C%22headers%22%3A%7B%22x-lithic-api-key%22%3A%22My%20Lithic%20API%20Key%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n\n\nThe REST API documentation can be found on [docs.lithic.com](https://docs.lithic.com). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.lithic.api/lithic-java/0.0.1).\n\n\n\n## Installation\n\n\n\n### Gradle\n\n~~~kotlin\nimplementation("com.lithic.api:lithic-java:0.0.1")\n~~~\n\n### Maven\n\n~~~xml\n\n com.lithic.api\n lithic-java\n 0.0.1\n\n~~~\n\n\n\n## Requirements\n\nThis library requires Java 8 or later.\n\n## Usage\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Card;\nimport com.lithic.api.models.CardCreateParams;\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nLithicClient client = LithicOkHttpClient.fromEnv();\n\nCardCreateParams params = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build();\nCard card = client.cards().create(params);\n```\n\n## Client configuration\n\nConfigure the client using system properties or environment variables:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nLithicClient client = LithicOkHttpClient.fromEnv();\n```\n\nOr manually:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\n\nLithicClient client = LithicOkHttpClient.builder()\n .apiKey("My Lithic API Key")\n .build();\n```\n\nOr using a combination of the two approaches:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\n\nLithicClient client = LithicOkHttpClient.builder()\n // Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n // Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\n .fromEnv()\n .apiKey("My Lithic API Key")\n .build();\n```\n\nSee this table for the available options:\n\n| Setter | System property | Environment variable | Required | Default value |\n| --------------- | ---------------------- | ----------------------- | -------- | -------------------------- |\n| `apiKey` | `lithic.apiKey` | `LITHIC_API_KEY` | true | - |\n| `webhookSecret` | `lithic.webhookSecret` | `LITHIC_WEBHOOK_SECRET` | false | - |\n| `baseUrl` | `lithic.baseUrl` | `LITHIC_BASE_URL` | true | `"https://api.lithic.com"` |\n\nSystem properties take precedence over environment variables.\n\n> [!TIP]\n> Don\'t create more than one client in the same application. Each client has a connection pool and\n> thread pools, which are more efficient to share between requests.\n\n### Modifying configuration\n\nTo temporarily use a modified client configuration, while reusing the same connection and thread pools, call `withOptions()` on any client or service:\n\n```java\nimport com.lithic.api.client.LithicClient;\n\nLithicClient clientWithOptions = client.withOptions(optionsBuilder -> {\n optionsBuilder.baseUrl("https://example.com");\n optionsBuilder.maxRetries(42);\n});\n```\n\nThe `withOptions()` method does not affect the original client or service.\n\n## Requests and responses\n\nTo send a request to the Lithic API, build an instance of some `Params` class and pass it to the corresponding client method. When the response is received, it will be deserialized into an instance of a Java class.\n\nFor example, `client.cards().create(...)` should be called with an instance of `CardCreateParams`, and it will return an instance of `Card`.\n\n## Immutability\n\nEach class in the SDK has an associated [builder](https://blogs.oracle.com/javamagazine/post/exploring-joshua-blochs-builder-design-pattern-in-java) or factory method for constructing it.\n\nEach class is [immutable](https://docs.oracle.com/javase/tutorial/essential/concurrency/immutable.html) once constructed. If the class has an associated builder, then it has a `toBuilder()` method, which can be used to convert it back to a builder for making a modified copy.\n\nBecause each class is immutable, builder modification will _never_ affect already built class instances.\n\n## Asynchronous execution\n\nThe default client is synchronous. To switch to asynchronous execution, call the `async()` method:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.Card;\nimport com.lithic.api.models.CardCreateParams;\nimport java.util.concurrent.CompletableFuture;\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nLithicClient client = LithicOkHttpClient.fromEnv();\n\nCardCreateParams params = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build();\nCompletableFuture card = client.async().cards().create(params);\n```\n\nOr create an asynchronous client from the beginning:\n\n```java\nimport com.lithic.api.client.LithicClientAsync;\nimport com.lithic.api.client.okhttp.LithicOkHttpClientAsync;\nimport com.lithic.api.models.Card;\nimport com.lithic.api.models.CardCreateParams;\nimport java.util.concurrent.CompletableFuture;\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nLithicClientAsync client = LithicOkHttpClientAsync.fromEnv();\n\nCardCreateParams params = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build();\nCompletableFuture card = client.cards().create(params);\n```\n\nThe asynchronous client supports the same options as the synchronous one, except most methods return `CompletableFuture`s.\n\n\n\n\n\n\n\n## Raw responses\n\nThe SDK defines methods that deserialize responses into instances of Java classes. However, these methods don\'t provide access to the response headers, status code, or the raw response body.\n\nTo access this data, prefix any HTTP method call on a client or service with `withRawResponse()`:\n\n```java\nimport com.lithic.api.core.http.Headers;\nimport com.lithic.api.core.http.HttpResponseFor;\nimport com.lithic.api.models.Card;\nimport com.lithic.api.models.CardCreateParams;\n\nCardCreateParams params = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build();\nHttpResponseFor card = client.cards().withRawResponse().create(params);\n\nint statusCode = card.statusCode();\nHeaders headers = card.headers();\n```\n\nYou can still deserialize the response into an instance of a Java class if needed:\n\n```java\nimport com.lithic.api.models.Card;\n\nCard parsedCard = card.parse();\n```\n\n## Error handling\n\nThe SDK throws custom unchecked exception types:\n\n- [`LithicServiceException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/LithicServiceException.kt): Base class for HTTP errors. See this table for which exception subclass is thrown for each HTTP status code:\n\n | Status | Exception |\n | ------ | -------------------------------------------------- |\n | 400 | [`BadRequestException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/BadRequestException.kt) |\n | 401 | [`UnauthorizedException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/UnauthorizedException.kt) |\n | 403 | [`PermissionDeniedException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/PermissionDeniedException.kt) |\n | 404 | [`NotFoundException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/NotFoundException.kt) |\n | 422 | [`UnprocessableEntityException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/UnprocessableEntityException.kt) |\n | 429 | [`RateLimitException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/RateLimitException.kt) |\n | 5xx | [`InternalServerException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/InternalServerException.kt) |\n | others | [`UnexpectedStatusCodeException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/UnexpectedStatusCodeException.kt) |\n\n- [`LithicIoException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/LithicIoException.kt): I/O networking errors.\n\n- [`LithicRetryableException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/LithicRetryableException.kt): Generic error indicating a failure that could be retried by the client.\n\n- [`LithicInvalidDataException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/LithicInvalidDataException.kt): Failure to interpret successfully parsed data. For example, when accessing a property that\'s supposed to be required, but the API unexpectedly omitted it from the response.\n\n- [`LithicException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/LithicException.kt): Base class for all exceptions. Most errors will result in one of the previously mentioned ones, but completely generic errors may be thrown using the base class.\n\n## Pagination\n\nThe SDK defines methods that return a paginated lists of results. It provides convenient ways to access the results either one page at a time or item-by-item across all pages.\n\n### Auto-pagination\n\nTo iterate through all results across all pages, use the `autoPager()` method, which automatically fetches more pages as needed.\n\nWhen using the synchronous client, the method returns an [`Iterable`](https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html)\n\n```java\nimport com.lithic.api.models.CardListPage;\nimport com.lithic.api.models.NonPciCard;\n\nCardListPage page = client.cards().list();\n\n// Process as an Iterable\nfor (NonPciCard card : page.autoPager()) {\n System.out.println(card);\n}\n\n// Process as a Stream\npage.autoPager()\n .stream()\n .limit(50)\n .forEach(card -> System.out.println(card));\n```\n\nWhen using the asynchronous client, the method returns an [`AsyncStreamResponse`](lithic-java-core/src/main/kotlin/com/lithic/api/core/http/AsyncStreamResponse.kt):\n\n```java\nimport com.lithic.api.core.http.AsyncStreamResponse;\nimport com.lithic.api.models.CardListPageAsync;\nimport com.lithic.api.models.NonPciCard;\nimport java.util.Optional;\nimport java.util.concurrent.CompletableFuture;\n\nCompletableFuture pageFuture = client.async().cards().list();\n\npageFuture.thenRun(page -> page.autoPager().subscribe(card -> {\n System.out.println(card);\n}));\n\n// If you need to handle errors or completion of the stream\npageFuture.thenRun(page -> page.autoPager().subscribe(new AsyncStreamResponse.Handler<>() {\n @Override\n public void onNext(NonPciCard card) {\n System.out.println(card);\n }\n\n @Override\n public void onComplete(Optional error) {\n if (error.isPresent()) {\n System.out.println("Something went wrong!");\n throw new RuntimeException(error.get());\n } else {\n System.out.println("No more!");\n }\n }\n}));\n\n// Or use futures\npageFuture.thenRun(page -> page.autoPager()\n .subscribe(card -> {\n System.out.println(card);\n })\n .onCompleteFuture()\n .whenComplete((unused, error) -> {\n if (error != null) {\n System.out.println("Something went wrong!");\n throw new RuntimeException(error);\n } else {\n System.out.println("No more!");\n }\n }));\n```\n\n### Manual pagination\n\nTo access individual page items and manually request the next page, use the `items()`,\n`hasNextPage()`, and `nextPage()` methods:\n\n```java\nimport com.lithic.api.models.CardListPage;\nimport com.lithic.api.models.NonPciCard;\n\nCardListPage page = client.cards().list();\nwhile (true) {\n for (NonPciCard card : page.items()) {\n System.out.println(card);\n }\n\n if (!page.hasNextPage()) {\n break;\n }\n\n page = page.nextPage();\n}\n```\n\n## Logging\n\nThe SDK uses the standard [OkHttp logging interceptor](https://github.com/square/okhttp/tree/master/okhttp-logging-interceptor).\n\nEnable logging by setting the `LITHIC_LOG` environment variable to `info`:\n\n```sh\nexport LITHIC_LOG=info\n```\n\nOr to `debug` for more verbose logging:\n\n```sh\nexport LITHIC_LOG=debug\n```\n\n## ProGuard and R8\n\nAlthough the SDK uses reflection, it is still usable with [ProGuard](https://github.com/Guardsquare/proguard) and [R8](https://developer.android.com/topic/performance/app-optimization/enable-app-optimization) because `lithic-java-core` is published with a [configuration file](lithic-java-core/src/main/resources/META-INF/proguard/lithic-java-core.pro) containing [keep rules](https://www.guardsquare.com/manual/configuration/usage).\n\nProGuard and R8 should automatically detect and use the published rules, but you can also manually copy the keep rules if necessary.\n\n\n\n\n\n## Jackson\n\nThe SDK depends on [Jackson](https://github.com/FasterXML/jackson) for JSON serialization/deserialization. It is compatible with version 2.13.4 or higher, but depends on version 2.18.2 by default.\n\nThe SDK throws an exception if it detects an incompatible Jackson version at runtime (e.g. if the default version was overridden in your Maven or Gradle config).\n\nIf the SDK threw an exception, but you\'re _certain_ the version is compatible, then disable the version check using the `checkJacksonVersionCompatibility` on [`LithicOkHttpClient`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) or [`LithicOkHttpClientAsync`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt).\n\n> [!CAUTION]\n> We make no guarantee that the SDK works correctly when the Jackson version check is disabled.\n\nAlso note that there are bugs in older Jackson versions that can affect the SDK. We don\'t work around all Jackson bugs ([example](https://github.com/FasterXML/jackson-databind/issues/3240)) and expect users to upgrade Jackson for those instead.\n\n## Network options\n\n### Retries\n\nThe SDK automatically retries 2 times by default, with a short exponential backoff between requests.\n\nOnly the following error types are retried:\n- Connection errors (for example, due to a network connectivity problem)\n- 408 Request Timeout\n- 409 Conflict\n- 429 Rate Limit\n- 5xx Internal\n\nThe API may also explicitly instruct the SDK to retry or not retry a request.\n\nTo set a custom number of retries, configure the client using the `maxRetries` method:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\n\nLithicClient client = LithicOkHttpClient.builder()\n .fromEnv()\n .maxRetries(4)\n .build();\n```\n\n### Timeouts\n\nRequests time out after 1 minute by default.\n\nTo set a custom timeout, configure the method call using the `timeout` method:\n\n```java\nimport com.lithic.api.models.CardListPage;\n\nCardListPage page = client.cards().list(RequestOptions.builder().timeout(Duration.ofSeconds(30)).build());\n```\n\nOr configure the default for all method calls at the client level:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport java.time.Duration;\n\nLithicClient client = LithicOkHttpClient.builder()\n .fromEnv()\n .timeout(Duration.ofSeconds(30))\n .build();\n```\n\n### Proxies\n\nTo route requests through a proxy, configure the client using the `proxy` method:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport java.net.InetSocketAddress;\nimport java.net.Proxy;\n\nLithicClient client = LithicOkHttpClient.builder()\n .fromEnv()\n .proxy(new Proxy(\n Proxy.Type.HTTP, new InetSocketAddress(\n "https://example.com", 8080\n )\n ))\n .build();\n```\n\n### Connection pooling\n\nTo customize the underlying OkHttp connection pool, configure the client using the `maxIdleConnections` and `keepAliveDuration` methods:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport java.time.Duration;\n\nLithicClient client = LithicOkHttpClient.builder()\n .fromEnv()\n // If `maxIdleConnections` is set, then `keepAliveDuration` must be set, and vice versa.\n .maxIdleConnections(10)\n .keepAliveDuration(Duration.ofMinutes(2))\n .build();\n```\n\nIf both options are unset, OkHttp\'s default connection pool settings are used.\n\n### HTTPS\n\n> [!NOTE]\n> Most applications should not call these methods, and instead use the system defaults. The defaults include\n> special optimizations that can be lost if the implementations are modified.\n\nTo configure how HTTPS connections are secured, configure the client using the `sslSocketFactory`, `trustManager`, and `hostnameVerifier` methods:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\n\nLithicClient client = LithicOkHttpClient.builder()\n .fromEnv()\n // If `sslSocketFactory` is set, then `trustManager` must be set, and vice versa.\n .sslSocketFactory(yourSSLSocketFactory)\n .trustManager(yourTrustManager)\n .hostnameVerifier(yourHostnameVerifier)\n .build();\n```\n\n### Environments\n\nThe SDK sends requests to the production by default. To send requests to a different environment, configure the client like so:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\n\nLithicClient client = LithicOkHttpClient.builder()\n .fromEnv()\n .sandbox()\n .build();\n```\n\n### Custom HTTP client\n\nThe SDK consists of three artifacts:\n- `lithic-java-core`\n - Contains core SDK logic\n - Does not depend on [OkHttp](https://square.github.io/okhttp)\n - Exposes [`LithicClient`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClient.kt), [`LithicClientAsync`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientAsync.kt), [`LithicClientImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt), and [`LithicClientAsyncImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), all of which can work with any HTTP client\n- `lithic-java-client-okhttp`\n - Depends on [OkHttp](https://square.github.io/okhttp)\n - Exposes [`LithicOkHttpClient`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) and [`LithicOkHttpClientAsync`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt), which provide a way to construct [`LithicClientImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt) and [`LithicClientAsyncImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), respectively, using OkHttp\n- `lithic-java`\n - Depends on and exposes the APIs of both `lithic-java-core` and `lithic-java-client-okhttp`\n - Does not have its own logic\n\nThis structure allows replacing the SDK\'s default HTTP client without pulling in unnecessary dependencies.\n\n#### Customized [`OkHttpClient`](https://square.github.io/okhttp/3.x/okhttp/okhttp3/OkHttpClient.html)\n\n> [!TIP]\n> Try the available [network options](#network-options) before replacing the default client.\n\nTo use a customized `OkHttpClient`:\n\n1. Replace your [`lithic-java` dependency](#installation) with `lithic-java-core`\n2. Copy `lithic-java-client-okhttp`\'s [`OkHttpClient`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/OkHttpClient.kt) class into your code and customize it\n3. Construct [`LithicClientImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt) or [`LithicClientAsyncImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), similarly to [`LithicOkHttpClient`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) or [`LithicOkHttpClientAsync`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt), using your customized client\n\n### Completely custom HTTP client\n\nTo use a completely custom HTTP client:\n\n1. Replace your [`lithic-java` dependency](#installation) with `lithic-java-core`\n2. Write a class that implements the [`HttpClient`](lithic-java-core/src/main/kotlin/com/lithic/api/core/http/HttpClient.kt) interface\n3. Construct [`LithicClientImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt) or [`LithicClientAsyncImpl`](lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), similarly to [`LithicOkHttpClient`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) or [`LithicOkHttpClientAsync`](lithic-java-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt), using your new client class\n\n## Undocumented API functionality\n\nThe SDK is typed for convenient usage of the documented API. However, it also supports working with undocumented or not yet supported parts of the API.\n\n### Parameters\n\nTo set undocumented parameters, call the `putAdditionalHeader`, `putAdditionalQueryParam`, or `putAdditionalBodyProperty` methods on any `Params` class:\n\n```java\nimport com.lithic.api.core.JsonValue;\nimport com.lithic.api.models.CardCreateParams;\n\nCardCreateParams params = CardCreateParams.builder()\n .putAdditionalHeader("Secret-Header", "42")\n .putAdditionalQueryParam("secret_query_param", "42")\n .putAdditionalBodyProperty("secretProperty", JsonValue.from("42"))\n .build();\n```\n\nThese can be accessed on the built object later using the `_additionalHeaders()`, `_additionalQueryParams()`, and `_additionalBodyProperties()` methods.\n\nTo set undocumented parameters on _nested_ headers, query params, or body classes, call the `putAdditionalProperty` method on the nested class:\n\n```java\nimport com.lithic.api.core.JsonValue;\nimport com.lithic.api.models.CardCreateParams;\nimport com.lithic.api.models.ShippingAddress;\n\nCardCreateParams params = CardCreateParams.builder()\n .shippingAddress(ShippingAddress.builder()\n .putAdditionalProperty("secretProperty", JsonValue.from("42"))\n .build())\n .build();\n```\n\nThese properties can be accessed on the nested built object later using the `_additionalProperties()` method.\n\nTo set a documented parameter or property to an undocumented or not yet supported _value_, pass a [`JsonValue`](lithic-java-core/src/main/kotlin/com/lithic/api/core/Values.kt) object to its setter:\n\n```java\nimport com.lithic.api.core.JsonValue;\nimport com.lithic.api.models.CardCreateParams;\n\nCardCreateParams params = CardCreateParams.builder()\n .type(JsonValue.from(42))\n .build();\n```\n\nThe most straightforward way to create a [`JsonValue`](lithic-java-core/src/main/kotlin/com/lithic/api/core/Values.kt) is using its `from(...)` method:\n\n```java\nimport com.lithic.api.core.JsonValue;\nimport java.util.List;\nimport java.util.Map;\n\n// Create primitive JSON values\nJsonValue nullValue = JsonValue.from(null);\nJsonValue booleanValue = JsonValue.from(true);\nJsonValue numberValue = JsonValue.from(42);\nJsonValue stringValue = JsonValue.from("Hello World!");\n\n// Create a JSON array value equivalent to `["Hello", "World"]`\nJsonValue arrayValue = JsonValue.from(List.of(\n "Hello", "World"\n));\n\n// Create a JSON object value equivalent to `{ "a": 1, "b": 2 }`\nJsonValue objectValue = JsonValue.from(Map.of(\n "a", 1,\n "b", 2\n));\n\n// Create an arbitrarily nested JSON equivalent to:\n// {\n// "a": [1, 2],\n// "b": [3, 4]\n// }\nJsonValue complexValue = JsonValue.from(Map.of(\n "a", List.of(\n 1, 2\n ),\n "b", List.of(\n 3, 4\n )\n));\n```\n\nNormally a `Builder` class\'s `build` method will throw [`IllegalStateException`](https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html) if any required parameter or property is unset.\n\nTo forcibly omit a required parameter or property, pass [`JsonMissing`](lithic-java-core/src/main/kotlin/com/lithic/api/core/Values.kt):\n\n```java\nimport com.lithic.api.core.JsonMissing;\nimport com.lithic.api.models.CardCreateParams;\n\nCardCreateParams params = CardCreateParams.builder()\n .type(JsonMissing.of())\n .build();\n```\n\n### Response properties\n\nTo access undocumented response properties, call the `_additionalProperties()` method:\n\n```java\nimport com.lithic.api.core.JsonValue;\nimport java.util.Map;\n\nMap additionalProperties = client.cards().create(params)._additionalProperties();\nJsonValue secretPropertyValue = additionalProperties.get("secretProperty");\n\nString result = secretPropertyValue.accept(new JsonValue.Visitor<>() {\n @Override\n public String visitNull() {\n return "It\'s null!";\n }\n\n @Override\n public String visitBoolean(boolean value) {\n return "It\'s a boolean!";\n }\n\n @Override\n public String visitNumber(Number value) {\n return "It\'s a number!";\n }\n\n // Other methods include `visitMissing`, `visitString`, `visitArray`, and `visitObject`\n // The default implementation of each unimplemented method delegates to `visitDefault`, which throws by default, but can also be overridden\n});\n```\n\nTo access a property\'s raw JSON value, which may be undocumented, call its `_` prefixed method:\n\n```java\nimport com.lithic.api.core.JsonField;\nimport com.lithic.api.models.CardCreateParams;\nimport java.util.Optional;\n\nJsonField type = client.cards().create(params)._type();\n\nif (type.isMissing()) {\n // The property is absent from the JSON response\n} else if (type.isNull()) {\n // The property was set to literal null\n} else {\n // Check if value was provided as a string\n // Other methods include `asNumber()`, `asBoolean()`, etc.\n Optional jsonString = type.asString();\n\n // Try to deserialize into a custom type\n MyClass myObject = type.asUnknown().orElseThrow().convert(MyClass.class);\n}\n```\n\n### Response validation\n\nIn rare cases, the API may return a response that doesn\'t match the expected type. For example, the SDK may expect a property to contain a `String`, but the API could return something else.\n\nBy default, the SDK will not throw an exception in this case. It will throw [`LithicInvalidDataException`](lithic-java-core/src/main/kotlin/com/lithic/api/errors/LithicInvalidDataException.kt) only if you directly access the property.\n\nIf you would prefer to check that the response is completely well-typed upfront, then either call `validate()`:\n\n```java\nimport com.lithic.api.models.Card;\n\nCard card = client.cards().create(params).validate();\n```\n\nOr configure the method call to validate the response using the `responseValidation` method:\n\n```java\nimport com.lithic.api.models.Card;\n\nCard card = client.cards().create(\n params, RequestOptions.builder().responseValidation(true).build()\n);\n```\n\nOr configure the default for all method calls at the client level:\n\n```java\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\n\nLithicClient client = LithicOkHttpClient.builder()\n .fromEnv()\n .responseValidation(true)\n .build();\n```\n\n## FAQ\n\n### Why don\'t you use plain `enum` classes?\n\nJava `enum` classes are not trivially [forwards compatible](https://www.stainless.com/blog/making-java-enums-forwards-compatible). Using them in the SDK could cause runtime exceptions if the API is updated to respond with a new enum value.\n\n### Why do you represent fields using `JsonField` instead of just plain `T`?\n\nUsing `JsonField` enables a few features:\n\n- Allowing usage of [undocumented API functionality](#undocumented-api-functionality)\n- Lazily [validating the API response against the expected shape](#response-validation)\n- Representing absent vs explicitly null values\n\n### Why don\'t you use [`data` classes](https://kotlinlang.org/docs/data-classes.html)?\n\nIt is not [backwards compatible to add new fields to a data class](https://kotlinlang.org/docs/api-guidelines-backward-compatibility.html#avoid-using-data-classes-in-your-api) and we don\'t want to introduce a breaking change every time we add a field to a class.\n\n### Why don\'t you use checked exceptions?\n\nChecked exceptions are widely considered a mistake in the Java programming language. In fact, they were omitted from Kotlin for this reason.\n\nChecked exceptions:\n\n- Are verbose to handle\n- Encourage error handling at the wrong level of abstraction, where nothing can be done about the error\n- Are tedious to propagate due to the [function coloring problem](https://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function)\n- Don\'t play well with lambdas (also due to the function coloring problem)\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n2. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/lithic-com/lithic-java/issues) with questions, bugs, or suggestions.\n',
+ '# Lithic Terraform Provider\n\nThe [Lithic Terraform provider](https://registry.terraform.io/providers/stainless-sdks/lithic/latest/docs) provides convenient access to\nthe [Lithic REST API](https://docs.lithic.com) from Terraform.\n\n\n\n## Requirements\n\nThis provider requires Terraform CLI 1.0 or later. You can [install it for your system](https://developer.hashicorp.com/terraform/install)\non Hashicorp\'s website.\n\n## Usage\n\nAdd the following to your `main.tf` file:\n\n\n\n```hcl\n# Declare the provider and version\nterraform {\n required_providers {\n SDK_ProviderTypeName = {\n source = "stainless-sdks/lithic"\n version = "~> 0.0.1"\n }\n }\n}\n\n# Initialize the provider\nprovider "lithic" {\n api_key = "My Lithic API Key" # or set LITHIC_API_KEY env variable\n webhook_secret = "My Webhook Secret" # or set LITHIC_WEBHOOK_SECRET env variable\n}\n\n# Configure a resource\nresource "lithic_event_subscription" "example_event_subscription" {\n url = "https://example.com"\n description = "description"\n disabled = true\n event_types = ["account_holder_document.updated"]\n}\n```\n\n\n\nInitialize your project by running `terraform init` in the directory.\n\nAdditional examples can be found in the [./examples](./examples) folder within this repository, and you can\nrefer to the full documentation on [the Terraform Registry](https://registry.terraform.io/providers/stainless-sdks/lithic/latest/docs).\n\n### Provider Options\nWhen you initialize the provider, the following options are supported. It is recommended to use environment variables for sensitive values like access tokens.\nIf an environment variable is provided, then the option does not need to be set in the terraform source.\n\n| Property | Environment variable | Required | Default value |\n| -------------- | ----------------------- | -------- | ------------- |\n| api_key | `LITHIC_API_KEY` | true | — |\n| webhook_secret | `LITHIC_WEBHOOK_SECRET` | false | — |\n\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n2. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/stainless-sdks/lithic-terraform/issues) with questions, bugs, or suggestions.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n',
},
{
- language: 'kotlin',
+ language: 'typescript',
content:
- '# Lithic Kotlin API Library\n\n\n[](https://central.sonatype.com/artifact/com.lithic.api/lithic-kotlin/0.0.1)\n[](https://javadoc.io/doc/com.lithic.api/lithic-kotlin/0.0.1)\n\n\nThe Lithic Kotlin SDK provides convenient access to the [Lithic REST API](https://docs.lithic.com) from applications written in Kotlin.\n\nThe Lithic Kotlin SDK is similar to the Lithic Java SDK but with minor differences that make it more ergonomic for use in Kotlin, such as nullable values instead of `Optional`, `Sequence` instead of `Stream`, and suspend functions instead of `CompletableFuture`.\n\n\n\n## MCP Server\n\nUse the Lithic MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=lithic-mcp&config=eyJuYW1lIjoibGl0aGljLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2xpdGhpYy5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LWxpdGhpYy1hcGkta2V5IjoiTXkgTGl0aGljIEFQSSBLZXkifX0)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22lithic-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Flithic.stlmcp.com%22%2C%22headers%22%3A%7B%22x-lithic-api-key%22%3A%22My%20Lithic%20API%20Key%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n\n\nThe REST API documentation can be found on [docs.lithic.com](https://docs.lithic.com). KDocs are available on [javadoc.io](https://javadoc.io/doc/com.lithic.api/lithic-kotlin/0.0.1).\n\n\n\n## Installation\n\n\n\n### Gradle\n\n~~~kotlin\nimplementation("com.lithic.api:lithic-kotlin:0.0.1")\n~~~\n\n### Maven\n\n~~~xml\n\n com.lithic.api\n lithic-kotlin\n 0.0.1\n\n~~~\n\n\n\n## Requirements\n\nThis library requires Java 8 or later.\n\n## Usage\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardCreateParams\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nval client: LithicClient = LithicOkHttpClient.fromEnv()\n\nval params: CardCreateParams = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build()\nval card: Card = client.cards().create(params)\n```\n\n## Client configuration\n\nConfigure the client using system properties or environment variables:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nval client: LithicClient = LithicOkHttpClient.fromEnv()\n```\n\nOr manually:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .apiKey("My Lithic API Key")\n .build()\n```\n\nOr using a combination of the two approaches:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\n\nval client: LithicClient = LithicOkHttpClient.builder()\n // Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n // Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\n .fromEnv()\n .apiKey("My Lithic API Key")\n .build()\n```\n\nSee this table for the available options:\n\n| Setter | System property | Environment variable | Required | Default value |\n| --------------- | ---------------------- | ----------------------- | -------- | -------------------------- |\n| `apiKey` | `lithic.apiKey` | `LITHIC_API_KEY` | true | - |\n| `webhookSecret` | `lithic.webhookSecret` | `LITHIC_WEBHOOK_SECRET` | false | - |\n| `baseUrl` | `lithic.baseUrl` | `LITHIC_BASE_URL` | true | `"https://api.lithic.com"` |\n\nSystem properties take precedence over environment variables.\n\n> [!TIP]\n> Don\'t create more than one client in the same application. Each client has a connection pool and\n> thread pools, which are more efficient to share between requests.\n\n### Modifying configuration\n\nTo temporarily use a modified client configuration, while reusing the same connection and thread pools, call `withOptions()` on any client or service:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\n\nval clientWithOptions: LithicClient = client.withOptions {\n it.baseUrl("https://example.com")\n it.maxRetries(42)\n}\n```\n\nThe `withOptions()` method does not affect the original client or service.\n\n## Requests and responses\n\nTo send a request to the Lithic API, build an instance of some `Params` class and pass it to the corresponding client method. When the response is received, it will be deserialized into an instance of a Kotlin class.\n\nFor example, `client.cards().create(...)` should be called with an instance of `CardCreateParams`, and it will return an instance of `Card`.\n\n## Immutability\n\nEach class in the SDK has an associated [builder](https://blogs.oracle.com/javamagazine/post/exploring-joshua-blochs-builder-design-pattern-in-java) or factory method for constructing it.\n\nEach class is [immutable](https://docs.oracle.com/javase/tutorial/essential/concurrency/immutable.html) once constructed. If the class has an associated builder, then it has a `toBuilder()` method, which can be used to convert it back to a builder for making a modified copy.\n\nBecause each class is immutable, builder modification will _never_ affect already built class instances.\n\n## Asynchronous execution\n\nThe default client is synchronous. To switch to asynchronous execution, call the `async()` method:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardCreateParams\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nval client: LithicClient = LithicOkHttpClient.fromEnv()\n\nval params: CardCreateParams = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build()\nval card: Card = client.async().cards().create(params)\n```\n\nOr create an asynchronous client from the beginning:\n\n```kotlin\nimport com.lithic.api.client.LithicClientAsync\nimport com.lithic.api.client.okhttp.LithicOkHttpClientAsync\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardCreateParams\n\n// Configures using the `lithic.apiKey`, `lithic.webhookSecret` and `lithic.baseUrl` system properties\n// Or configures using the `LITHIC_API_KEY`, `LITHIC_WEBHOOK_SECRET` and `LITHIC_BASE_URL` environment variables\nval client: LithicClientAsync = LithicOkHttpClientAsync.fromEnv()\n\nval params: CardCreateParams = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build()\nval card: Card = client.cards().create(params)\n```\n\nThe asynchronous client supports the same options as the synchronous one, except most methods are [suspending](https://kotlinlang.org/docs/coroutines-guide.html).\n\n\n\n\n\n\n\n## Raw responses\n\nThe SDK defines methods that deserialize responses into instances of Kotlin classes. However, these methods don\'t provide access to the response headers, status code, or the raw response body.\n\nTo access this data, prefix any HTTP method call on a client or service with `withRawResponse()`:\n\n```kotlin\nimport com.lithic.api.core.http.Headers\nimport com.lithic.api.core.http.HttpResponseFor\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardCreateParams\n\nval params: CardCreateParams = CardCreateParams.builder()\n .type(CardCreateParams.Type.SINGLE_USE)\n .build()\nval card: HttpResponseFor = client.cards().withRawResponse().create(params)\n\nval statusCode: Int = card.statusCode()\nval headers: Headers = card.headers()\n```\n\nYou can still deserialize the response into an instance of a Kotlin class if needed:\n\n```kotlin\nimport com.lithic.api.models.Card\n\nval parsedCard: Card = card.parse()\n```\n\n## Error handling\n\nThe SDK throws custom unchecked exception types:\n\n- [`LithicServiceException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/LithicServiceException.kt): Base class for HTTP errors. See this table for which exception subclass is thrown for each HTTP status code:\n\n | Status | Exception |\n | ------ | -------------------------------------------------- |\n | 400 | [`BadRequestException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/BadRequestException.kt) |\n | 401 | [`UnauthorizedException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/UnauthorizedException.kt) |\n | 403 | [`PermissionDeniedException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/PermissionDeniedException.kt) |\n | 404 | [`NotFoundException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/NotFoundException.kt) |\n | 422 | [`UnprocessableEntityException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/UnprocessableEntityException.kt) |\n | 429 | [`RateLimitException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/RateLimitException.kt) |\n | 5xx | [`InternalServerException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/InternalServerException.kt) |\n | others | [`UnexpectedStatusCodeException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/UnexpectedStatusCodeException.kt) |\n\n- [`LithicIoException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/LithicIoException.kt): I/O networking errors.\n\n- [`LithicRetryableException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/LithicRetryableException.kt): Generic error indicating a failure that could be retried by the client.\n\n- [`LithicInvalidDataException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/LithicInvalidDataException.kt): Failure to interpret successfully parsed data. For example, when accessing a property that\'s supposed to be required, but the API unexpectedly omitted it from the response.\n\n- [`LithicException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/LithicException.kt): Base class for all exceptions. Most errors will result in one of the previously mentioned ones, but completely generic errors may be thrown using the base class.\n\n## Pagination\n\nThe SDK defines methods that return a paginated lists of results. It provides convenient ways to access the results either one page at a time or item-by-item across all pages.\n\n### Auto-pagination\n\nTo iterate through all results across all pages, use the `autoPager()` method, which automatically fetches more pages as needed.\n\nWhen using the synchronous client, the method returns a [`Sequence`](https://kotlinlang.org/docs/sequences.html)\n\n```kotlin\nimport com.lithic.api.models.CardListPage\n\nval page: CardListPage = client.cards().list()\npage.autoPager()\n .take(50)\n .forEach { card -> println(card) }\n```\n\nWhen using the asynchronous client, the method returns a [`Flow`](https://kotlinlang.org/docs/flow.html):\n\n```kotlin\nimport com.lithic.api.models.CardListPageAsync\n\nval page: CardListPageAsync = client.async().cards().list()\npage.autoPager()\n .take(50)\n .forEach { card -> println(card) }\n```\n\n### Manual pagination\n\nTo access individual page items and manually request the next page, use the `items()`,\n`hasNextPage()`, and `nextPage()` methods:\n\n```kotlin\nimport com.lithic.api.models.CardListPage\nimport com.lithic.api.models.NonPciCard\n\nval page: CardListPage = client.cards().list()\nwhile (true) {\n for (card in page.items()) {\n println(card)\n }\n\n if (!page.hasNextPage()) {\n break\n }\n\n page = page.nextPage()\n}\n```\n\n## Logging\n\nThe SDK uses the standard [OkHttp logging interceptor](https://github.com/square/okhttp/tree/master/okhttp-logging-interceptor).\n\nEnable logging by setting the `LITHIC_LOG` environment variable to `info`:\n\n```sh\nexport LITHIC_LOG=info\n```\n\nOr to `debug` for more verbose logging:\n\n```sh\nexport LITHIC_LOG=debug\n```\n\n## ProGuard and R8\n\nAlthough the SDK uses reflection, it is still usable with [ProGuard](https://github.com/Guardsquare/proguard) and [R8](https://developer.android.com/topic/performance/app-optimization/enable-app-optimization) because `lithic-kotlin-core` is published with a [configuration file](lithic-kotlin-core/src/main/resources/META-INF/proguard/lithic-kotlin-core.pro) containing [keep rules](https://www.guardsquare.com/manual/configuration/usage).\n\nProGuard and R8 should automatically detect and use the published rules, but you can also manually copy the keep rules if necessary.\n\n\n\n\n\n## Jackson\n\nThe SDK depends on [Jackson](https://github.com/FasterXML/jackson) for JSON serialization/deserialization. It is compatible with version 2.13.4 or higher, but depends on version 2.18.2 by default.\n\nThe SDK throws an exception if it detects an incompatible Jackson version at runtime (e.g. if the default version was overridden in your Maven or Gradle config).\n\nIf the SDK threw an exception, but you\'re _certain_ the version is compatible, then disable the version check using the `checkJacksonVersionCompatibility` on [`LithicOkHttpClient`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) or [`LithicOkHttpClientAsync`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt).\n\n> [!CAUTION]\n> We make no guarantee that the SDK works correctly when the Jackson version check is disabled.\n\nAlso note that there are bugs in older Jackson versions that can affect the SDK. We don\'t work around all Jackson bugs ([example](https://github.com/FasterXML/jackson-databind/issues/3240)) and expect users to upgrade Jackson for those instead.\n\n## Network options\n\n### Retries\n\nThe SDK automatically retries 2 times by default, with a short exponential backoff between requests.\n\nOnly the following error types are retried:\n- Connection errors (for example, due to a network connectivity problem)\n- 408 Request Timeout\n- 409 Conflict\n- 429 Rate Limit\n- 5xx Internal\n\nThe API may also explicitly instruct the SDK to retry or not retry a request.\n\nTo set a custom number of retries, configure the client using the `maxRetries` method:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .fromEnv()\n .maxRetries(4)\n .build()\n```\n\n### Timeouts\n\nRequests time out after 1 minute by default.\n\nTo set a custom timeout, configure the method call using the `timeout` method:\n\n```kotlin\nimport com.lithic.api.models.CardListPage\n\nval page: CardListPage = client.cards().list(RequestOptions.builder().timeout(Duration.ofSeconds(30)).build())\n```\n\nOr configure the default for all method calls at the client level:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport java.time.Duration\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .fromEnv()\n .timeout(Duration.ofSeconds(30))\n .build()\n```\n\n### Proxies\n\nTo route requests through a proxy, configure the client using the `proxy` method:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport java.net.InetSocketAddress\nimport java.net.Proxy\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .fromEnv()\n .proxy(Proxy(\n Proxy.Type.HTTP, InetSocketAddress(\n "https://example.com", 8080\n )\n ))\n .build()\n```\n\n### Connection pooling\n\nTo customize the underlying OkHttp connection pool, configure the client using the `maxIdleConnections` and `keepAliveDuration` methods:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport java.time.Duration\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .fromEnv()\n // If `maxIdleConnections` is set, then `keepAliveDuration` must be set, and vice versa.\n .maxIdleConnections(10)\n .keepAliveDuration(Duration.ofMinutes(2))\n .build()\n```\n\nIf both options are unset, OkHttp\'s default connection pool settings are used.\n\n### HTTPS\n\n> [!NOTE]\n> Most applications should not call these methods, and instead use the system defaults. The defaults include\n> special optimizations that can be lost if the implementations are modified.\n\nTo configure how HTTPS connections are secured, configure the client using the `sslSocketFactory`, `trustManager`, and `hostnameVerifier` methods:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .fromEnv()\n // If `sslSocketFactory` is set, then `trustManager` must be set, and vice versa.\n .sslSocketFactory(yourSSLSocketFactory)\n .trustManager(yourTrustManager)\n .hostnameVerifier(yourHostnameVerifier)\n .build()\n```\n\n### Environments\n\nThe SDK sends requests to the production by default. To send requests to a different environment, configure the client like so:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .fromEnv()\n .sandbox()\n .build()\n```\n\n### Custom HTTP client\n\nThe SDK consists of three artifacts:\n- `lithic-kotlin-core`\n - Contains core SDK logic\n - Does not depend on [OkHttp](https://square.github.io/okhttp)\n - Exposes [`LithicClient`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClient.kt), [`LithicClientAsync`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientAsync.kt), [`LithicClientImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt), and [`LithicClientAsyncImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), all of which can work with any HTTP client\n- `lithic-kotlin-client-okhttp`\n - Depends on [OkHttp](https://square.github.io/okhttp)\n - Exposes [`LithicOkHttpClient`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) and [`LithicOkHttpClientAsync`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt), which provide a way to construct [`LithicClientImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt) and [`LithicClientAsyncImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), respectively, using OkHttp\n- `lithic-kotlin`\n - Depends on and exposes the APIs of both `lithic-kotlin-core` and `lithic-kotlin-client-okhttp`\n - Does not have its own logic\n\nThis structure allows replacing the SDK\'s default HTTP client without pulling in unnecessary dependencies.\n\n#### Customized [`OkHttpClient`](https://square.github.io/okhttp/3.x/okhttp/okhttp3/OkHttpClient.html)\n\n> [!TIP]\n> Try the available [network options](#network-options) before replacing the default client.\n\nTo use a customized `OkHttpClient`:\n\n1. Replace your [`lithic-kotlin` dependency](#installation) with `lithic-kotlin-core`\n2. Copy `lithic-kotlin-client-okhttp`\'s [`OkHttpClient`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/OkHttpClient.kt) class into your code and customize it\n3. Construct [`LithicClientImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt) or [`LithicClientAsyncImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), similarly to [`LithicOkHttpClient`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) or [`LithicOkHttpClientAsync`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt), using your customized client\n\n### Completely custom HTTP client\n\nTo use a completely custom HTTP client:\n\n1. Replace your [`lithic-kotlin` dependency](#installation) with `lithic-kotlin-core`\n2. Write a class that implements the [`HttpClient`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/core/http/HttpClient.kt) interface\n3. Construct [`LithicClientImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt) or [`LithicClientAsyncImpl`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt), similarly to [`LithicOkHttpClient`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClient.kt) or [`LithicOkHttpClientAsync`](lithic-kotlin-client-okhttp/src/main/kotlin/com/lithic/api/client/okhttp/LithicOkHttpClientAsync.kt), using your new client class\n\n## Undocumented API functionality\n\nThe SDK is typed for convenient usage of the documented API. However, it also supports working with undocumented or not yet supported parts of the API.\n\n### Parameters\n\nTo set undocumented parameters, call the `putAdditionalHeader`, `putAdditionalQueryParam`, or `putAdditionalBodyProperty` methods on any `Params` class:\n\n```kotlin\nimport com.lithic.api.core.JsonValue\nimport com.lithic.api.models.CardCreateParams\n\nval params: CardCreateParams = CardCreateParams.builder()\n .putAdditionalHeader("Secret-Header", "42")\n .putAdditionalQueryParam("secret_query_param", "42")\n .putAdditionalBodyProperty("secretProperty", JsonValue.from("42"))\n .build()\n```\n\nThese can be accessed on the built object later using the `_additionalHeaders()`, `_additionalQueryParams()`, and `_additionalBodyProperties()` methods.\n\nTo set undocumented parameters on _nested_ headers, query params, or body classes, call the `putAdditionalProperty` method on the nested class:\n\n```kotlin\nimport com.lithic.api.core.JsonValue\nimport com.lithic.api.models.CardCreateParams\nimport com.lithic.api.models.ShippingAddress\n\nval params: CardCreateParams = CardCreateParams.builder()\n .shippingAddress(ShippingAddress.builder()\n .putAdditionalProperty("secretProperty", JsonValue.from("42"))\n .build())\n .build()\n```\n\nThese properties can be accessed on the nested built object later using the `_additionalProperties()` method.\n\nTo set a documented parameter or property to an undocumented or not yet supported _value_, pass a [`JsonValue`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/core/Values.kt) object to its setter:\n\n```kotlin\nimport com.lithic.api.core.JsonValue\nimport com.lithic.api.models.CardCreateParams\n\nval params: CardCreateParams = CardCreateParams.builder()\n .type(JsonValue.from(42))\n .build()\n```\n\nThe most straightforward way to create a [`JsonValue`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/core/Values.kt) is using its `from(...)` method:\n\n```kotlin\nimport com.lithic.api.core.JsonValue\n\n// Create primitive JSON values\nval nullValue: JsonValue = JsonValue.from(null)\nval booleanValue: JsonValue = JsonValue.from(true)\nval numberValue: JsonValue = JsonValue.from(42)\nval stringValue: JsonValue = JsonValue.from("Hello World!")\n\n// Create a JSON array value equivalent to `["Hello", "World"]`\nval arrayValue: JsonValue = JsonValue.from(listOf(\n "Hello", "World"\n))\n\n// Create a JSON object value equivalent to `{ "a": 1, "b": 2 }`\nval objectValue: JsonValue = JsonValue.from(mapOf(\n "a" to 1, "b" to 2\n))\n\n// Create an arbitrarily nested JSON equivalent to:\n// {\n// "a": [1, 2],\n// "b": [3, 4]\n// }\nval complexValue: JsonValue = JsonValue.from(mapOf(\n "a" to listOf(\n 1, 2\n ), "b" to listOf(\n 3, 4\n )\n))\n```\n\nNormally a `Builder` class\'s `build` method will throw [`IllegalStateException`](https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html) if any required parameter or property is unset.\n\nTo forcibly omit a required parameter or property, pass [`JsonMissing`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/core/Values.kt):\n\n```kotlin\nimport com.lithic.api.core.JsonMissing\nimport com.lithic.api.models.CardCreateParams\n\nval params: CardCreateParams = CardCreateParams.builder()\n .type(JsonMissing.of())\n .build()\n```\n\n### Response properties\n\nTo access undocumented response properties, call the `_additionalProperties()` method:\n\n```kotlin\nimport com.lithic.api.core.JsonBoolean\nimport com.lithic.api.core.JsonNull\nimport com.lithic.api.core.JsonNumber\nimport com.lithic.api.core.JsonValue\n\nval additionalProperties: Map = client.cards().create(params)._additionalProperties()\nval secretPropertyValue: JsonValue = additionalProperties.get("secretProperty")\n\nval result = when (secretPropertyValue) {\n is JsonNull -> "It\'s null!"\n is JsonBoolean -> "It\'s a boolean!"\n is JsonNumber -> "It\'s a number!"\n // Other types include `JsonMissing`, `JsonString`, `JsonArray`, and `JsonObject`\n else -> "It\'s something else!"\n}\n```\n\nTo access a property\'s raw JSON value, which may be undocumented, call its `_` prefixed method:\n\n```kotlin\nimport com.lithic.api.core.JsonField\nimport com.lithic.api.models.CardCreateParams\n\nval type: JsonField = client.cards().create(params)._type()\n\nif (type.isMissing()) {\n // The property is absent from the JSON response\n} else if (type.isNull()) {\n // The property was set to literal null\n} else {\n // Check if value was provided as a string\n // Other methods include `asNumber()`, `asBoolean()`, etc.\n val jsonString: String? = type.asString();\n\n // Try to deserialize into a custom type\n val myObject: MyClass = type.asUnknown()!!.convert(MyClass::class.java)\n}\n```\n\n### Response validation\n\nIn rare cases, the API may return a response that doesn\'t match the expected type. For example, the SDK may expect a property to contain a `String`, but the API could return something else.\n\nBy default, the SDK will not throw an exception in this case. It will throw [`LithicInvalidDataException`](lithic-kotlin-core/src/main/kotlin/com/lithic/api/errors/LithicInvalidDataException.kt) only if you directly access the property.\n\nIf you would prefer to check that the response is completely well-typed upfront, then either call `validate()`:\n\n```kotlin\nimport com.lithic.api.models.Card\n\nval card: Card = client.cards().create(params).validate()\n```\n\nOr configure the method call to validate the response using the `responseValidation` method:\n\n```kotlin\nimport com.lithic.api.models.Card\n\nval card: Card = client.cards().create(\n params, RequestOptions.builder().responseValidation(true).build()\n)\n```\n\nOr configure the default for all method calls at the client level:\n\n```kotlin\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\n\nval client: LithicClient = LithicOkHttpClient.builder()\n .fromEnv()\n .responseValidation(true)\n .build()\n```\n\n## FAQ\n\n### Why don\'t you use plain `enum` classes?\n\nKotlin `enum` classes are not trivially [forwards compatible](https://www.stainless.com/blog/making-java-enums-forwards-compatible). Using them in the SDK could cause runtime exceptions if the API is updated to respond with a new enum value.\n\n### Why do you represent fields using `JsonField` instead of just plain `T`?\n\nUsing `JsonField` enables a few features:\n\n- Allowing usage of [undocumented API functionality](#undocumented-api-functionality)\n- Lazily [validating the API response against the expected shape](#response-validation)\n- Representing absent vs explicitly null values\n\n### Why don\'t you use [`data` classes](https://kotlinlang.org/docs/data-classes.html)?\n\nIt is not [backwards compatible to add new fields to a data class](https://kotlinlang.org/docs/api-guidelines-backward-compatibility.html#avoid-using-data-classes-in-your-api) and we don\'t want to introduce a breaking change every time we add a field to a class.\n\n### Why don\'t you use checked exceptions?\n\nChecked exceptions are widely considered a mistake in the Java programming language. In fact, they were omitted from Kotlin for this reason.\n\nChecked exceptions:\n\n- Are verbose to handle\n- Encourage error handling at the wrong level of abstraction, where nothing can be done about the error\n- Are tedious to propagate due to the [function coloring problem](https://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function)\n- Don\'t play well with lambdas (also due to the function coloring problem)\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n2. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/lithic-com/lithic-kotlin/issues) with questions, bugs, or suggestions.\n',
+ "# Lithic TypeScript API Library\n\n[)](https://npmjs.org/package/lithic) \n\nThis library provides convenient access to the Lithic REST API from server-side TypeScript or JavaScript.\n\n\n\nThe REST API documentation can be found on [docs.lithic.com](https://docs.lithic.com). The full API of this library can be found in [api.md](api.md).\n\n\n\n## MCP Server\n\nUse the Lithic MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=lithic-mcp&config=eyJuYW1lIjoibGl0aGljLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2xpdGhpYy5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LWxpdGhpYy1hcGkta2V5IjoiTXkgTGl0aGljIEFQSSBLZXkifX0)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22lithic-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Flithic.stlmcp.com%22%2C%22headers%22%3A%7B%22x-lithic-api-key%22%3A%22My%20Lithic%20API%20Key%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n## Installation\n\n```sh\nnpm install lithic\n```\n\n\n\n## Usage\n\nThe full API of this library can be found in [api.md](api.md).\n\n\n```js\nimport Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n environment: 'sandbox', // defaults to 'production'\n});\n\nconst card = await client.cards.create({ type: 'SINGLE_USE' });\n\nconsole.log(card.token);\n```\n\n\n\n### Request & Response types\n\nThis library includes TypeScript definitions for all request params and response fields. You may import and use them like so:\n\n\n```ts\nimport Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n environment: 'sandbox', // defaults to 'production'\n});\n\nconst params: Lithic.CardCreateParams = { type: 'SINGLE_USE' };\nconst card: Lithic.Card = await client.cards.create(params);\n```\n\nDocumentation for each method, request param, and response field are available in docstrings and will appear on hover in most modern editors.\n\n\n\n\n\n## Handling errors\n\nWhen the library is unable to connect to the API,\nor if the API returns a non-success status code (i.e., 4xx or 5xx response),\na subclass of `APIError` will be thrown:\n\n\n```ts\nconst card = await client.cards.create({ type: 'MERCHANT_LOCKED' }).catch(async (err) => {\n if (err instanceof Lithic.APIError) {\n console.log(err.status); // 400\n console.log(err.name); // BadRequestError\n console.log(err.error?.message); // Invalid parameter(s): type\n console.log(err.error?.debugging_request_id); // 94d5e915-xxxx-4cee-a4f5-2xd6ebd279ac\n console.log(err.headers); // {server: 'nginx', ...}\n } else {\n throw err;\n }\n});\n```\n\nError codes are as follows:\n\n| Status Code | Error Type |\n| ----------- | -------------------------- |\n| 400 | `BadRequestError` |\n| 401 | `AuthenticationError` |\n| 403 | `PermissionDeniedError` |\n| 404 | `NotFoundError` |\n| 422 | `UnprocessableEntityError` |\n| 429 | `RateLimitError` |\n| >=500 | `InternalServerError` |\n| N/A | `APIConnectionError` |\n\n### Retries\n\nCertain errors will be automatically retried 2 times by default, with a short exponential backoff.\nConnection errors (for example, due to a network connectivity problem), 408 Request Timeout, 409 Conflict,\n429 Rate Limit, and >=500 Internal errors will all be retried by default.\n\nYou can use the `maxRetries` option to configure or disable this:\n\n\n```js\n// Configure the default for all requests:\nconst client = new Lithic({\n maxRetries: 0, // default is 2\n});\n\n// Or, configure per-request:\nawait client.cards.list({ page_size: 10 }, {\n maxRetries: 5,\n});\n```\n\n### Timeouts\n\nRequests time out after 1 minute by default. You can configure this with a `timeout` option:\n\n\n```ts\n// Configure the default for all requests:\nconst client = new Lithic({\n timeout: 20 * 1000, // 20 seconds (default is 1 minute)\n});\n\n// Override per-request:\nawait client.cards.list({ page_size: 10 }, {\n timeout: 5 * 1000,\n});\n```\n\nOn timeout, an `APIConnectionTimeoutError` is thrown.\n\nNote that requests which time out will be [retried twice by default](#retries).\n\n## Auto-pagination\n\nList methods in the Lithic API are paginated.\nYou can use the `for await … of` syntax to iterate through items across all pages:\n\n```ts\nasync function fetchAllNonPCICards(params) {\n const allNonPCICards = [];\n // Automatically fetches more pages as needed.\n for await (const nonPCICard of client.cards.list()) {\n allNonPCICards.push(nonPCICard);\n }\n return allNonPCICards;\n}\n```\n\nAlternatively, you can request a single page at a time:\n\n```ts\nlet page = await client.cards.list();\nfor (const nonPCICard of page.data) {\n console.log(nonPCICard);\n}\n\n// Convenience methods are provided for manually paginating:\nwhile (page.hasNextPage()) {\n page = await page.getNextPage();\n // ...\n}\n```\n\n\n\n## Advanced Usage\n\n### Accessing raw Response data (e.g., headers)\n\nThe \"raw\" `Response` returned by `fetch()` can be accessed through the `.asResponse()` method on the `APIPromise` type that all methods return.\nThis method returns as soon as the headers for a successful response are received and does not consume the response body, so you are free to write custom parsing or streaming logic.\n\nYou can also use the `.withResponse()` method to get the raw `Response` along with the parsed data.\nUnlike `.asResponse()` this method consumes the body, returning once it is parsed.\n\n\n```ts\nconst client = new Lithic();\n\nconst response = await client.cards.create({ type: 'SINGLE_USE' }).asResponse();\nconsole.log(response.headers.get('X-My-Header'));\nconsole.log(response.statusText); // access the underlying Response object\n\nconst { data: card, response: raw } = await client.cards\n .create({ type: 'SINGLE_USE' })\n .withResponse();\nconsole.log(raw.headers.get('X-My-Header'));\nconsole.log(card.token);\n```\n\n### Logging\n\n> [!IMPORTANT]\n> All log messages are intended for debugging only. The format and content of log messages\n> may change between releases.\n\n#### Log levels\n\nThe log level can be configured in two ways:\n\n1. Via the `LITHIC_LOG` environment variable\n2. Using the `logLevel` client option (overrides the environment variable if set)\n\n```ts\nimport Lithic from 'lithic';\n\nconst client = new Lithic({\n logLevel: 'debug', // Show all log messages\n});\n```\n\nAvailable log levels, from most to least verbose:\n\n- `'debug'` - Show debug messages, info, warnings, and errors\n- `'info'` - Show info messages, warnings, and errors\n- `'warn'` - Show warnings and errors (default)\n- `'error'` - Show only errors\n- `'off'` - Disable all logging\n\nAt the `'debug'` level, all HTTP requests and responses are logged, including headers and bodies.\nSome authentication-related headers are redacted, but sensitive data in request and response bodies\nmay still be visible.\n\n#### Custom logger\n\nBy default, this library logs to `globalThis.console`. You can also provide a custom logger.\nMost logging libraries are supported, including [pino](https://www.npmjs.com/package/pino), [winston](https://www.npmjs.com/package/winston), [bunyan](https://www.npmjs.com/package/bunyan), [consola](https://www.npmjs.com/package/consola), [signale](https://www.npmjs.com/package/signale), and [@std/log](https://jsr.io/@std/log). If your logger doesn't work, please open an issue.\n\nWhen providing a custom logger, the `logLevel` option still controls which messages are emitted, messages\nbelow the configured level will not be sent to your logger.\n\n```ts\nimport Lithic from 'lithic';\nimport pino from 'pino';\n\nconst logger = pino();\n\nconst client = new Lithic({\n logger: logger.child({ name: 'Lithic' }),\n logLevel: 'debug', // Send all messages to pino, allowing it to filter\n});\n```\n\n### Making custom/undocumented requests\n\nThis library is typed for convenient access to the documented API. If you need to access undocumented\nendpoints, params, or response properties, the library can still be used.\n\n#### Undocumented endpoints\n\nTo make requests to undocumented endpoints, you can use `client.get`, `client.post`, and other HTTP verbs.\nOptions on the client, such as retries, will be respected when making these requests.\n\n```ts\nawait client.post('/some/path', {\n body: { some_prop: 'foo' },\n query: { some_query_arg: 'bar' },\n});\n```\n\n#### Undocumented request params\n\nTo make requests using undocumented parameters, you may use `// @ts-expect-error` on the undocumented\nparameter. This library doesn't validate at runtime that the request matches the type, so any extra values you\nsend will be sent as-is.\n\n```ts\nclient.cards.create({\n // ...\n // @ts-expect-error baz is not yet public\n baz: 'undocumented option',\n});\n```\n\nFor requests with the `GET` verb, any extra params will be in the query, all other requests will send the\nextra param in the body.\n\nIf you want to explicitly send an extra argument, you can do so with the `query`, `body`, and `headers` request\noptions.\n\n#### Undocumented response properties\n\nTo access undocumented response properties, you may access the response object with `// @ts-expect-error` on\nthe response object, or cast the response object to the requisite type. Like the request params, we do not\nvalidate or strip extra properties from the response from the API.\n\n### Customizing the fetch client\n\nBy default, this library expects a global `fetch` function is defined.\n\nIf you want to use a different `fetch` function, you can either polyfill the global:\n\n```ts\nimport fetch from 'my-fetch';\n\nglobalThis.fetch = fetch;\n```\n\nOr pass it to the client:\n\n```ts\nimport Lithic from 'lithic';\nimport fetch from 'my-fetch';\n\nconst client = new Lithic({ fetch });\n```\n\n### Fetch options\n\nIf you want to set custom `fetch` options without overriding the `fetch` function, you can provide a `fetchOptions` object when instantiating the client or making a request. (Request-specific options override client options.)\n\n```ts\nimport Lithic from 'lithic';\n\nconst client = new Lithic({\n fetchOptions: {\n // `RequestInit` options\n },\n});\n```\n\n#### Configuring proxies\n\nTo modify proxy behavior, you can provide custom `fetchOptions` that add runtime-specific proxy\noptions to requests:\n\n
**Node** [[docs](https://github.com/nodejs/undici/blob/main/docs/docs/api/ProxyAgent.md#example---proxyagent-with-fetch)]\n\n```ts\nimport Lithic from 'lithic';\nimport * as undici from 'undici';\n\nconst proxyAgent = new undici.ProxyAgent('http://localhost:8888');\nconst client = new Lithic({\n fetchOptions: {\n dispatcher: proxyAgent,\n },\n});\n```\n\n
**Bun** [[docs](https://bun.sh/guides/http/proxy)]\n\n```ts\nimport Lithic from 'lithic';\n\nconst client = new Lithic({\n fetchOptions: {\n proxy: 'http://localhost:8888',\n },\n});\n```\n\n
**Deno** [[docs](https://docs.deno.com/api/deno/~/Deno.createHttpClient)]\n\n```ts\nimport Lithic from 'npm:lithic';\n\nconst httpClient = Deno.createHttpClient({ proxy: { url: 'http://localhost:8888' } });\nconst client = new Lithic({\n fetchOptions: {\n client: httpClient,\n },\n});\n```\n\n## Frequently Asked Questions\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes that only affect static types, without breaking runtime behavior.\n2. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n3. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/lithic-com/lithic-node/issues) with questions, bugs, or suggestions.\n\n## Requirements\n\nTypeScript >= 4.9 is supported.\n\nThe following runtimes are supported:\n\n- Web browsers (Up-to-date Chrome, Firefox, Safari, Edge, and more)\n- Node.js 20 LTS or later ([non-EOL](https://endoflife.date/nodejs)) versions.\n- Deno v1.28.0 or higher.\n- Bun 1.0 or later.\n- Cloudflare Workers.\n- Vercel Edge Runtime.\n- Jest 28 or greater with the `\"node\"` environment (`\"jsdom\"` is not supported at this time).\n- Nitro v2.6 or greater.\n\nNote that React Native is not supported at this time.\n\nIf you are interested in other runtime environments, please open or upvote an issue on GitHub.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n",
},
];
From a5f9f614cd26310cbd7a098c91169dc52552c4c9 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 22 Apr 2026 13:58:17 +0000
Subject: [PATCH 084/164] chore(internal): more robust bootstrap script
---
scripts/bootstrap | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/bootstrap b/scripts/bootstrap
index a8b69ff3..2e315f53 100755
--- a/scripts/bootstrap
+++ b/scripts/bootstrap
@@ -4,7 +4,7 @@ set -e
cd "$(dirname "$0")/.."
-if [ -f "Brewfile" ] && [ "$(uname -s)" = "Darwin" ] && [ "$SKIP_BREW" != "1" ] && [ -t 0 ]; then
+if [ -f "Brewfile" ] && [ "$(uname -s)" = "Darwin" ] && [ "${SKIP_BREW:-}" != "1" ] && [ -t 0 ]; then
brew bundle check >/dev/null 2>&1 || {
echo -n "==> Install Homebrew dependencies? (y/N): "
read -r response
From d05baaa85001cf2600596afb61732aa81a4b22ec Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Fri, 24 Apr 2026 13:31:18 +0000
Subject: [PATCH 085/164] chore: restructure docs search code
---
packages/mcp-server/src/local-docs-search.ts | 4288 +++++++++---------
1 file changed, 2144 insertions(+), 2144 deletions(-)
diff --git a/packages/mcp-server/src/local-docs-search.ts b/packages/mcp-server/src/local-docs-search.ts
index 8efb6988..46f02084 100644
--- a/packages/mcp-server/src/local-docs-search.ts
+++ b/packages/mcp-server/src/local-docs-search.ts
@@ -62,13 +62,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## api_status\n\n`client.apiStatus(): { message?: string; }`\n\n**get** `/v1/status`\n\nStatus of api\n\n### Returns\n\n- `{ message?: string; }`\n\n - `message?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst apiStatus = await client.apiStatus();\n\nconsole.log(apiStatus);\n```",
perLanguage: {
- go: {
- method: 'client.APIStatus',
+ typescript: {
+ method: 'client.apiStatus',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tapiStatus, err := client.APIStatus(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", apiStatus.Message)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst apiStatus = await client.apiStatus();\n\nconsole.log(apiStatus.message);",
},
- http: {
- example: 'curl https://api.lithic.com/v1/status \\\n -H "Authorization: $LITHIC_API_KEY"',
+ python: {
+ method: 'api_status',
+ example:
+ 'from lithic import Lithic\n\nclient = Lithic()\napi_status = client.api_status()\nprint(api_status.message)',
},
java: {
method: 'apiStatus',
@@ -80,20 +82,18 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ApiStatus\nimport com.lithic.api.models.ClientApiStatusParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val apiStatus: ApiStatus = client.apiStatus()\n}',
},
- python: {
- method: 'api_status',
+ go: {
+ method: 'client.APIStatus',
example:
- 'from lithic import Lithic\n\nclient = Lithic()\napi_status = client.api_status()\nprint(api_status.message)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tapiStatus, err := client.APIStatus(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", apiStatus.Message)\n}\n',
},
ruby: {
method: 'api_status',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\napi_status = lithic.api_status\n\nputs(api_status)',
},
- typescript: {
- method: 'client.apiStatus',
- example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst apiStatus = await client.apiStatus();\n\nconsole.log(apiStatus.message);",
+ http: {
+ example: 'curl https://api.lithic.com/v1/status \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -117,13 +117,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.accounts.list(begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; created: string; spend_limit: object; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: object; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: object; }`\n\n**get** `/v1/accounts`\n\nList account configurations.\n\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; created: string; spend_limit: { daily: number; lifetime: number; monthly: number; }; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; }`\n\n - `token: string`\n - `created: string`\n - `spend_limit: { daily: number; lifetime: number; monthly: number; }`\n - `state: 'ACTIVE' | 'PAUSED' | 'CLOSED'`\n - `account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }`\n - `auth_rule_tokens?: string[]`\n - `cardholder_currency?: string`\n - `comment?: string`\n - `substatus?: string`\n - `verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const account of client.accounts.list()) {\n console.log(account);\n}\n```",
perLanguage: {
- go: {
- method: 'client.Accounts.List',
+ typescript: {
+ method: 'client.accounts.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Accounts.List(context.TODO(), lithic.AccountListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const account of client.accounts.list()) {\n console.log(account.token);\n}",
},
- http: {
- example: 'curl https://api.lithic.com/v1/accounts \\\n -H "Authorization: $LITHIC_API_KEY"',
+ python: {
+ method: 'accounts.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.accounts.list()\npage = page.data[0]\nprint(page.token)',
},
java: {
method: 'accounts().list',
@@ -135,20 +137,18 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountListPage\nimport com.lithic.api.models.AccountListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: AccountListPage = client.accounts().list()\n}',
},
- python: {
- method: 'accounts.list',
+ go: {
+ method: 'client.Accounts.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.accounts.list()\npage = page.data[0]\nprint(page.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Accounts.List(context.TODO(), lithic.AccountListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'accounts.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.accounts.list\n\nputs(page)',
},
- typescript: {
- method: 'client.accounts.list',
- example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const account of client.accounts.list()) {\n console.log(account.token);\n}",
+ http: {
+ example: 'curl https://api.lithic.com/v1/accounts \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -166,14 +166,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.accounts.retrieve(account_token: string): { token: string; created: string; spend_limit: object; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: object; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: object; }`\n\n**get** `/v1/accounts/{account_token}`\n\nGet account configuration such as spend limits.\n\n### Parameters\n\n- `account_token: string`\n\n### Returns\n\n- `{ token: string; created: string; spend_limit: { daily: number; lifetime: number; monthly: number; }; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; }`\n\n - `token: string`\n - `created: string`\n - `spend_limit: { daily: number; lifetime: number; monthly: number; }`\n - `state: 'ACTIVE' | 'PAUSED' | 'CLOSED'`\n - `account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }`\n - `auth_rule_tokens?: string[]`\n - `cardholder_currency?: string`\n - `comment?: string`\n - `substatus?: string`\n - `verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst account = await client.accounts.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(account);\n```",
perLanguage: {
- go: {
- method: 'client.Accounts.Get',
+ typescript: {
+ method: 'client.accounts.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\taccount, err := client.Accounts.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", account.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst account = await client.accounts.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(account.token);",
},
- http: {
+ python: {
+ method: 'accounts.retrieve',
example:
- 'curl https://api.lithic.com/v1/accounts/$ACCOUNT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\naccount = client.accounts.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(account.token)',
},
java: {
method: 'accounts().retrieve',
@@ -185,20 +186,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Account\nimport com.lithic.api.models.AccountRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val account: Account = client.accounts().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'accounts.retrieve',
+ go: {
+ method: 'client.Accounts.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\naccount = client.accounts.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(account.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\taccount, err := client.Accounts.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", account.Token)\n}\n',
},
ruby: {
method: 'accounts.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\naccount = lithic.accounts.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(account)',
},
- typescript: {
- method: 'client.accounts.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst account = await client.accounts.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(account.token);",
+ 'curl https://api.lithic.com/v1/accounts/$ACCOUNT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -226,14 +226,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## update\n\n`client.accounts.update(account_token: string, comment?: string, daily_spend_limit?: number, lifetime_spend_limit?: number, monthly_spend_limit?: number, state?: 'ACTIVE' | 'PAUSED' | 'CLOSED', substatus?: string, verification_address?: { address1?: string; address2?: string; city?: string; country?: string; postal_code?: string; state?: string; }): { token: string; created: string; spend_limit: object; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: object; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: object; }`\n\n**patch** `/v1/accounts/{account_token}`\n\nUpdate account configuration such as state or spend limits. Can only be run on accounts that are part of the program managed by this API key.\nAccounts that are in the `PAUSED` state will not be able to transact or create new cards.\n\n\n### Parameters\n\n- `account_token: string`\n\n- `comment?: string`\n Additional context or information related to the account.\n\n- `daily_spend_limit?: number`\n Amount (in cents) for the account's daily spend limit (e.g. 100000 would be a $1,000 limit).\nBy default the daily spend limit is set to $1,250.\n\n\n- `lifetime_spend_limit?: number`\n Amount (in cents) for the account's lifetime spend limit (e.g. 100000 would be a $1,000 limit). Once this limit is reached, no transactions will be accepted on any card created for this account until the limit is updated.\nNote that a spend limit of 0 is effectively no limit, and should only be used to reset or remove a prior limit. Only a limit of 1 or above will result in declined transactions due to checks against the account limit. This behavior differs from the daily spend limit and the monthly spend limit.\n\n\n- `monthly_spend_limit?: number`\n Amount (in cents) for the account's monthly spend limit (e.g. 100000 would be a $1,000 limit).\nBy default the monthly spend limit is set to $5,000.\n\n\n- `state?: 'ACTIVE' | 'PAUSED' | 'CLOSED'`\n Account states.\n\n- `substatus?: string`\n Account state substatus values:\n* `FRAUD_IDENTIFIED` - The account has been recognized as being created or used with stolen or fabricated identity information, encompassing both true identity theft and synthetic identities.\n* `SUSPICIOUS_ACTIVITY` - The account has exhibited suspicious behavior, such as unauthorized access or fraudulent transactions, necessitating further investigation.\n* `RISK_VIOLATION` - The account has been involved in deliberate misuse by the legitimate account holder. Examples include disputing valid transactions without cause, falsely claiming non-receipt of goods, or engaging in intentional bust-out schemes to exploit account services.\n* `END_USER_REQUEST` - The account holder has voluntarily requested the closure of the account for personal reasons. This encompasses situations such as bankruptcy, other financial considerations, or the account holder's death.\n* `ISSUER_REQUEST` - The issuer has initiated the closure of the account due to business strategy, risk management, inactivity, product changes, regulatory concerns, or violations of terms and conditions.\n* `NOT_ACTIVE` - The account has not had any transactions or payment activity within a specified period. This status applies to accounts that are paused or closed due to inactivity.\n* `INTERNAL_REVIEW` - The account is temporarily paused pending further internal review. In future implementations, this status may prevent clients from activating the account via APIs until the review is completed.\n* `OTHER` - The reason for the account's current status does not fall into any of the above categories. A comment should be provided to specify the particular reason.\n\n- `verification_address?: { address1?: string; address2?: string; city?: string; country?: string; postal_code?: string; state?: string; }`\n Address used during Address Verification Service (AVS) checks during transactions if enabled via Auth Rules. This field is deprecated as AVS checks are no longer supported by Auth Rules. The field will be removed from the schema in a future release.\n - `address1?: string`\n - `address2?: string`\n - `city?: string`\n - `country?: string`\n - `postal_code?: string`\n - `state?: string`\n\n### Returns\n\n- `{ token: string; created: string; spend_limit: { daily: number; lifetime: number; monthly: number; }; state: 'ACTIVE' | 'PAUSED' | 'CLOSED'; account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }; auth_rule_tokens?: string[]; cardholder_currency?: string; comment?: string; substatus?: string; verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; }`\n\n - `token: string`\n - `created: string`\n - `spend_limit: { daily: number; lifetime: number; monthly: number; }`\n - `state: 'ACTIVE' | 'PAUSED' | 'CLOSED'`\n - `account_holder?: { token: string; business_account_token: string; email: string; phone_number: string; }`\n - `auth_rule_tokens?: string[]`\n - `cardholder_currency?: string`\n - `comment?: string`\n - `substatus?: string`\n - `verification_address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst account = await client.accounts.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(account);\n```",
perLanguage: {
- go: {
- method: 'client.Accounts.Update',
+ typescript: {
+ method: 'client.accounts.update',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\taccount, err := client.Accounts.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AccountUpdateParams{\n\t\t\tDailySpendLimit: lithic.F(int64(1000)),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", account.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst account = await client.accounts.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n daily_spend_limit: 1000,\n});\n\nconsole.log(account.token);",
},
- http: {
+ python: {
+ method: 'accounts.update',
example:
- "curl https://api.lithic.com/v1/accounts/$ACCOUNT_TOKEN \\\n -X PATCH \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\naccount = client.accounts.update(\n account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n daily_spend_limit=1000,\n)\nprint(account.token)',
},
java: {
method: 'accounts().update',
@@ -245,20 +246,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Account\nimport com.lithic.api.models.AccountUpdateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val account: Account = client.accounts().update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'accounts.update',
+ go: {
+ method: 'client.Accounts.Update',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\naccount = client.accounts.update(\n account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n daily_spend_limit=1000,\n)\nprint(account.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\taccount, err := client.Accounts.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AccountUpdateParams{\n\t\t\tDailySpendLimit: lithic.F(int64(1000)),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", account.Token)\n}\n',
},
ruby: {
method: 'accounts.update',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\naccount = lithic.accounts.update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(account)',
},
- typescript: {
- method: 'client.accounts.update',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst account = await client.accounts.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n daily_spend_limit: 1000,\n});\n\nconsole.log(account.token);",
+ "curl https://api.lithic.com/v1/accounts/$ACCOUNT_TOKEN \\\n -X PATCH \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
},
},
},
@@ -277,14 +277,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve_spend_limits\n\n`client.accounts.retrieveSpendLimits(account_token: string): { available_spend_limit: object; spend_limit?: object; spend_velocity?: object; }`\n\n**get** `/v1/accounts/{account_token}/spend_limits`\n\nGet an Account's available spend limits, which is based on the spend limit configured on the Account and the amount already spent over the spend limit's duration. For example, if the Account has a daily spend limit of $1000 configured, and has spent $600 in the last 24 hours, the available spend limit returned would be $400.\n\n### Parameters\n\n- `account_token: string`\n\n### Returns\n\n- `{ available_spend_limit: { daily?: number; lifetime?: number; monthly?: number; }; spend_limit?: { daily?: number; lifetime?: number; monthly?: number; }; spend_velocity?: { daily?: number; lifetime?: number; monthly?: number; }; }`\n\n - `available_spend_limit: { daily?: number; lifetime?: number; monthly?: number; }`\n - `spend_limit?: { daily?: number; lifetime?: number; monthly?: number; }`\n - `spend_velocity?: { daily?: number; lifetime?: number; monthly?: number; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst accountSpendLimits = await client.accounts.retrieveSpendLimits('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(accountSpendLimits);\n```",
perLanguage: {
- go: {
- method: 'client.Accounts.GetSpendLimits',
+ typescript: {
+ method: 'client.accounts.retrieveSpendLimits',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\taccountSpendLimits, err := client.Accounts.GetSpendLimits(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", accountSpendLimits.AvailableSpendLimit)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst accountSpendLimits = await client.accounts.retrieveSpendLimits(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(accountSpendLimits.available_spend_limit);",
},
- http: {
+ python: {
+ method: 'accounts.retrieve_spend_limits',
example:
- 'curl https://api.lithic.com/v1/accounts/$ACCOUNT_TOKEN/spend_limits \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\naccount_spend_limits = client.accounts.retrieve_spend_limits(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(account_spend_limits.available_spend_limit)',
},
java: {
method: 'accounts().retrieveSpendLimits',
@@ -296,20 +297,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountRetrieveSpendLimitsParams\nimport com.lithic.api.models.AccountSpendLimits\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val accountSpendLimits: AccountSpendLimits = client.accounts().retrieveSpendLimits("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'accounts.retrieve_spend_limits',
+ go: {
+ method: 'client.Accounts.GetSpendLimits',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\naccount_spend_limits = client.accounts.retrieve_spend_limits(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(account_spend_limits.available_spend_limit)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\taccountSpendLimits, err := client.Accounts.GetSpendLimits(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", accountSpendLimits.AvailableSpendLimit)\n}\n',
},
ruby: {
method: 'accounts.retrieve_spend_limits',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\naccount_spend_limits = lithic.accounts.retrieve_spend_limits("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(account_spend_limits)',
},
- typescript: {
- method: 'client.accounts.retrieveSpendLimits',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst accountSpendLimits = await client.accounts.retrieveSpendLimits(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(accountSpendLimits.available_spend_limit);",
+ 'curl https://api.lithic.com/v1/accounts/$ACCOUNT_TOKEN/spend_limits \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -328,14 +328,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response:
"{ token: string; account_token: string; status: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons: string[]; created?: string; external_id?: string; required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]; }",
perLanguage: {
- go: {
- method: 'client.AccountHolders.New',
+ typescript: {
+ method: 'client.accountHolders.create',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n\t"github.com/lithic-com/lithic-go/shared"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\taccountHolder, err := client.AccountHolders.New(context.TODO(), lithic.AccountHolderNewParams{\n\t\tBody: lithic.KYBParam{\n\t\t\tBeneficialOwnerIndividuals: lithic.F([]lithic.KYBBeneficialOwnerIndividualParam{{\n\t\t\t\tAddress: lithic.F(shared.AddressParam{\n\t\t\t\t\tAddress1: lithic.F("300 Normal Forest Way"),\n\t\t\t\t\tCity: lithic.F("Portland"),\n\t\t\t\t\tCountry: lithic.F("USA"),\n\t\t\t\t\tPostalCode: lithic.F("90210"),\n\t\t\t\t\tState: lithic.F("OR"),\n\t\t\t\t}),\n\t\t\t\tDob: lithic.F("1991-03-08T08:00:00Z"),\n\t\t\t\tEmail: lithic.F("tim@left-earth.com"),\n\t\t\t\tFirstName: lithic.F("Timmy"),\n\t\t\t\tGovernmentID: lithic.F("211-23-1412"),\n\t\t\t\tLastName: lithic.F("Turner"),\n\t\t\t}}),\n\t\t\tBusinessEntity: lithic.F(lithic.KYBBusinessEntityParam{\n\t\t\t\tAddress: lithic.F(shared.AddressParam{\n\t\t\t\t\tAddress1: lithic.F("123 Old Forest Way"),\n\t\t\t\t\tCity: lithic.F("Omaha"),\n\t\t\t\t\tCountry: lithic.F("USA"),\n\t\t\t\t\tPostalCode: lithic.F("61022"),\n\t\t\t\t\tState: lithic.F("NE"),\n\t\t\t\t}),\n\t\t\t\tGovernmentID: lithic.F("12-3456789"),\n\t\t\t\tLegalBusinessName: lithic.F("Busy Business, Inc."),\n\t\t\t\tPhoneNumbers: lithic.F([]string{"+15555555555"}),\n\t\t\t}),\n\t\t\tControlPerson: lithic.F(lithic.KYBControlPersonParam{\n\t\t\t\tAddress: lithic.F(shared.AddressParam{\n\t\t\t\t\tAddress1: lithic.F("451 New Forest Way"),\n\t\t\t\t\tCity: lithic.F("Springfield"),\n\t\t\t\t\tCountry: lithic.F("USA"),\n\t\t\t\t\tPostalCode: lithic.F("68022"),\n\t\t\t\t\tState: lithic.F("IL"),\n\t\t\t\t}),\n\t\t\t\tDob: lithic.F("1991-03-08T08:00:00Z"),\n\t\t\t\tEmail: lithic.F("tom@middle-pluto.com"),\n\t\t\t\tFirstName: lithic.F("Tom"),\n\t\t\t\tGovernmentID: lithic.F("111-23-1412"),\n\t\t\t\tLastName: lithic.F("Timothy"),\n\t\t\t}),\n\t\t\tNatureOfBusiness: lithic.F("Software company selling solutions to the restaurant industry"),\n\t\t\tTosTimestamp: lithic.F("2022-03-08T08:00:00Z"),\n\t\t\tWorkflow: lithic.F(lithic.KYBWorkflowKYBByo),\n\t\t},\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", accountHolder.ExternalID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst accountHolder = await client.accountHolders.create({\n beneficial_owner_individuals: [\n {\n address: {\n address1: '300 Normal Forest Way',\n city: 'Portland',\n country: 'USA',\n postal_code: '90210',\n state: 'OR',\n },\n dob: '1991-03-08T08:00:00Z',\n email: 'tim@left-earth.com',\n first_name: 'Timmy',\n government_id: '211-23-1412',\n last_name: 'Turner',\n phone_number: '+15555555555',\n },\n ],\n business_entity: {\n address: {\n address1: '123 Old Forest Way',\n city: 'Omaha',\n country: 'USA',\n postal_code: '61022',\n state: 'NE',\n },\n dba_business_name: 'Example Business Solutions',\n government_id: '12-3456789',\n legal_business_name: 'Busy Business, Inc.',\n phone_numbers: ['+15555555555'],\n },\n control_person: {\n address: {\n address1: '451 New Forest Way',\n city: 'Springfield',\n country: 'USA',\n postal_code: '68022',\n state: 'IL',\n },\n dob: '1991-03-08T08:00:00Z',\n email: 'tom@middle-pluto.com',\n first_name: 'Tom',\n government_id: '111-23-1412',\n last_name: 'Timothy',\n phone_number: '+15555555555',\n },\n nature_of_business: 'Software company selling solutions to the restaurant industry',\n tos_timestamp: '2022-03-08T08:00:00Z',\n workflow: 'KYB_BYO',\n kyb_passed_timestamp: '2022-03-08T08:00:00Z',\n naics_code: '541512',\n website_url: 'https://www.mybusiness.com',\n});\n\nconsole.log(accountHolder.external_id);",
},
- http: {
+ python: {
+ method: 'account_holders.create',
example:
- 'curl https://api.lithic.com/v1/account_holders \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n --max-time 300 \\\n -d \'{\n "beneficial_owner_individuals": [\n {\n "address": {\n "address1": "123 Old Forest Way",\n "city": "Omaha",\n "country": "USA",\n "postal_code": "68022",\n "state": "NE"\n },\n "dob": "1991-03-08 08:00:00",\n "email": "tom@middle-earth.com",\n "first_name": "Tom",\n "government_id": "111-23-1412",\n "last_name": "Bombadil"\n }\n ],\n "business_entity": {\n "address": {\n "address1": "123 Old Forest Way",\n "city": "Omaha",\n "country": "USA",\n "postal_code": "68022",\n "state": "NE"\n },\n "government_id": "114-123-1513",\n "legal_business_name": "Acme, Inc.",\n "phone_numbers": [\n "+15555555555"\n ]\n },\n "control_person": {\n "address": {\n "address1": "123 Old Forest Way",\n "city": "Omaha",\n "country": "USA",\n "postal_code": "68022",\n "state": "NE"\n },\n "dob": "1991-03-08 08:00:00",\n "email": "tom@middle-earth.com",\n "first_name": "Tom",\n "government_id": "111-23-1412",\n "last_name": "Bombadil"\n },\n "nature_of_business": "Software company selling solutions to the restaurant industry",\n "tos_timestamp": "2018-05-29T21:16:05Z",\n "workflow": "KYB_BASIC",\n "kyb_passed_timestamp": "2018-05-29T21:16:05Z",\n "naics_code": "541512",\n "website_url": "www.mybusiness.com"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\naccount_holder = client.account_holders.create(\n beneficial_owner_individuals=[{\n "address": {\n "address1": "300 Normal Forest Way",\n "city": "Portland",\n "country": "USA",\n "postal_code": "90210",\n "state": "OR",\n },\n "dob": "1991-03-08T08:00:00Z",\n "email": "tim@left-earth.com",\n "first_name": "Timmy",\n "government_id": "211-23-1412",\n "last_name": "Turner",\n "phone_number": "+15555555555",\n }],\n business_entity={\n "address": {\n "address1": "123 Old Forest Way",\n "city": "Omaha",\n "country": "USA",\n "postal_code": "61022",\n "state": "NE",\n },\n "dba_business_name": "Example Business Solutions",\n "government_id": "12-3456789",\n "legal_business_name": "Busy Business, Inc.",\n "phone_numbers": ["+15555555555"],\n },\n control_person={\n "address": {\n "address1": "451 New Forest Way",\n "city": "Springfield",\n "country": "USA",\n "postal_code": "68022",\n "state": "IL",\n },\n "dob": "1991-03-08T08:00:00Z",\n "email": "tom@middle-pluto.com",\n "first_name": "Tom",\n "government_id": "111-23-1412",\n "last_name": "Timothy",\n "phone_number": "+15555555555",\n },\n nature_of_business="Software company selling solutions to the restaurant industry",\n tos_timestamp="2022-03-08T08:00:00Z",\n workflow="KYB_BYO",\n kyb_passed_timestamp="2022-03-08T08:00:00Z",\n naics_code="541512",\n website_url="https://www.mybusiness.com",\n)\nprint(account_holder.external_id)',
},
java: {
method: 'accountHolders().create',
@@ -347,20 +348,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountHolderCreateParams\nimport com.lithic.api.models.AccountHolderCreateResponse\nimport com.lithic.api.models.Address\nimport com.lithic.api.models.Kyb\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: Kyb = Kyb.builder()\n .addBeneficialOwnerIndividual(Kyb.KybIndividual.builder()\n .address(Address.builder()\n .address1("300 Normal Forest Way")\n .city("Portland")\n .country("USA")\n .postalCode("90210")\n .state("OR")\n .build())\n .dob("1991-03-08T08:00:00Z")\n .email("tim@left-earth.com")\n .firstName("Timmy")\n .governmentId("211-23-1412")\n .lastName("Turner")\n .build())\n .businessEntity(Kyb.BusinessEntity.builder()\n .address(Address.builder()\n .address1("123 Old Forest Way")\n .city("Omaha")\n .country("USA")\n .postalCode("61022")\n .state("NE")\n .build())\n .governmentId("12-3456789")\n .legalBusinessName("Busy Business, Inc.")\n .addPhoneNumber("+15555555555")\n .build())\n .controlPerson(Kyb.KybIndividual.builder()\n .address(Address.builder()\n .address1("451 New Forest Way")\n .city("Springfield")\n .country("USA")\n .postalCode("68022")\n .state("IL")\n .build())\n .dob("1991-03-08T08:00:00Z")\n .email("tom@middle-pluto.com")\n .firstName("Tom")\n .governmentId("111-23-1412")\n .lastName("Timothy")\n .build())\n .natureOfBusiness("Software company selling solutions to the restaurant industry")\n .tosTimestamp("2022-03-08T08:00:00Z")\n .workflow(Kyb.Workflow.KYB_BYO)\n .build()\n val accountHolder: AccountHolderCreateResponse = client.accountHolders().create(params)\n}',
},
- python: {
- method: 'account_holders.create',
+ go: {
+ method: 'client.AccountHolders.New',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\naccount_holder = client.account_holders.create(\n beneficial_owner_individuals=[{\n "address": {\n "address1": "300 Normal Forest Way",\n "city": "Portland",\n "country": "USA",\n "postal_code": "90210",\n "state": "OR",\n },\n "dob": "1991-03-08T08:00:00Z",\n "email": "tim@left-earth.com",\n "first_name": "Timmy",\n "government_id": "211-23-1412",\n "last_name": "Turner",\n "phone_number": "+15555555555",\n }],\n business_entity={\n "address": {\n "address1": "123 Old Forest Way",\n "city": "Omaha",\n "country": "USA",\n "postal_code": "61022",\n "state": "NE",\n },\n "dba_business_name": "Example Business Solutions",\n "government_id": "12-3456789",\n "legal_business_name": "Busy Business, Inc.",\n "phone_numbers": ["+15555555555"],\n },\n control_person={\n "address": {\n "address1": "451 New Forest Way",\n "city": "Springfield",\n "country": "USA",\n "postal_code": "68022",\n "state": "IL",\n },\n "dob": "1991-03-08T08:00:00Z",\n "email": "tom@middle-pluto.com",\n "first_name": "Tom",\n "government_id": "111-23-1412",\n "last_name": "Timothy",\n "phone_number": "+15555555555",\n },\n nature_of_business="Software company selling solutions to the restaurant industry",\n tos_timestamp="2022-03-08T08:00:00Z",\n workflow="KYB_BYO",\n kyb_passed_timestamp="2022-03-08T08:00:00Z",\n naics_code="541512",\n website_url="https://www.mybusiness.com",\n)\nprint(account_holder.external_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n\t"github.com/lithic-com/lithic-go/shared"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\taccountHolder, err := client.AccountHolders.New(context.TODO(), lithic.AccountHolderNewParams{\n\t\tBody: lithic.KYBParam{\n\t\t\tBeneficialOwnerIndividuals: lithic.F([]lithic.KYBBeneficialOwnerIndividualParam{{\n\t\t\t\tAddress: lithic.F(shared.AddressParam{\n\t\t\t\t\tAddress1: lithic.F("300 Normal Forest Way"),\n\t\t\t\t\tCity: lithic.F("Portland"),\n\t\t\t\t\tCountry: lithic.F("USA"),\n\t\t\t\t\tPostalCode: lithic.F("90210"),\n\t\t\t\t\tState: lithic.F("OR"),\n\t\t\t\t}),\n\t\t\t\tDob: lithic.F("1991-03-08T08:00:00Z"),\n\t\t\t\tEmail: lithic.F("tim@left-earth.com"),\n\t\t\t\tFirstName: lithic.F("Timmy"),\n\t\t\t\tGovernmentID: lithic.F("211-23-1412"),\n\t\t\t\tLastName: lithic.F("Turner"),\n\t\t\t}}),\n\t\t\tBusinessEntity: lithic.F(lithic.KYBBusinessEntityParam{\n\t\t\t\tAddress: lithic.F(shared.AddressParam{\n\t\t\t\t\tAddress1: lithic.F("123 Old Forest Way"),\n\t\t\t\t\tCity: lithic.F("Omaha"),\n\t\t\t\t\tCountry: lithic.F("USA"),\n\t\t\t\t\tPostalCode: lithic.F("61022"),\n\t\t\t\t\tState: lithic.F("NE"),\n\t\t\t\t}),\n\t\t\t\tGovernmentID: lithic.F("12-3456789"),\n\t\t\t\tLegalBusinessName: lithic.F("Busy Business, Inc."),\n\t\t\t\tPhoneNumbers: lithic.F([]string{"+15555555555"}),\n\t\t\t}),\n\t\t\tControlPerson: lithic.F(lithic.KYBControlPersonParam{\n\t\t\t\tAddress: lithic.F(shared.AddressParam{\n\t\t\t\t\tAddress1: lithic.F("451 New Forest Way"),\n\t\t\t\t\tCity: lithic.F("Springfield"),\n\t\t\t\t\tCountry: lithic.F("USA"),\n\t\t\t\t\tPostalCode: lithic.F("68022"),\n\t\t\t\t\tState: lithic.F("IL"),\n\t\t\t\t}),\n\t\t\t\tDob: lithic.F("1991-03-08T08:00:00Z"),\n\t\t\t\tEmail: lithic.F("tom@middle-pluto.com"),\n\t\t\t\tFirstName: lithic.F("Tom"),\n\t\t\t\tGovernmentID: lithic.F("111-23-1412"),\n\t\t\t\tLastName: lithic.F("Timothy"),\n\t\t\t}),\n\t\t\tNatureOfBusiness: lithic.F("Software company selling solutions to the restaurant industry"),\n\t\t\tTosTimestamp: lithic.F("2022-03-08T08:00:00Z"),\n\t\t\tWorkflow: lithic.F(lithic.KYBWorkflowKYBByo),\n\t\t},\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", accountHolder.ExternalID)\n}\n',
},
ruby: {
method: 'account_holders.create',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\naccount_holder = lithic.account_holders.create(\n body: {\n beneficial_owner_individuals: [\n {\n address: {address1: "300 Normal Forest Way", city: "Portland", country: "USA", postal_code: "90210", state: "OR"},\n dob: "1991-03-08T08:00:00Z",\n email: "tim@left-earth.com",\n first_name: "Timmy",\n government_id: "211-23-1412",\n last_name: "Turner"\n }\n ],\n business_entity: {\n address: {address1: "123 Old Forest Way", city: "Omaha", country: "USA", postal_code: "61022", state: "NE"},\n government_id: "12-3456789",\n legal_business_name: "Busy Business, Inc.",\n phone_numbers: ["+15555555555"]\n },\n control_person: {\n address: {address1: "451 New Forest Way", city: "Springfield", country: "USA", postal_code: "68022", state: "IL"},\n dob: "1991-03-08T08:00:00Z",\n email: "tom@middle-pluto.com",\n first_name: "Tom",\n government_id: "111-23-1412",\n last_name: "Timothy"\n },\n nature_of_business: "Software company selling solutions to the restaurant industry",\n tos_timestamp: "2022-03-08T08:00:00Z",\n workflow: :KYB_BYO\n }\n)\n\nputs(account_holder)',
},
- typescript: {
- method: 'client.accountHolders.create',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst accountHolder = await client.accountHolders.create({\n beneficial_owner_individuals: [\n {\n address: {\n address1: '300 Normal Forest Way',\n city: 'Portland',\n country: 'USA',\n postal_code: '90210',\n state: 'OR',\n },\n dob: '1991-03-08T08:00:00Z',\n email: 'tim@left-earth.com',\n first_name: 'Timmy',\n government_id: '211-23-1412',\n last_name: 'Turner',\n phone_number: '+15555555555',\n },\n ],\n business_entity: {\n address: {\n address1: '123 Old Forest Way',\n city: 'Omaha',\n country: 'USA',\n postal_code: '61022',\n state: 'NE',\n },\n dba_business_name: 'Example Business Solutions',\n government_id: '12-3456789',\n legal_business_name: 'Busy Business, Inc.',\n phone_numbers: ['+15555555555'],\n },\n control_person: {\n address: {\n address1: '451 New Forest Way',\n city: 'Springfield',\n country: 'USA',\n postal_code: '68022',\n state: 'IL',\n },\n dob: '1991-03-08T08:00:00Z',\n email: 'tom@middle-pluto.com',\n first_name: 'Tom',\n government_id: '111-23-1412',\n last_name: 'Timothy',\n phone_number: '+15555555555',\n },\n nature_of_business: 'Software company selling solutions to the restaurant industry',\n tos_timestamp: '2022-03-08T08:00:00Z',\n workflow: 'KYB_BYO',\n kyb_passed_timestamp: '2022-03-08T08:00:00Z',\n naics_code: '541512',\n website_url: 'https://www.mybusiness.com',\n});\n\nconsole.log(accountHolder.external_id);",
+ 'curl https://api.lithic.com/v1/account_holders \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n --max-time 300 \\\n -d \'{\n "beneficial_owner_individuals": [\n {\n "address": {\n "address1": "123 Old Forest Way",\n "city": "Omaha",\n "country": "USA",\n "postal_code": "68022",\n "state": "NE"\n },\n "dob": "1991-03-08 08:00:00",\n "email": "tom@middle-earth.com",\n "first_name": "Tom",\n "government_id": "111-23-1412",\n "last_name": "Bombadil"\n }\n ],\n "business_entity": {\n "address": {\n "address1": "123 Old Forest Way",\n "city": "Omaha",\n "country": "USA",\n "postal_code": "68022",\n "state": "NE"\n },\n "government_id": "114-123-1513",\n "legal_business_name": "Acme, Inc.",\n "phone_numbers": [\n "+15555555555"\n ]\n },\n "control_person": {\n "address": {\n "address1": "123 Old Forest Way",\n "city": "Omaha",\n "country": "USA",\n "postal_code": "68022",\n "state": "NE"\n },\n "dob": "1991-03-08 08:00:00",\n "email": "tom@middle-earth.com",\n "first_name": "Tom",\n "government_id": "111-23-1412",\n "last_name": "Bombadil"\n },\n "nature_of_business": "Software company selling solutions to the restaurant industry",\n "tos_timestamp": "2018-05-29T21:16:05Z",\n "workflow": "KYB_BASIC",\n "kyb_passed_timestamp": "2018-05-29T21:16:05Z",\n "naics_code": "541512",\n "website_url": "www.mybusiness.com"\n }\'',
},
},
},
@@ -380,14 +380,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response:
"{ token?: string; account_token?: string; beneficial_owner_individuals?: object[]; business_account_token?: string; business_entity?: kyb_business_entity; control_person?: object; created?: string; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: object; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: required_document[]; status?: 'ACCEPTED' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: object; website_url?: string; } | { token?: string; address?: object; business_account_token?: string; email?: string; first_name?: string; last_name?: string; legal_business_name?: string; phone_number?: string; }",
perLanguage: {
- go: {
- method: 'client.AccountHolders.Update',
+ typescript: {
+ method: 'client.accountHolders.update',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\taccountHolder, err := client.AccountHolders.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AccountHolderUpdateParams{\n\t\t\tBody: lithic.AccountHolderUpdateParamsBodyKYBPatchRequest{},\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", accountHolder)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst accountHolder = await client.accountHolders.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n business_entity: {\n entity_token: '83cf25ae-c14f-4d10-9fa2-0119f36c7286',\n address: { postal_code: '61023' },\n },\n control_person: {\n entity_token: 'fd771a07-c5c2-42f3-a53c-a6c79c6c0d07',\n address: { postal_code: '68023' },\n },\n naics_code: '541512',\n website_url: 'https://www.mynewbusiness.com',\n});\n\nconsole.log(accountHolder);",
},
- http: {
+ python: {
+ method: 'account_holders.update',
example:
- 'curl https://api.lithic.com/v1/account_holders/$ACCOUNT_HOLDER_TOKEN \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "naics_code": "541512",\n "nature_of_business": "Software company selling solutions to the restaurant industry",\n "website_url": "www.mybusiness.com"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\naccount_holder = client.account_holders.update(\n account_holder_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n business_entity={\n "entity_token": "83cf25ae-c14f-4d10-9fa2-0119f36c7286",\n "address": {\n "postal_code": "61023"\n },\n },\n control_person={\n "entity_token": "fd771a07-c5c2-42f3-a53c-a6c79c6c0d07",\n "address": {\n "postal_code": "68023"\n },\n },\n naics_code="541512",\n website_url="https://www.mynewbusiness.com",\n)\nprint(account_holder)',
},
java: {
method: 'accountHolders().update',
@@ -399,20 +400,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountHolderUpdateParams\nimport com.lithic.api.models.AccountHolderUpdateResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: AccountHolderUpdateParams = AccountHolderUpdateParams.builder()\n .accountHolderToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .body(AccountHolderUpdateParams.Body.KybPatchRequest.builder().build())\n .build()\n val accountHolder: AccountHolderUpdateResponse = client.accountHolders().update(params)\n}',
},
- python: {
- method: 'account_holders.update',
+ go: {
+ method: 'client.AccountHolders.Update',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\naccount_holder = client.account_holders.update(\n account_holder_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n business_entity={\n "entity_token": "83cf25ae-c14f-4d10-9fa2-0119f36c7286",\n "address": {\n "postal_code": "61023"\n },\n },\n control_person={\n "entity_token": "fd771a07-c5c2-42f3-a53c-a6c79c6c0d07",\n "address": {\n "postal_code": "68023"\n },\n },\n naics_code="541512",\n website_url="https://www.mynewbusiness.com",\n)\nprint(account_holder)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\taccountHolder, err := client.AccountHolders.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AccountHolderUpdateParams{\n\t\t\tBody: lithic.AccountHolderUpdateParamsBodyKYBPatchRequest{},\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", accountHolder)\n}\n',
},
ruby: {
method: 'account_holders.update',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\naccount_holder = lithic.account_holders.update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", body: {})\n\nputs(account_holder)',
},
- typescript: {
- method: 'client.accountHolders.update',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst accountHolder = await client.accountHolders.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n business_entity: {\n entity_token: '83cf25ae-c14f-4d10-9fa2-0119f36c7286',\n address: { postal_code: '61023' },\n },\n control_person: {\n entity_token: 'fd771a07-c5c2-42f3-a53c-a6c79c6c0d07',\n address: { postal_code: '68023' },\n },\n naics_code: '541512',\n website_url: 'https://www.mynewbusiness.com',\n});\n\nconsole.log(accountHolder);",
+ 'curl https://api.lithic.com/v1/account_holders/$ACCOUNT_HOLDER_TOKEN \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "naics_code": "541512",\n "nature_of_business": "Software company selling solutions to the restaurant industry",\n "website_url": "www.mybusiness.com"\n }\'',
},
},
},
@@ -430,14 +430,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.accountHolders.retrieve(account_holder_token: string): { token: string; created: string; account_token?: string; beneficial_owner_individuals?: object[]; business_account_token?: string; business_entity?: object; control_person?: object; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: object; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: required_document[]; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: object; website_url?: string; }`\n\n**get** `/v1/account_holders/{account_holder_token}`\n\nGet an Individual or Business Account Holder and/or their KYC or KYB evaluation status.\n\n### Parameters\n\n- `account_holder_token: string`\n\n### Returns\n\n- `{ token: string; created: string; account_token?: string; beneficial_owner_individuals?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }[]; business_account_token?: string; business_entity?: { address: object; dba_business_name: string; entity_token: string; government_id: string; legal_business_name: string; phone_numbers: string[]; parent_company?: string; }; control_person?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: { created?: string; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; updated?: string; }; website_url?: string; }`\n\n - `token: string`\n - `created: string`\n - `account_token?: string`\n - `beneficial_owner_individuals?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }[]`\n - `business_account_token?: string`\n - `business_entity?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dba_business_name: string; entity_token: string; government_id: string; legal_business_name: string; phone_numbers: string[]; parent_company?: string; }`\n - `control_person?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }`\n - `email?: string`\n - `exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'`\n - `external_id?: string`\n - `individual?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }`\n - `naics_code?: string`\n - `nature_of_business?: string`\n - `phone_number?: string`\n - `required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]`\n - `status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'`\n - `status_reasons?: string[]`\n - `user_type?: 'BUSINESS' | 'INDIVIDUAL'`\n - `verification_application?: { created?: string; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; updated?: string; }`\n - `website_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst accountHolder = await client.accountHolders.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(accountHolder);\n```",
perLanguage: {
- go: {
- method: 'client.AccountHolders.Get',
+ typescript: {
+ method: 'client.accountHolders.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\taccountHolder, err := client.AccountHolders.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", accountHolder.BeneficialOwnerIndividuals)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst accountHolder = await client.accountHolders.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(accountHolder.beneficial_owner_individuals);",
},
- http: {
+ python: {
+ method: 'account_holders.retrieve',
example:
- 'curl https://api.lithic.com/v1/account_holders/$ACCOUNT_HOLDER_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\naccount_holder = client.account_holders.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(account_holder.beneficial_owner_individuals)',
},
java: {
method: 'accountHolders().retrieve',
@@ -449,20 +450,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountHolder\nimport com.lithic.api.models.AccountHolderRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val accountHolder: AccountHolder = client.accountHolders().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'account_holders.retrieve',
+ go: {
+ method: 'client.AccountHolders.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\naccount_holder = client.account_holders.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(account_holder.beneficial_owner_individuals)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\taccountHolder, err := client.AccountHolders.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", accountHolder.BeneficialOwnerIndividuals)\n}\n',
},
ruby: {
method: 'account_holders.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\naccount_holder = lithic.account_holders.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(account_holder)',
},
- typescript: {
- method: 'client.accountHolders.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst accountHolder = await client.accountHolders.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(accountHolder.beneficial_owner_individuals);",
+ 'curl https://api.lithic.com/v1/account_holders/$ACCOUNT_HOLDER_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -481,14 +481,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## upload_document\n\n`client.accountHolders.uploadDocument(account_holder_token: string, document_type: string, entity_token: string): { token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: object[]; }`\n\n**post** `/v1/account_holders/{account_holder_token}/documents`\n\nUse this endpoint to identify which type of supported government-issued documentation you will upload for further verification.\nIt will return two URLs to upload your document images to - one for the front image and one for the back image.\n\nThis endpoint is only valid for evaluations in a `PENDING_DOCUMENT` state.\n\nSupported file types include `jpg`, `png`, and `pdf`. Each file must be less than 15 MiB. Once both required uploads have been successfully completed, your document will be run through KYC verification.\n\nIf you have registered a webhook, you will receive evaluation updates for any document submission evaluations, as well as for any failed document uploads.\n\nTwo document submission attempts are permitted via this endpoint before a `REJECTED` status is returned and the account creation process is ended. Currently only one type of\naccount holder document is supported per KYC verification.\n\n\n### Parameters\n\n- `account_holder_token: string`\n\n- `document_type: string`\n The type of document to upload\n\n- `entity_token: string`\n Globally unique identifier for the entity.\n\n### Returns\n\n- `{ token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]; }`\n Describes the document and the required document image uploads\nrequired to re-run KYC\n\n - `token: string`\n - `account_holder_token: string`\n - `document_type: string`\n - `entity_token: string`\n - `required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst document = await client.accountHolders.uploadDocument('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { document_type: 'EIN_LETTER', entity_token: '83cf25ae-c14f-4d10-9fa2-0119f36c7286' });\n\nconsole.log(document);\n```",
perLanguage: {
- go: {
- method: 'client.AccountHolders.UploadDocument',
+ typescript: {
+ method: 'client.accountHolders.uploadDocument',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdocument, err := client.AccountHolders.UploadDocument(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AccountHolderUploadDocumentParams{\n\t\t\tDocumentType: lithic.F(lithic.AccountHolderUploadDocumentParamsDocumentTypeEinLetter),\n\t\t\tEntityToken: lithic.F("83cf25ae-c14f-4d10-9fa2-0119f36c7286"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", document.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst document = await client.accountHolders.uploadDocument(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { document_type: 'EIN_LETTER', entity_token: '83cf25ae-c14f-4d10-9fa2-0119f36c7286' },\n);\n\nconsole.log(document.token);",
},
- http: {
+ python: {
+ method: 'account_holders.upload_document',
example:
- 'curl https://api.lithic.com/v1/account_holders/$ACCOUNT_HOLDER_TOKEN/documents \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "document_type": "EIN_LETTER",\n "entity_token": "83cf25ae-c14f-4d10-9fa2-0119f36c7286"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndocument = client.account_holders.upload_document(\n account_holder_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n document_type="EIN_LETTER",\n entity_token="83cf25ae-c14f-4d10-9fa2-0119f36c7286",\n)\nprint(document.token)',
},
java: {
method: 'accountHolders().uploadDocument',
@@ -500,20 +501,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountHolderUploadDocumentParams\nimport com.lithic.api.models.Document\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: AccountHolderUploadDocumentParams = AccountHolderUploadDocumentParams.builder()\n .accountHolderToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .documentType(AccountHolderUploadDocumentParams.DocumentType.EIN_LETTER)\n .entityToken("83cf25ae-c14f-4d10-9fa2-0119f36c7286")\n .build()\n val document: Document = client.accountHolders().uploadDocument(params)\n}',
},
- python: {
- method: 'account_holders.upload_document',
+ go: {
+ method: 'client.AccountHolders.UploadDocument',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndocument = client.account_holders.upload_document(\n account_holder_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n document_type="EIN_LETTER",\n entity_token="83cf25ae-c14f-4d10-9fa2-0119f36c7286",\n)\nprint(document.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdocument, err := client.AccountHolders.UploadDocument(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AccountHolderUploadDocumentParams{\n\t\t\tDocumentType: lithic.F(lithic.AccountHolderUploadDocumentParamsDocumentTypeEinLetter),\n\t\t\tEntityToken: lithic.F("83cf25ae-c14f-4d10-9fa2-0119f36c7286"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", document.Token)\n}\n',
},
ruby: {
method: 'account_holders.upload_document',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndocument = lithic.account_holders.upload_document(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n document_type: :EIN_LETTER,\n entity_token: "83cf25ae-c14f-4d10-9fa2-0119f36c7286"\n)\n\nputs(document)',
},
- typescript: {
- method: 'client.accountHolders.uploadDocument',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst document = await client.accountHolders.uploadDocument(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { document_type: 'EIN_LETTER', entity_token: '83cf25ae-c14f-4d10-9fa2-0119f36c7286' },\n);\n\nconsole.log(document.token);",
+ 'curl https://api.lithic.com/v1/account_holders/$ACCOUNT_HOLDER_TOKEN/documents \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "document_type": "EIN_LETTER",\n "entity_token": "83cf25ae-c14f-4d10-9fa2-0119f36c7286"\n }\'',
},
},
},
@@ -532,14 +532,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list_documents\n\n`client.accountHolders.listDocuments(account_holder_token: string): { data?: document[]; }`\n\n**get** `/v1/account_holders/{account_holder_token}/documents`\n\nRetrieve the status of account holder document uploads, or retrieve the upload URLs to process your image uploads.\n\nNote that this is not equivalent to checking the status of the KYC evaluation overall (a document may be successfully uploaded but not be sufficient for KYC to pass).\n\nIn the event your upload URLs have expired, calling this endpoint will refresh them.\nSimilarly, in the event a previous account holder document upload has failed, you can use this endpoint to get a new upload URL for the failed image upload.\n\nWhen a new document upload is generated for a failed attempt, the response will show an additional entry in the `required_document_uploads` list\nin a `PENDING` state for the corresponding `image_type`.\n\n\n### Parameters\n\n- `account_holder_token: string`\n\n### Returns\n\n- `{ data?: { token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: object[]; }[]; }`\n\n - `data?: { token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.accountHolders.listDocuments('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.AccountHolders.ListDocuments',
+ typescript: {
+ method: 'client.accountHolders.listDocuments',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.AccountHolders.ListDocuments(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Data)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.accountHolders.listDocuments('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response.data);",
},
- http: {
+ python: {
+ method: 'account_holders.list_documents',
example:
- 'curl https://api.lithic.com/v1/account_holders/$ACCOUNT_HOLDER_TOKEN/documents \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.account_holders.list_documents(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.data)',
},
java: {
method: 'accountHolders().listDocuments',
@@ -551,20 +552,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountHolderListDocumentsParams\nimport com.lithic.api.models.AccountHolderListDocumentsResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: AccountHolderListDocumentsResponse = client.accountHolders().listDocuments("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'account_holders.list_documents',
+ go: {
+ method: 'client.AccountHolders.ListDocuments',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.account_holders.list_documents(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.data)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.AccountHolders.ListDocuments(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Data)\n}\n',
},
ruby: {
method: 'account_holders.list_documents',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.account_holders.list_documents("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(response)',
},
- typescript: {
- method: 'client.accountHolders.listDocuments',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.accountHolders.listDocuments('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response.data);",
+ 'curl https://api.lithic.com/v1/account_holders/$ACCOUNT_HOLDER_TOKEN/documents \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -583,14 +583,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve_document\n\n`client.accountHolders.retrieveDocument(account_holder_token: string, document_token: string): { token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: object[]; }`\n\n**get** `/v1/account_holders/{account_holder_token}/documents/{document_token}`\n\nCheck the status of an account holder document upload, or retrieve the upload URLs to process your image uploads.\n\nNote that this is not equivalent to checking the status of the KYC evaluation overall (a document may be successfully uploaded but not be sufficient for KYC to pass).\n\nIn the event your upload URLs have expired, calling this endpoint will refresh them.\nSimilarly, in the event a document upload has failed, you can use this endpoint to get a new upload URL for the failed image upload.\n\nWhen a new account holder document upload is generated for a failed attempt, the response will show an additional entry in the `required_document_uploads` array\nin a `PENDING` state for the corresponding `image_type`.\n\n\n### Parameters\n\n- `account_holder_token: string`\n\n- `document_token: string`\n\n### Returns\n\n- `{ token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]; }`\n Describes the document and the required document image uploads\nrequired to re-run KYC\n\n - `token: string`\n - `account_holder_token: string`\n - `document_type: string`\n - `entity_token: string`\n - `required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst document = await client.accountHolders.retrieveDocument('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { account_holder_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(document);\n```",
perLanguage: {
- go: {
- method: 'client.AccountHolders.GetDocument',
+ typescript: {
+ method: 'client.accountHolders.retrieveDocument',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdocument, err := client.AccountHolders.GetDocument(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", document.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst document = await client.accountHolders.retrieveDocument(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { account_holder_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(document.token);",
},
- http: {
+ python: {
+ method: 'account_holders.retrieve_document',
example:
- 'curl https://api.lithic.com/v1/account_holders/$ACCOUNT_HOLDER_TOKEN/documents/$DOCUMENT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndocument = client.account_holders.retrieve_document(\n document_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n account_holder_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(document.token)',
},
java: {
method: 'accountHolders().retrieveDocument',
@@ -602,20 +603,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountHolderRetrieveDocumentParams\nimport com.lithic.api.models.Document\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: AccountHolderRetrieveDocumentParams = AccountHolderRetrieveDocumentParams.builder()\n .accountHolderToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .documentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val document: Document = client.accountHolders().retrieveDocument(params)\n}',
},
- python: {
- method: 'account_holders.retrieve_document',
+ go: {
+ method: 'client.AccountHolders.GetDocument',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndocument = client.account_holders.retrieve_document(\n document_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n account_holder_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(document.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdocument, err := client.AccountHolders.GetDocument(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", document.Token)\n}\n',
},
ruby: {
method: 'account_holders.retrieve_document',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndocument = lithic.account_holders.retrieve_document(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n account_holder_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(document)',
},
- typescript: {
- method: 'client.accountHolders.retrieveDocument',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst document = await client.accountHolders.retrieveDocument(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { account_holder_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(document.token);",
+ 'curl https://api.lithic.com/v1/account_holders/$ACCOUNT_HOLDER_TOKEN/documents/$DOCUMENT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -646,15 +646,17 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.accountHolders.list(begin?: string, email?: string, end?: string, ending_before?: string, external_id?: string, first_name?: string, last_name?: string, legal_business_name?: string, limit?: number, phone_number?: string, starting_after?: string): { token: string; created: string; account_token?: string; beneficial_owner_individuals?: object[]; business_account_token?: string; business_entity?: object; control_person?: object; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: object; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: required_document[]; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: object; website_url?: string; }`\n\n**get** `/v1/account_holders`\n\nGet a list of individual or business account holders and their KYC or KYB evaluation status.\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `email?: string`\n Email address of the account holder. The query must be an exact match, case insensitive.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `external_id?: string`\n If applicable, represents the external_id associated with the account_holder.\n\n- `first_name?: string`\n (Individual Account Holders only) The first name of the account holder. The query is case insensitive and supports partial matches.\n\n- `last_name?: string`\n (Individual Account Holders only) The last name of the account holder. The query is case insensitive and supports partial matches.\n\n- `legal_business_name?: string`\n (Business Account Holders only) The legal business name of the account holder. The query is case insensitive and supports partial matches.\n\n- `limit?: number`\n The number of account_holders to limit the response to.\n\n- `phone_number?: string`\n Phone number of the account holder. The query must be an exact match.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; created: string; account_token?: string; beneficial_owner_individuals?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }[]; business_account_token?: string; business_entity?: { address: object; dba_business_name: string; entity_token: string; government_id: string; legal_business_name: string; phone_numbers: string[]; parent_company?: string; }; control_person?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: { address: object; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: { created?: string; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; updated?: string; }; website_url?: string; }`\n\n - `token: string`\n - `created: string`\n - `account_token?: string`\n - `beneficial_owner_individuals?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }[]`\n - `business_account_token?: string`\n - `business_entity?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dba_business_name: string; entity_token: string; government_id: string; legal_business_name: string; phone_numbers: string[]; parent_company?: string; }`\n - `control_person?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }`\n - `email?: string`\n - `exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'`\n - `external_id?: string`\n - `individual?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; entity_token: string; first_name: string; last_name: string; phone_number: string; }`\n - `naics_code?: string`\n - `nature_of_business?: string`\n - `phone_number?: string`\n - `required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]`\n - `status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'`\n - `status_reasons?: string[]`\n - `user_type?: 'BUSINESS' | 'INDIVIDUAL'`\n - `verification_application?: { created?: string; status?: 'ACCEPTED' | 'PENDING_REVIEW' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; updated?: string; }`\n - `website_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const accountHolder of client.accountHolders.list()) {\n console.log(accountHolder);\n}\n```",
perLanguage: {
- go: {
- method: 'client.AccountHolders.List',
+ typescript: {
+ method: 'client.accountHolders.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.AccountHolders.List(context.TODO(), lithic.AccountHolderListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
- },
- http: {
- example: 'curl https://api.lithic.com/v1/account_holders \\\n -H "Authorization: $LITHIC_API_KEY"',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const accountHolder of client.accountHolders.list()) {\n console.log(accountHolder.beneficial_owner_individuals);\n}",
},
- java: {
+ python: {
+ method: 'account_holders.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.account_holders.list()\npage = page.data[0]\nprint(page.beneficial_owner_individuals)',
+ },
+ java: {
method: 'accountHolders().list',
example:
'package com.lithic.api.example;\n\nimport com.lithic.api.client.LithicClient;\nimport com.lithic.api.client.okhttp.LithicOkHttpClient;\nimport com.lithic.api.models.AccountHolderListPage;\nimport com.lithic.api.models.AccountHolderListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n LithicClient client = LithicOkHttpClient.fromEnv();\n\n AccountHolderListPage page = client.accountHolders().list();\n }\n}',
@@ -664,20 +666,18 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountHolderListPage\nimport com.lithic.api.models.AccountHolderListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: AccountHolderListPage = client.accountHolders().list()\n}',
},
- python: {
- method: 'account_holders.list',
+ go: {
+ method: 'client.AccountHolders.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.account_holders.list()\npage = page.data[0]\nprint(page.beneficial_owner_individuals)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.AccountHolders.List(context.TODO(), lithic.AccountHolderListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'account_holders.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.account_holders.list\n\nputs(page)',
},
- typescript: {
- method: 'client.accountHolders.list',
- example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const accountHolder of client.accountHolders.list()) {\n console.log(accountHolder.beneficial_owner_individuals);\n}",
+ http: {
+ example: 'curl https://api.lithic.com/v1/account_holders \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -700,14 +700,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## simulate_enrollment_review\n\n`client.accountHolders.simulateEnrollmentReview(account_holder_token?: string, status?: 'ACCEPTED' | 'REJECTED' | 'PENDING_REVIEW', status_reasons?: string[]): { token?: string; account_token?: string; beneficial_owner_individuals?: object[]; business_account_token?: string; business_entity?: kyb_business_entity; control_person?: object; created?: string; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: object; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: required_document[]; status?: 'ACCEPTED' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: object; website_url?: string; }`\n\n**post** `/v1/simulate/account_holders/enrollment_review`\n\n Simulates an enrollment review for an account holder. This endpoint is only applicable for workflows that may required intervention such as `KYB_BASIC`. \n\n### Parameters\n\n- `account_holder_token?: string`\n The account holder which to perform the simulation upon.\n\n- `status?: 'ACCEPTED' | 'REJECTED' | 'PENDING_REVIEW'`\n An account holder's status for use within the simulation.\n\n- `status_reasons?: string[]`\n Status reason that will be associated with the simulated account holder status. Only required for a `REJECTED` status.\n\n### Returns\n\n- `{ token?: string; account_token?: string; beneficial_owner_individuals?: { address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }[]; business_account_token?: string; business_entity?: { address: object; government_id: string; legal_business_name: string; phone_numbers: string[]; dba_business_name?: string; parent_company?: string; }; control_person?: { address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }; created?: string; email?: string; exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'; external_id?: string; individual?: { address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }; naics_code?: string; nature_of_business?: string; phone_number?: string; required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]; status?: 'ACCEPTED' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons?: string[]; user_type?: 'BUSINESS' | 'INDIVIDUAL'; verification_application?: { created: string; status: 'ACCEPTED' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons: string[]; updated: string; ky_passed_at?: string; }; website_url?: string; }`\n\n - `token?: string`\n - `account_token?: string`\n - `beneficial_owner_individuals?: { address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }[]`\n - `business_account_token?: string`\n - `business_entity?: { address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; government_id: string; legal_business_name: string; phone_numbers: string[]; dba_business_name?: string; parent_company?: string; }`\n - `control_person?: { address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }`\n - `created?: string`\n - `email?: string`\n - `exemption_type?: 'AUTHORIZED_USER' | 'PREPAID_CARD_USER'`\n - `external_id?: string`\n - `individual?: { address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob?: string; email?: string; first_name?: string; government_id?: string; last_name?: string; phone_number?: string; }`\n - `naics_code?: string`\n - `nature_of_business?: string`\n - `phone_number?: string`\n - `required_documents?: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]`\n - `status?: 'ACCEPTED' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'`\n - `status_reasons?: string[]`\n - `user_type?: 'BUSINESS' | 'INDIVIDUAL'`\n - `verification_application?: { created: string; status: 'ACCEPTED' | 'PENDING_DOCUMENT' | 'PENDING_RESUBMIT' | 'REJECTED'; status_reasons: string[]; updated: string; ky_passed_at?: string; }`\n - `website_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.accountHolders.simulateEnrollmentReview();\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.AccountHolders.SimulateEnrollmentReview',
+ typescript: {
+ method: 'client.accountHolders.simulateEnrollmentReview',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.AccountHolders.SimulateEnrollmentReview(context.TODO(), lithic.AccountHolderSimulateEnrollmentReviewParams{\n\t\tAccountHolderToken: lithic.F("1415964d-4400-4d79-9fb3-eee0faaee4e4"),\n\t\tStatus: lithic.F(lithic.AccountHolderSimulateEnrollmentReviewParamsStatusAccepted),\n\t\tStatusReasons: lithic.F([]lithic.AccountHolderSimulateEnrollmentReviewParamsStatusReason{}),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.BeneficialOwnerIndividuals)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.accountHolders.simulateEnrollmentReview({\n account_holder_token: '1415964d-4400-4d79-9fb3-eee0faaee4e4',\n status: 'ACCEPTED',\n status_reasons: [],\n});\n\nconsole.log(response.beneficial_owner_individuals);",
},
- http: {
+ python: {
+ method: 'account_holders.simulate_enrollment_review',
example:
- "curl https://api.lithic.com/v1/simulate/account_holders/enrollment_review \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.account_holders.simulate_enrollment_review(\n account_holder_token="1415964d-4400-4d79-9fb3-eee0faaee4e4",\n status="ACCEPTED",\n status_reasons=[],\n)\nprint(response.beneficial_owner_individuals)',
},
java: {
method: 'accountHolders().simulateEnrollmentReview',
@@ -719,20 +720,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountHolderSimulateEnrollmentReviewParams\nimport com.lithic.api.models.AccountHolderSimulateEnrollmentReviewResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: AccountHolderSimulateEnrollmentReviewResponse = client.accountHolders().simulateEnrollmentReview()\n}',
},
- python: {
- method: 'account_holders.simulate_enrollment_review',
+ go: {
+ method: 'client.AccountHolders.SimulateEnrollmentReview',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.account_holders.simulate_enrollment_review(\n account_holder_token="1415964d-4400-4d79-9fb3-eee0faaee4e4",\n status="ACCEPTED",\n status_reasons=[],\n)\nprint(response.beneficial_owner_individuals)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.AccountHolders.SimulateEnrollmentReview(context.TODO(), lithic.AccountHolderSimulateEnrollmentReviewParams{\n\t\tAccountHolderToken: lithic.F("1415964d-4400-4d79-9fb3-eee0faaee4e4"),\n\t\tStatus: lithic.F(lithic.AccountHolderSimulateEnrollmentReviewParamsStatusAccepted),\n\t\tStatusReasons: lithic.F([]lithic.AccountHolderSimulateEnrollmentReviewParamsStatusReason{}),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.BeneficialOwnerIndividuals)\n}\n',
},
ruby: {
method: 'account_holders.simulate_enrollment_review',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.account_holders.simulate_enrollment_review\n\nputs(response)',
},
- typescript: {
- method: 'client.accountHolders.simulateEnrollmentReview',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.accountHolders.simulateEnrollmentReview({\n account_holder_token: '1415964d-4400-4d79-9fb3-eee0faaee4e4',\n status: 'ACCEPTED',\n status_reasons: [],\n});\n\nconsole.log(response.beneficial_owner_individuals);",
+ "curl https://api.lithic.com/v1/simulate/account_holders/enrollment_review \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
},
},
},
@@ -755,14 +755,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## simulate_enrollment_document_review\n\n`client.accountHolders.simulateEnrollmentDocumentReview(document_upload_token: string, status: 'UPLOADED' | 'ACCEPTED' | 'REJECTED' | 'PARTIAL_APPROVAL', accepted_entity_status_reasons?: string[], status_reason?: string): { token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: object[]; }`\n\n**post** `/v1/simulate/account_holders/enrollment_document_review`\n\nSimulates a review for an account holder document upload.\n\n### Parameters\n\n- `document_upload_token: string`\n The account holder document upload which to perform the simulation upon.\n\n- `status: 'UPLOADED' | 'ACCEPTED' | 'REJECTED' | 'PARTIAL_APPROVAL'`\n An account holder document's upload status for use within the simulation.\n\n- `accepted_entity_status_reasons?: string[]`\n A list of status reasons associated with a KYB account holder in PENDING_REVIEW\n\n- `status_reason?: string`\n Status reason that will be associated with the simulated account holder status. Only required for a `REJECTED` status or `PARTIAL_APPROVAL` status.\n\n### Returns\n\n- `{ token: string; account_holder_token: string; document_type: string; entity_token: string; required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]; }`\n Describes the document and the required document image uploads\nrequired to re-run KYC\n\n - `token: string`\n - `account_holder_token: string`\n - `document_type: string`\n - `entity_token: string`\n - `required_document_uploads: { token: string; accepted_entity_status_reasons: string[]; created: string; image_type: 'FRONT' | 'BACK'; rejected_entity_status_reasons: string[]; status: 'ACCEPTED' | 'REJECTED' | 'PENDING_UPLOAD' | 'UPLOADED' | 'PARTIAL_APPROVAL'; status_reasons: string[]; updated: string; upload_url: string; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst document = await client.accountHolders.simulateEnrollmentDocumentReview({ document_upload_token: 'b11cd67b-0a52-4180-8365-314f3def5426', status: 'UPLOADED' });\n\nconsole.log(document);\n```",
perLanguage: {
- go: {
- method: 'client.AccountHolders.SimulateEnrollmentDocumentReview',
+ typescript: {
+ method: 'client.accountHolders.simulateEnrollmentDocumentReview',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdocument, err := client.AccountHolders.SimulateEnrollmentDocumentReview(context.TODO(), lithic.AccountHolderSimulateEnrollmentDocumentReviewParams{\n\t\tDocumentUploadToken: lithic.F("b11cd67b-0a52-4180-8365-314f3def5426"),\n\t\tStatus: lithic.F(lithic.AccountHolderSimulateEnrollmentDocumentReviewParamsStatusUploaded),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", document.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst document = await client.accountHolders.simulateEnrollmentDocumentReview({\n document_upload_token: 'b11cd67b-0a52-4180-8365-314f3def5426',\n status: 'UPLOADED',\n});\n\nconsole.log(document.token);",
},
- http: {
+ python: {
+ method: 'account_holders.simulate_enrollment_document_review',
example:
- 'curl https://api.lithic.com/v1/simulate/account_holders/enrollment_document_review \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "document_upload_token": "b11cd67b-0a52-4180-8365-314f3def5426",\n "status": "UPLOADED"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndocument = client.account_holders.simulate_enrollment_document_review(\n document_upload_token="b11cd67b-0a52-4180-8365-314f3def5426",\n status="UPLOADED",\n)\nprint(document.token)',
},
java: {
method: 'accountHolders().simulateEnrollmentDocumentReview',
@@ -774,20 +775,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountHolderSimulateEnrollmentDocumentReviewParams\nimport com.lithic.api.models.Document\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: AccountHolderSimulateEnrollmentDocumentReviewParams = AccountHolderSimulateEnrollmentDocumentReviewParams.builder()\n .documentUploadToken("b11cd67b-0a52-4180-8365-314f3def5426")\n .status(AccountHolderSimulateEnrollmentDocumentReviewParams.Status.UPLOADED)\n .build()\n val document: Document = client.accountHolders().simulateEnrollmentDocumentReview(params)\n}',
},
- python: {
- method: 'account_holders.simulate_enrollment_document_review',
+ go: {
+ method: 'client.AccountHolders.SimulateEnrollmentDocumentReview',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndocument = client.account_holders.simulate_enrollment_document_review(\n document_upload_token="b11cd67b-0a52-4180-8365-314f3def5426",\n status="UPLOADED",\n)\nprint(document.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdocument, err := client.AccountHolders.SimulateEnrollmentDocumentReview(context.TODO(), lithic.AccountHolderSimulateEnrollmentDocumentReviewParams{\n\t\tDocumentUploadToken: lithic.F("b11cd67b-0a52-4180-8365-314f3def5426"),\n\t\tStatus: lithic.F(lithic.AccountHolderSimulateEnrollmentDocumentReviewParamsStatusUploaded),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", document.Token)\n}\n',
},
ruby: {
method: 'account_holders.simulate_enrollment_document_review',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndocument = lithic.account_holders.simulate_enrollment_document_review(\n document_upload_token: "b11cd67b-0a52-4180-8365-314f3def5426",\n status: :UPLOADED\n)\n\nputs(document)',
},
- typescript: {
- method: 'client.accountHolders.simulateEnrollmentDocumentReview',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst document = await client.accountHolders.simulateEnrollmentDocumentReview({\n document_upload_token: 'b11cd67b-0a52-4180-8365-314f3def5426',\n status: 'UPLOADED',\n});\n\nconsole.log(document.token);",
+ 'curl https://api.lithic.com/v1/simulate/account_holders/enrollment_document_review \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "document_upload_token": "b11cd67b-0a52-4180-8365-314f3def5426",\n "status": "UPLOADED"\n }\'',
},
},
},
@@ -816,14 +816,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## create\n\n`client.accountHolders.entities.create(account_holder_token: string, address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }, dob: string, email: string, first_name: string, government_id: string, last_name: string, phone_number: string, type: 'BENEFICIAL_OWNER_INDIVIDUAL' | 'CONTROL_PERSON'): { token: string; account_holder_token: string; created: string; required_documents: required_document[]; status: 'ACCEPTED' | 'INACTIVE' | 'PENDING_REVIEW' | 'REJECTED'; status_reasons: string[]; }`\n\n**post** `/v1/account_holders/{account_holder_token}/entities`\n\nCreate a new beneficial owner individual or replace the control person entity on an existing KYB account holder. This endpoint is only applicable for account holders enrolled through a KYB workflow with the Persona KYB provider.\nA new control person can only replace the existing one. A maximum of 4 beneficial owners can be associated with an account holder.\n\n### Parameters\n\n- `account_holder_token: string`\n\n- `address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n Individual's current address - PO boxes, UPS drops, and FedEx drops are not acceptable; APO/FPO are acceptable. Only USA addresses are currently supported.\n - `address1: string`\n Valid deliverable address (no PO boxes).\n - `city: string`\n Name of city.\n - `country: string`\n Valid country code. Only USA is currently supported, entered in uppercase ISO 3166-1 alpha-3 three-character format.\n - `postal_code: string`\n Valid postal code. Only USA ZIP codes are currently supported, entered as a five-digit ZIP or nine-digit ZIP+4.\n - `state: string`\n Valid state code. Only USA state codes are currently supported, entered in uppercase ISO 3166-2 two-character format.\n - `address2?: string`\n Unit or apartment number (if applicable).\n\n- `dob: string`\n Individual's date of birth, as an RFC 3339 date.\n\n- `email: string`\n Individual's email address. If utilizing Lithic for chargeback processing, this customer email address may be used to communicate dispute status and resolution.\n\n- `first_name: string`\n Individual's first name, as it appears on government-issued identity documents.\n\n- `government_id: string`\n Government-issued identification number (required for identity verification and compliance with banking regulations). Social Security Numbers (SSN) and Individual Taxpayer Identification Numbers (ITIN) are currently supported, entered as full nine-digits, with or without hyphens\n\n- `last_name: string`\n Individual's last name, as it appears on government-issued identity documents.\n\n- `phone_number: string`\n Individual's phone number, entered in E.164 format.\n\n- `type: 'BENEFICIAL_OWNER_INDIVIDUAL' | 'CONTROL_PERSON'`\n The type of entity to create on the account holder\n\n### Returns\n\n- `{ token: string; account_holder_token: string; created: string; required_documents: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]; status: 'ACCEPTED' | 'INACTIVE' | 'PENDING_REVIEW' | 'REJECTED'; status_reasons: string[]; }`\n Response body for creating a new beneficial owner or replacing the control person entity on an existing KYB account holder.\n\n - `token: string`\n - `account_holder_token: string`\n - `created: string`\n - `required_documents: { entity_token: string; status_reasons: string[]; valid_documents: string[]; }[]`\n - `status: 'ACCEPTED' | 'INACTIVE' | 'PENDING_REVIEW' | 'REJECTED'`\n - `status_reasons: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst entity = await client.accountHolders.entities.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n address: {\n address1: '300 Normal Forest Way',\n city: 'Portland',\n country: 'USA',\n postal_code: '90210',\n state: 'OR',\n},\n dob: '1991-03-08T08:00:00Z',\n email: 'tim@left-earth.com',\n first_name: 'Timmy',\n government_id: '211-23-1412',\n last_name: 'Turner',\n phone_number: '+15555555555',\n type: 'BENEFICIAL_OWNER_INDIVIDUAL',\n});\n\nconsole.log(entity);\n```",
perLanguage: {
- go: {
- method: 'client.AccountHolders.Entities.New',
+ typescript: {
+ method: 'client.accountHolders.entities.create',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tentity, err := client.AccountHolders.Entities.New(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AccountHolderEntityNewParams{\n\t\t\tAddress: lithic.F(lithic.AccountHolderEntityNewParamsAddress{\n\t\t\t\tAddress1: lithic.F("300 Normal Forest Way"),\n\t\t\t\tCity: lithic.F("Portland"),\n\t\t\t\tCountry: lithic.F("USA"),\n\t\t\t\tPostalCode: lithic.F("90210"),\n\t\t\t\tState: lithic.F("OR"),\n\t\t\t}),\n\t\t\tDob: lithic.F("1991-03-08T08:00:00Z"),\n\t\t\tEmail: lithic.F("tim@left-earth.com"),\n\t\t\tFirstName: lithic.F("Timmy"),\n\t\t\tGovernmentID: lithic.F("211-23-1412"),\n\t\t\tLastName: lithic.F("Turner"),\n\t\t\tPhoneNumber: lithic.F("+15555555555"),\n\t\t\tType: lithic.F(lithic.AccountHolderEntityNewParamsTypeBeneficialOwnerIndividual),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", entity.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst entity = await client.accountHolders.entities.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n address: {\n address1: '300 Normal Forest Way',\n city: 'Portland',\n country: 'USA',\n postal_code: '90210',\n state: 'OR',\n },\n dob: '1991-03-08T08:00:00Z',\n email: 'tim@left-earth.com',\n first_name: 'Timmy',\n government_id: '211-23-1412',\n last_name: 'Turner',\n phone_number: '+15555555555',\n type: 'BENEFICIAL_OWNER_INDIVIDUAL',\n});\n\nconsole.log(entity.token);",
},
- http: {
+ python: {
+ method: 'account_holders.entities.create',
example:
- 'curl https://api.lithic.com/v1/account_holders/$ACCOUNT_HOLDER_TOKEN/entities \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "address": {\n "address1": "300 Normal Forest Way",\n "city": "Portland",\n "country": "USA",\n "postal_code": "90210",\n "state": "OR"\n },\n "dob": "1991-03-08T08:00:00Z",\n "email": "tim@left-earth.com",\n "first_name": "Timmy",\n "government_id": "211-23-1412",\n "last_name": "Turner",\n "phone_number": "+15555555555",\n "type": "BENEFICIAL_OWNER_INDIVIDUAL"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nentity = client.account_holders.entities.create(\n account_holder_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n address={\n "address1": "300 Normal Forest Way",\n "city": "Portland",\n "country": "USA",\n "postal_code": "90210",\n "state": "OR",\n },\n dob="1991-03-08T08:00:00Z",\n email="tim@left-earth.com",\n first_name="Timmy",\n government_id="211-23-1412",\n last_name="Turner",\n phone_number="+15555555555",\n type="BENEFICIAL_OWNER_INDIVIDUAL",\n)\nprint(entity.token)',
},
java: {
method: 'accountHolders().entities().create',
@@ -835,20 +836,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountHolderEntityCreateParams\nimport com.lithic.api.models.EntityCreateResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: AccountHolderEntityCreateParams = AccountHolderEntityCreateParams.builder()\n .accountHolderToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .address(AccountHolderEntityCreateParams.Address.builder()\n .address1("300 Normal Forest Way")\n .city("Portland")\n .country("USA")\n .postalCode("90210")\n .state("OR")\n .build())\n .dob("1991-03-08T08:00:00Z")\n .email("tim@left-earth.com")\n .firstName("Timmy")\n .governmentId("211-23-1412")\n .lastName("Turner")\n .phoneNumber("+15555555555")\n .type(AccountHolderEntityCreateParams.EntityType.BENEFICIAL_OWNER_INDIVIDUAL)\n .build()\n val entity: EntityCreateResponse = client.accountHolders().entities().create(params)\n}',
},
- python: {
- method: 'account_holders.entities.create',
+ go: {
+ method: 'client.AccountHolders.Entities.New',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nentity = client.account_holders.entities.create(\n account_holder_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n address={\n "address1": "300 Normal Forest Way",\n "city": "Portland",\n "country": "USA",\n "postal_code": "90210",\n "state": "OR",\n },\n dob="1991-03-08T08:00:00Z",\n email="tim@left-earth.com",\n first_name="Timmy",\n government_id="211-23-1412",\n last_name="Turner",\n phone_number="+15555555555",\n type="BENEFICIAL_OWNER_INDIVIDUAL",\n)\nprint(entity.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tentity, err := client.AccountHolders.Entities.New(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AccountHolderEntityNewParams{\n\t\t\tAddress: lithic.F(lithic.AccountHolderEntityNewParamsAddress{\n\t\t\t\tAddress1: lithic.F("300 Normal Forest Way"),\n\t\t\t\tCity: lithic.F("Portland"),\n\t\t\t\tCountry: lithic.F("USA"),\n\t\t\t\tPostalCode: lithic.F("90210"),\n\t\t\t\tState: lithic.F("OR"),\n\t\t\t}),\n\t\t\tDob: lithic.F("1991-03-08T08:00:00Z"),\n\t\t\tEmail: lithic.F("tim@left-earth.com"),\n\t\t\tFirstName: lithic.F("Timmy"),\n\t\t\tGovernmentID: lithic.F("211-23-1412"),\n\t\t\tLastName: lithic.F("Turner"),\n\t\t\tPhoneNumber: lithic.F("+15555555555"),\n\t\t\tType: lithic.F(lithic.AccountHolderEntityNewParamsTypeBeneficialOwnerIndividual),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", entity.Token)\n}\n',
},
ruby: {
method: 'account_holders.entities.create',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nentity = lithic.account_holders.entities.create(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n address: {address1: "300 Normal Forest Way", city: "Portland", country: "USA", postal_code: "90210", state: "OR"},\n dob: "1991-03-08T08:00:00Z",\n email: "tim@left-earth.com",\n first_name: "Timmy",\n government_id: "211-23-1412",\n last_name: "Turner",\n phone_number: "+15555555555",\n type: :BENEFICIAL_OWNER_INDIVIDUAL\n)\n\nputs(entity)',
},
- typescript: {
- method: 'client.accountHolders.entities.create',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst entity = await client.accountHolders.entities.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n address: {\n address1: '300 Normal Forest Way',\n city: 'Portland',\n country: 'USA',\n postal_code: '90210',\n state: 'OR',\n },\n dob: '1991-03-08T08:00:00Z',\n email: 'tim@left-earth.com',\n first_name: 'Timmy',\n government_id: '211-23-1412',\n last_name: 'Turner',\n phone_number: '+15555555555',\n type: 'BENEFICIAL_OWNER_INDIVIDUAL',\n});\n\nconsole.log(entity.token);",
+ 'curl https://api.lithic.com/v1/account_holders/$ACCOUNT_HOLDER_TOKEN/entities \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "address": {\n "address1": "300 Normal Forest Way",\n "city": "Portland",\n "country": "USA",\n "postal_code": "90210",\n "state": "OR"\n },\n "dob": "1991-03-08T08:00:00Z",\n "email": "tim@left-earth.com",\n "first_name": "Timmy",\n "government_id": "211-23-1412",\n "last_name": "Turner",\n "phone_number": "+15555555555",\n "type": "BENEFICIAL_OWNER_INDIVIDUAL"\n }\'',
},
},
},
@@ -867,14 +867,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## delete\n\n`client.accountHolders.entities.delete(account_holder_token: string, entity_token: string): { token: string; account_holder_token: string; address: object; dob: string; email: string; first_name: string; last_name: string; phone_number: string; status: 'ACCEPTED' | 'INACTIVE' | 'PENDING_REVIEW' | 'REJECTED'; type: 'BENEFICIAL_OWNER_INDIVIDUAL' | 'CONTROL_PERSON'; }`\n\n**delete** `/v1/account_holders/{account_holder_token}/entities/{entity_token}`\n\nDeactivate a beneficial owner individual on an existing KYB account holder. Only beneficial owner individuals can be deactivated.\n\n### Parameters\n\n- `account_holder_token: string`\n\n- `entity_token: string`\n\n### Returns\n\n- `{ token: string; account_holder_token: string; address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; dob: string; email: string; first_name: string; last_name: string; phone_number: string; status: 'ACCEPTED' | 'INACTIVE' | 'PENDING_REVIEW' | 'REJECTED'; type: 'BENEFICIAL_OWNER_INDIVIDUAL' | 'CONTROL_PERSON'; }`\n Information about an entity associated with an account holder\n\n - `token: string`\n - `account_holder_token: string`\n - `address: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `dob: string`\n - `email: string`\n - `first_name: string`\n - `last_name: string`\n - `phone_number: string`\n - `status: 'ACCEPTED' | 'INACTIVE' | 'PENDING_REVIEW' | 'REJECTED'`\n - `type: 'BENEFICIAL_OWNER_INDIVIDUAL' | 'CONTROL_PERSON'`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst accountHolderEntity = await client.accountHolders.entities.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { account_holder_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(accountHolderEntity);\n```",
perLanguage: {
- go: {
- method: 'client.AccountHolders.Entities.Delete',
+ typescript: {
+ method: 'client.accountHolders.entities.delete',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\taccountHolderEntity, err := client.AccountHolders.Entities.Delete(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", accountHolderEntity.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst accountHolderEntity = await client.accountHolders.entities.delete(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { account_holder_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(accountHolderEntity.token);",
},
- http: {
+ python: {
+ method: 'account_holders.entities.delete',
example:
- 'curl https://api.lithic.com/v1/account_holders/$ACCOUNT_HOLDER_TOKEN/entities/$ENTITY_TOKEN \\\n -X DELETE \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\naccount_holder_entity = client.account_holders.entities.delete(\n entity_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n account_holder_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(account_holder_entity.token)',
},
java: {
method: 'accountHolders().entities().delete',
@@ -886,20 +887,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountHolderEntity\nimport com.lithic.api.models.AccountHolderEntityDeleteParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: AccountHolderEntityDeleteParams = AccountHolderEntityDeleteParams.builder()\n .accountHolderToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .entityToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val accountHolderEntity: AccountHolderEntity = client.accountHolders().entities().delete(params)\n}',
},
- python: {
- method: 'account_holders.entities.delete',
+ go: {
+ method: 'client.AccountHolders.Entities.Delete',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\naccount_holder_entity = client.account_holders.entities.delete(\n entity_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n account_holder_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(account_holder_entity.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\taccountHolderEntity, err := client.AccountHolders.Entities.Delete(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", accountHolderEntity.Token)\n}\n',
},
ruby: {
method: 'account_holders.entities.delete',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\naccount_holder_entity = lithic.account_holders.entities.delete(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n account_holder_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(account_holder_entity)',
},
- typescript: {
- method: 'client.accountHolders.entities.delete',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst accountHolderEntity = await client.accountHolders.entities.delete(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { account_holder_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(accountHolderEntity.token);",
+ 'curl https://api.lithic.com/v1/account_holders/$ACCOUNT_HOLDER_TOKEN/entities/$ENTITY_TOKEN \\\n -X DELETE \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -917,14 +917,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response:
"{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }",
perLanguage: {
- go: {
- method: 'client.AuthRules.V2.New',
+ typescript: {
+ method: 'client.authRules.v2.create',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n\t"github.com/lithic-com/lithic-go/shared"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tauthRule, err := client.AuthRules.V2.New(context.TODO(), lithic.AuthRuleV2NewParams{\n\t\tBody: lithic.AuthRuleV2NewParamsBodyAccountLevelRule{\n\t\t\tParameters: lithic.F[lithic.AuthRuleV2NewParamsBodyAccountLevelRuleParametersUnion](lithic.ConditionalBlockParameters{\n\t\t\t\tConditions: lithic.F([]lithic.AuthRuleConditionParam{{\n\t\t\t\t\tAttribute: lithic.F(lithic.ConditionalAttributeMcc),\n\t\t\t\t\tOperation: lithic.F(lithic.ConditionalOperationIsOneOf),\n\t\t\t\t\tValue: lithic.F[lithic.ConditionalValueUnionParam](shared.UnionString("string")),\n\t\t\t\t}}),\n\t\t\t}),\n\t\t\tType: lithic.F(lithic.AuthRuleV2NewParamsBodyAccountLevelRuleTypeConditionalBlock),\n\t\t},\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", authRule.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst authRule = await client.authRules.v2.create({\n parameters: {\n conditions: [\n {\n attribute: 'MCC',\n operation: 'IS_ONE_OF',\n value: 'string',\n },\n ],\n },\n type: 'CONDITIONAL_BLOCK',\n});\n\nconsole.log(authRule.token);",
},
- http: {
+ python: {
+ method: 'auth_rules.v2.create',
example:
- 'curl https://api.lithic.com/v2/auth_rules \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "parameters": {\n "conditions": [\n {\n "attribute": "MCC",\n "operation": "IS_ONE_OF",\n "value": "string"\n }\n ]\n },\n "type": "CONDITIONAL_BLOCK"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nauth_rule = client.auth_rules.v2.create(\n parameters={\n "conditions": [{\n "attribute": "MCC",\n "operation": "IS_ONE_OF",\n "value": "string",\n }]\n },\n type="CONDITIONAL_BLOCK",\n)\nprint(auth_rule.token)',
},
java: {
method: 'authRules().v2().create',
@@ -936,20 +937,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRule\nimport com.lithic.api.models.AuthRuleCondition\nimport com.lithic.api.models.AuthRuleV2CreateParams\nimport com.lithic.api.models.ConditionalAttribute\nimport com.lithic.api.models.ConditionalBlockParameters\nimport com.lithic.api.models.ConditionalOperation\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: AuthRuleV2CreateParams.Body.AccountLevelRule = AuthRuleV2CreateParams.Body.AccountLevelRule.builder()\n .parameters(ConditionalBlockParameters.builder()\n .addCondition(AuthRuleCondition.builder()\n .attribute(ConditionalAttribute.MCC)\n .operation(ConditionalOperation.IS_ONE_OF)\n .value("string")\n .build())\n .build())\n .type(AuthRuleV2CreateParams.Body.AccountLevelRule.AuthRuleType.CONDITIONAL_BLOCK)\n .build()\n val authRule: AuthRule = client.authRules().v2().create(params)\n}',
},
- python: {
- method: 'auth_rules.v2.create',
+ go: {
+ method: 'client.AuthRules.V2.New',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nauth_rule = client.auth_rules.v2.create(\n parameters={\n "conditions": [{\n "attribute": "MCC",\n "operation": "IS_ONE_OF",\n "value": "string",\n }]\n },\n type="CONDITIONAL_BLOCK",\n)\nprint(auth_rule.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n\t"github.com/lithic-com/lithic-go/shared"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tauthRule, err := client.AuthRules.V2.New(context.TODO(), lithic.AuthRuleV2NewParams{\n\t\tBody: lithic.AuthRuleV2NewParamsBodyAccountLevelRule{\n\t\t\tParameters: lithic.F[lithic.AuthRuleV2NewParamsBodyAccountLevelRuleParametersUnion](lithic.ConditionalBlockParameters{\n\t\t\t\tConditions: lithic.F([]lithic.AuthRuleConditionParam{{\n\t\t\t\t\tAttribute: lithic.F(lithic.ConditionalAttributeMcc),\n\t\t\t\t\tOperation: lithic.F(lithic.ConditionalOperationIsOneOf),\n\t\t\t\t\tValue: lithic.F[lithic.ConditionalValueUnionParam](shared.UnionString("string")),\n\t\t\t\t}}),\n\t\t\t}),\n\t\t\tType: lithic.F(lithic.AuthRuleV2NewParamsBodyAccountLevelRuleTypeConditionalBlock),\n\t\t},\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", authRule.Token)\n}\n',
},
ruby: {
method: 'auth_rules.v2.create',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nauth_rule = lithic.auth_rules.v2.create(\n body: {\n parameters: {conditions: [{attribute: :MCC, operation: :IS_ONE_OF, value: "string"}]},\n type: :CONDITIONAL_BLOCK\n }\n)\n\nputs(auth_rule)',
},
- typescript: {
- method: 'client.authRules.v2.create',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst authRule = await client.authRules.v2.create({\n parameters: {\n conditions: [\n {\n attribute: 'MCC',\n operation: 'IS_ONE_OF',\n value: 'string',\n },\n ],\n },\n type: 'CONDITIONAL_BLOCK',\n});\n\nconsole.log(authRule.token);",
+ 'curl https://api.lithic.com/v2/auth_rules \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "parameters": {\n "conditions": [\n {\n "attribute": "MCC",\n "operation": "IS_ONE_OF",\n "value": "string"\n }\n ]\n },\n "type": "CONDITIONAL_BLOCK"\n }\'',
},
},
},
@@ -977,13 +977,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.authRules.v2.list(account_token?: string, business_account_token?: string, card_token?: string, ending_before?: string, event_stream?: string, event_streams?: string[], page_size?: number, scope?: 'PROGRAM' | 'ACCOUNT' | 'BUSINESS_ACCOUNT' | 'CARD' | 'ANY', starting_after?: string): { token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: object; draft_version: object; event_stream: event_stream; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n**get** `/v2/auth_rules`\n\nLists V2 Auth rules\n\n### Parameters\n\n- `account_token?: string`\n Only return Auth Rules that are bound to the provided account token.\n\n- `business_account_token?: string`\n Only return Auth Rules that are bound to the provided business account token.\n\n- `card_token?: string`\n Only return Auth Rules that are bound to the provided card token.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `event_stream?: string`\n Deprecated: Use event_streams instead. Only return Auth rules that are executed during the provided event stream.\n\n- `event_streams?: string[]`\n Only return Auth rules that are executed during any of the provided event streams. If event_streams and event_stream are specified, the values will be combined.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `scope?: 'PROGRAM' | 'ACCOUNT' | 'BUSINESS_ACCOUNT' | 'CARD' | 'ANY'`\n Only return Auth Rules that are bound to the provided scope.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n - `token: string`\n - `account_tokens: string[]`\n - `business_account_tokens: string[]`\n - `card_tokens: string[]`\n - `current_version: { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; parameters?: object; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object | object[]; }; version: number; }`\n - `draft_version: { error: string; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; parameters?: object; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object | object[]; }; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }`\n - `event_stream: string`\n - `lithic_managed: boolean`\n - `name: string`\n - `program_level: boolean`\n - `state: 'ACTIVE' | 'INACTIVE'`\n - `type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'`\n - `excluded_account_tokens?: string[]`\n - `excluded_business_account_tokens?: string[]`\n - `excluded_card_tokens?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const authRule of client.authRules.v2.list()) {\n console.log(authRule);\n}\n```",
perLanguage: {
- go: {
- method: 'client.AuthRules.V2.List',
+ typescript: {
+ method: 'client.authRules.v2.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.AuthRules.V2.List(context.TODO(), lithic.AuthRuleV2ListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const authRule of client.authRules.v2.list()) {\n console.log(authRule.token);\n}",
},
- http: {
- example: 'curl https://api.lithic.com/v2/auth_rules \\\n -H "Authorization: $LITHIC_API_KEY"',
+ python: {
+ method: 'auth_rules.v2.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.auth_rules.v2.list()\npage = page.data[0]\nprint(page.token)',
},
java: {
method: 'authRules().v2().list',
@@ -995,20 +997,18 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRuleV2ListPage\nimport com.lithic.api.models.AuthRuleV2ListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: AuthRuleV2ListPage = client.authRules().v2().list()\n}',
},
- python: {
- method: 'auth_rules.v2.list',
+ go: {
+ method: 'client.AuthRules.V2.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.auth_rules.v2.list()\npage = page.data[0]\nprint(page.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.AuthRules.V2.List(context.TODO(), lithic.AuthRuleV2ListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'auth_rules.v2.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.auth_rules.v2.list\n\nputs(page)',
},
- typescript: {
- method: 'client.authRules.v2.list',
- example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const authRule of client.authRules.v2.list()) {\n console.log(authRule.token);\n}",
+ http: {
+ example: 'curl https://api.lithic.com/v2/auth_rules \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -1026,14 +1026,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.authRules.v2.retrieve(auth_rule_token: string): { token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: object; draft_version: object; event_stream: event_stream; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}`\n\nFetches a V2 Auth rule by its token\n\n### Parameters\n\n- `auth_rule_token: string`\n\n### Returns\n\n- `{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n - `token: string`\n - `account_tokens: string[]`\n - `business_account_tokens: string[]`\n - `card_tokens: string[]`\n - `current_version: { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; parameters?: object; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object | object[]; }; version: number; }`\n - `draft_version: { error: string; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; parameters?: object; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object | object[]; }; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }`\n - `event_stream: string`\n - `lithic_managed: boolean`\n - `name: string`\n - `program_level: boolean`\n - `state: 'ACTIVE' | 'INACTIVE'`\n - `type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'`\n - `excluded_account_tokens?: string[]`\n - `excluded_business_account_tokens?: string[]`\n - `excluded_card_tokens?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst authRule = await client.authRules.v2.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule);\n```",
perLanguage: {
- go: {
- method: 'client.AuthRules.V2.Get',
+ typescript: {
+ method: 'client.authRules.v2.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tauthRule, err := client.AuthRules.V2.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", authRule.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst authRule = await client.authRules.v2.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule.token);",
},
- http: {
+ python: {
+ method: 'auth_rules.v2.retrieve',
example:
- 'curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nauth_rule = client.auth_rules.v2.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(auth_rule.token)',
},
java: {
method: 'authRules().v2().retrieve',
@@ -1045,20 +1046,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRule\nimport com.lithic.api.models.AuthRuleV2RetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val authRule: AuthRule = client.authRules().v2().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'auth_rules.v2.retrieve',
+ go: {
+ method: 'client.AuthRules.V2.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nauth_rule = client.auth_rules.v2.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(auth_rule.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tauthRule, err := client.AuthRules.V2.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", authRule.Token)\n}\n',
},
ruby: {
method: 'auth_rules.v2.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nauth_rule = lithic.auth_rules.v2.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(auth_rule)',
},
- typescript: {
- method: 'client.authRules.v2.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst authRule = await client.authRules.v2.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule.token);",
+ 'curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -1078,14 +1078,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response:
"{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }",
perLanguage: {
- go: {
- method: 'client.AuthRules.V2.Update',
+ typescript: {
+ method: 'client.authRules.v2.update',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tauthRule, err := client.AuthRules.V2.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AuthRuleV2UpdateParams{\n\t\t\tBody: lithic.AuthRuleV2UpdateParamsBodyAccountLevelRule{},\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", authRule.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst authRule = await client.authRules.v2.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule.token);",
},
- http: {
+ python: {
+ method: 'auth_rules.v2.update',
example:
- "curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN \\\n -X PATCH \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nauth_rule = client.auth_rules.v2.update(\n auth_rule_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(auth_rule.token)',
},
java: {
method: 'authRules().v2().update',
@@ -1097,20 +1098,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRule\nimport com.lithic.api.models.AuthRuleV2UpdateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: AuthRuleV2UpdateParams = AuthRuleV2UpdateParams.builder()\n .authRuleToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .body(AuthRuleV2UpdateParams.Body.AccountLevelRule.builder().build())\n .build()\n val authRule: AuthRule = client.authRules().v2().update(params)\n}',
},
- python: {
- method: 'auth_rules.v2.update',
+ go: {
+ method: 'client.AuthRules.V2.Update',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nauth_rule = client.auth_rules.v2.update(\n auth_rule_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(auth_rule.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tauthRule, err := client.AuthRules.V2.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AuthRuleV2UpdateParams{\n\t\t\tBody: lithic.AuthRuleV2UpdateParamsBodyAccountLevelRule{},\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", authRule.Token)\n}\n',
},
ruby: {
method: 'auth_rules.v2.update',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nauth_rule = lithic.auth_rules.v2.update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", body: {})\n\nputs(auth_rule)',
},
- typescript: {
- method: 'client.authRules.v2.update',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst authRule = await client.authRules.v2.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule.token);",
+ "curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN \\\n -X PATCH \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
},
},
},
@@ -1126,14 +1126,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## delete\n\n`client.authRules.v2.delete(auth_rule_token: string): void`\n\n**delete** `/v2/auth_rules/{auth_rule_token}`\n\nDeletes a V2 Auth rule\n\n### Parameters\n\n- `auth_rule_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.authRules.v2.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')\n```",
perLanguage: {
- go: {
- method: 'client.AuthRules.V2.Delete',
+ typescript: {
+ method: 'client.authRules.v2.delete',
example:
- 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.AuthRules.V2.Delete(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.authRules.v2.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');",
},
- http: {
+ python: {
+ method: 'auth_rules.v2.delete',
example:
- 'curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN \\\n -X DELETE \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.auth_rules.v2.delete(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)',
},
java: {
method: 'authRules().v2().delete',
@@ -1145,20 +1146,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRuleV2DeleteParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.authRules().v2().delete("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'auth_rules.v2.delete',
+ go: {
+ method: 'client.AuthRules.V2.Delete',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.auth_rules.v2.delete(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)',
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.AuthRules.V2.Delete(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
},
ruby: {
method: 'auth_rules.v2.delete',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.auth_rules.v2.delete("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(result)',
},
- typescript: {
- method: 'client.authRules.v2.delete',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.authRules.v2.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');",
+ 'curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN \\\n -X DELETE \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -1180,14 +1180,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## draft\n\n`client.authRules.v2.draft(auth_rule_token: string, parameters?: { conditions: auth_rule_condition[]; } | { period: velocity_limit_period; scope: 'CARD' | 'ACCOUNT'; filters?: velocity_limit_filters; limit_amount?: number; limit_count?: number; } | { merchants: object[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: object[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: object[]; } | { action: object | object; conditions: object[]; } | { action: object | object; conditions: object[]; } | { code: string; features: rule_feature[]; }): { token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: object; draft_version: object; event_stream: event_stream; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n**post** `/v2/auth_rules/{auth_rule_token}/draft`\n\nCreates a new draft version of a rule that will be ran in shadow mode.\n\nThis can also be utilized to reset the draft parameters, causing a draft version to no longer be ran in shadow mode.\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `parameters?: { conditions: { attribute: conditional_attribute; operation: conditional_operation; value: conditional_value; }[]; } | { period: { duration: number; type: 'CUSTOM'; } | { type: 'DAY'; } | { type: 'WEEK'; day_of_week?: number; } | { type: 'MONTH'; day_of_month?: number; } | { type: 'YEAR'; day_of_month?: number; month?: number; }; scope: 'CARD' | 'ACCOUNT'; filters?: { exclude_countries?: string[]; exclude_mccs?: string[]; include_countries?: string[]; include_mccs?: string[]; include_pan_entry_modes?: string[]; }; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: string; value: string | number | string[] | string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: string; value: string | number | string[] | string; parameters?: { interval?: 'LIFETIME' | '7D' | '30D' | '90D'; scope?: 'CARD' | 'ACCOUNT' | 'BUSINESS_ACCOUNT'; }; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: string; value: string | number | string[] | string; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: string; value: string | number | string[] | string; }[]; } | { code: string; features: { type: 'AUTHORIZATION'; name?: string; } | { type: 'AUTHENTICATION'; name?: string; } | { type: 'TOKENIZATION'; name?: string; } | { type: 'ACH_RECEIPT'; name?: string; } | { type: 'CARD'; name?: string; } | { type: 'ACCOUNT_HOLDER'; name?: string; } | { type: 'IP_METADATA'; name?: string; } | { period: velocity_limit_period; scope: 'CARD' | 'ACCOUNT'; type: 'SPEND_VELOCITY'; filters?: velocity_limit_filters; name?: string; } | { scope: 'CARD' | 'ACCOUNT' | 'BUSINESS_ACCOUNT'; type: 'TRANSACTION_HISTORY_SIGNALS'; name?: string; }[]; }`\n Parameters for the Auth Rule\n\n### Returns\n\n- `{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n - `token: string`\n - `account_tokens: string[]`\n - `business_account_tokens: string[]`\n - `card_tokens: string[]`\n - `current_version: { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; parameters?: object; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object | object[]; }; version: number; }`\n - `draft_version: { error: string; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; parameters?: object; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object | object[]; }; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }`\n - `event_stream: string`\n - `lithic_managed: boolean`\n - `name: string`\n - `program_level: boolean`\n - `state: 'ACTIVE' | 'INACTIVE'`\n - `type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'`\n - `excluded_account_tokens?: string[]`\n - `excluded_business_account_tokens?: string[]`\n - `excluded_card_tokens?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst authRule = await client.authRules.v2.draft('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule);\n```",
perLanguage: {
- go: {
- method: 'client.AuthRules.V2.Draft',
+ typescript: {
+ method: 'client.authRules.v2.draft',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tauthRule, err := client.AuthRules.V2.Draft(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AuthRuleV2DraftParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", authRule.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst authRule = await client.authRules.v2.draft('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule.token);",
},
- http: {
+ python: {
+ method: 'auth_rules.v2.draft',
example:
- "curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN/draft \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nauth_rule = client.auth_rules.v2.draft(\n auth_rule_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(auth_rule.token)',
},
java: {
method: 'authRules().v2().draft',
@@ -1199,20 +1200,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRule\nimport com.lithic.api.models.AuthRuleV2DraftParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val authRule: AuthRule = client.authRules().v2().draft("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'auth_rules.v2.draft',
+ go: {
+ method: 'client.AuthRules.V2.Draft',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nauth_rule = client.auth_rules.v2.draft(\n auth_rule_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(auth_rule.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tauthRule, err := client.AuthRules.V2.Draft(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AuthRuleV2DraftParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", authRule.Token)\n}\n',
},
ruby: {
method: 'auth_rules.v2.draft',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nauth_rule = lithic.auth_rules.v2.draft("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(auth_rule)',
},
- typescript: {
- method: 'client.authRules.v2.draft',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst authRule = await client.authRules.v2.draft('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule.token);",
+ "curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN/draft \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
},
},
},
@@ -1230,14 +1230,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list_versions\n\n`client.authRules.v2.listVersions(auth_rule_token: string): { data: auth_rule_version[]; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}/versions`\n\nReturns all versions of an auth rule, sorted by version number descending (newest first).\n\n### Parameters\n\n- `auth_rule_token: string`\n\n### Returns\n\n- `{ data: { created: string; parameters: conditional_block_parameters | velocity_limit_params | merchant_lock_parameters | conditional_3ds_action_parameters | conditional_authorization_action_parameters | conditional_ach_action_parameters | conditional_tokenization_action_parameters | typescript_code_parameters; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }`\n\n - `data: { created: string; parameters: { conditions: auth_rule_condition[]; } | { period: velocity_limit_period; scope: 'CARD' | 'ACCOUNT'; filters?: velocity_limit_filters; limit_amount?: number; limit_count?: number; } | { merchants: object[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: object[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: object[]; } | { action: object | object; conditions: object[]; } | { action: object | object; conditions: object[]; } | { code: string; features: rule_feature[]; }; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.authRules.v2.listVersions('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.AuthRules.V2.ListVersions',
+ typescript: {
+ method: 'client.authRules.v2.listVersions',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.AuthRules.V2.ListVersions(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Data)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.authRules.v2.listVersions('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response.data);",
},
- http: {
+ python: {
+ method: 'auth_rules.v2.list_versions',
example:
- 'curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN/versions \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.auth_rules.v2.list_versions(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.data)',
},
java: {
method: 'authRules().v2().listVersions',
@@ -1249,20 +1250,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRuleV2ListVersionsParams\nimport com.lithic.api.models.V2ListVersionsResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: V2ListVersionsResponse = client.authRules().v2().listVersions("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'auth_rules.v2.list_versions',
+ go: {
+ method: 'client.AuthRules.V2.ListVersions',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.auth_rules.v2.list_versions(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.data)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.AuthRules.V2.ListVersions(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Data)\n}\n',
},
ruby: {
method: 'auth_rules.v2.list_versions',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.auth_rules.v2.list_versions("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(response)',
},
- typescript: {
- method: 'client.authRules.v2.listVersions',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.authRules.v2.listVersions('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response.data);",
+ 'curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN/versions \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -1281,14 +1281,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## promote\n\n`client.authRules.v2.promote(auth_rule_token: string): { token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: object; draft_version: object; event_stream: event_stream; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n**post** `/v2/auth_rules/{auth_rule_token}/promote`\n\nPromotes the draft version of an Auth rule to the currently active version such that it is enforced in the respective stream.\n\n### Parameters\n\n- `auth_rule_token: string`\n\n### Returns\n\n- `{ token: string; account_tokens: string[]; business_account_tokens: string[]; card_tokens: string[]; current_version: { parameters: object | object | object | object | object | object | object | object; version: number; }; draft_version: { error: string; parameters: object | object | object | object | object | object | object | object; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }; event_stream: string; lithic_managed: boolean; name: string; program_level: boolean; state: 'ACTIVE' | 'INACTIVE'; type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'; excluded_account_tokens?: string[]; excluded_business_account_tokens?: string[]; excluded_card_tokens?: string[]; }`\n\n - `token: string`\n - `account_tokens: string[]`\n - `business_account_tokens: string[]`\n - `card_tokens: string[]`\n - `current_version: { parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; parameters?: object; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object | object[]; }; version: number; }`\n - `draft_version: { error: string; parameters: { conditions: object[]; } | { period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; filters?: object; limit_amount?: number; limit_count?: number; } | { merchants: { comment?: string; descriptor?: string; merchant_id?: string; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { action: 'DECLINE' | 'CHALLENGE'; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; parameters?: object; }[]; } | { action: { type: 'APPROVE'; } | { code: string; type: 'RETURN'; }; conditions: { attribute: 'COMPANY_NAME' | 'COMPANY_ID' | 'TIMESTAMP' | 'TRANSACTION_AMOUNT' | 'SEC_CODE' | 'MEMO'; operation: conditional_operation; value: conditional_value; }[]; } | { action: { type: 'DECLINE'; reason?: string; } | { type: 'REQUIRE_TFA'; reason?: string; }; conditions: { attribute: string; operation: conditional_operation; value: conditional_value; }[]; } | { code: string; features: object | object | object | object | object | object | object | object | object[]; }; state: 'PENDING' | 'SHADOWING' | 'ERROR'; version: number; }`\n - `event_stream: string`\n - `lithic_managed: boolean`\n - `name: string`\n - `program_level: boolean`\n - `state: 'ACTIVE' | 'INACTIVE'`\n - `type: 'CONDITIONAL_BLOCK' | 'VELOCITY_LIMIT' | 'MERCHANT_LOCK' | 'CONDITIONAL_ACTION' | 'TYPESCRIPT_CODE'`\n - `excluded_account_tokens?: string[]`\n - `excluded_business_account_tokens?: string[]`\n - `excluded_card_tokens?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst authRule = await client.authRules.v2.promote('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule);\n```",
perLanguage: {
- go: {
- method: 'client.AuthRules.V2.Promote',
+ typescript: {
+ method: 'client.authRules.v2.promote',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tauthRule, err := client.AuthRules.V2.Promote(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", authRule.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst authRule = await client.authRules.v2.promote('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule.token);",
},
- http: {
+ python: {
+ method: 'auth_rules.v2.promote',
example:
- 'curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN/promote \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nauth_rule = client.auth_rules.v2.promote(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(auth_rule.token)',
},
java: {
method: 'authRules().v2().promote',
@@ -1300,20 +1301,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRule\nimport com.lithic.api.models.AuthRuleV2PromoteParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val authRule: AuthRule = client.authRules().v2().promote("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'auth_rules.v2.promote',
+ go: {
+ method: 'client.AuthRules.V2.Promote',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nauth_rule = client.auth_rules.v2.promote(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(auth_rule.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tauthRule, err := client.AuthRules.V2.Promote(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", authRule.Token)\n}\n',
},
ruby: {
method: 'auth_rules.v2.promote',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nauth_rule = lithic.auth_rules.v2.promote("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(auth_rule)',
},
- typescript: {
- method: 'client.authRules.v2.promote',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst authRule = await client.authRules.v2.promote('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(authRule.token);",
+ 'curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN/promote \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -1332,14 +1332,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve_report\n\n`client.authRules.v2.retrieveReport(auth_rule_token: string, begin: string, end: string): { auth_rule_token: string; begin: string; daily_statistics: object[]; end: string; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}/report`\n\nRetrieves a performance report for an Auth rule containing daily statistics and evaluation outcomes.\n\n**Time Range Limitations:**\n- Reports are supported for the past 3 months only\n- Maximum interval length is 1 month\n- Report data is available only through the previous day in UTC (current day data is not available)\n\nThe report provides daily statistics for both current and draft versions of the Auth rule, including approval, decline, and challenge counts along with sample events.\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `begin: string`\n Start date for the report\n\n- `end: string`\n End date for the report\n\n### Returns\n\n- `{ auth_rule_token: string; begin: string; daily_statistics: { date: string; versions: object[]; }[]; end: string; }`\n\n - `auth_rule_token: string`\n - `begin: string`\n - `daily_statistics: { date: string; versions: { action_counts: object; examples: { actions: object | object | object | object | object | object | object[]; event_token: string; timestamp: string; transaction_token?: string; }[]; state: 'ACTIVE' | 'SHADOW' | 'INACTIVE'; version: number; }[]; }[]`\n - `end: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.authRules.v2.retrieveReport('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { begin: '2019-12-27', end: '2019-12-27' });\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.AuthRules.V2.GetReport',
+ typescript: {
+ method: 'client.authRules.v2.retrieveReport',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.AuthRules.V2.GetReport(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AuthRuleV2GetReportParams{\n\t\t\tBegin: lithic.F(time.Now()),\n\t\t\tEnd: lithic.F(time.Now()),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.AuthRuleToken)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.authRules.v2.retrieveReport('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n begin: '2019-12-27',\n end: '2019-12-27',\n});\n\nconsole.log(response.auth_rule_token);",
},
- http: {
+ python: {
+ method: 'auth_rules.v2.retrieve_report',
example:
- 'curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN/report \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.auth_rules.v2.retrieve_report(\n auth_rule_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n begin=date.fromisoformat("2019-12-27"),\n end=date.fromisoformat("2019-12-27"),\n)\nprint(response.auth_rule_token)',
},
java: {
method: 'authRules().v2().retrieveReport',
@@ -1351,20 +1352,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRuleV2RetrieveReportParams\nimport com.lithic.api.models.V2RetrieveReportResponse\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: AuthRuleV2RetrieveReportParams = AuthRuleV2RetrieveReportParams.builder()\n .authRuleToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .begin(LocalDate.parse("2019-12-27"))\n .end(LocalDate.parse("2019-12-27"))\n .build()\n val response: V2RetrieveReportResponse = client.authRules().v2().retrieveReport(params)\n}',
},
- python: {
- method: 'auth_rules.v2.retrieve_report',
+ go: {
+ method: 'client.AuthRules.V2.GetReport',
example:
- 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.auth_rules.v2.retrieve_report(\n auth_rule_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n begin=date.fromisoformat("2019-12-27"),\n end=date.fromisoformat("2019-12-27"),\n)\nprint(response.auth_rule_token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.AuthRules.V2.GetReport(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AuthRuleV2GetReportParams{\n\t\t\tBegin: lithic.F(time.Now()),\n\t\t\tEnd: lithic.F(time.Now()),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.AuthRuleToken)\n}\n',
},
ruby: {
method: 'auth_rules.v2.retrieve_report',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.auth_rules.v2.retrieve_report(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n begin_: "2019-12-27",\n end_: "2019-12-27"\n)\n\nputs(response)',
},
- typescript: {
- method: 'client.authRules.v2.retrieveReport',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.authRules.v2.retrieveReport('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n begin: '2019-12-27',\n end: '2019-12-27',\n});\n\nconsole.log(response.auth_rule_token);",
+ 'curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN/report \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -1383,14 +1383,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve_features\n\n`client.authRules.v2.retrieveFeatures(auth_rule_token: string, account_token?: string, card_token?: string): { evaluated: string; features: object[]; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}/features`\n\nFetches the current calculated Feature values for the given Auth Rule\n\nThis only calculates the features for the active version.\n- VelocityLimit Rules calculates the current Velocity Feature data. This requires a `card_token` or `account_token` matching what the rule is Scoped to.\n- ConditionalBlock Rules calculates the CARD_TRANSACTION_COUNT_* attributes on the rule. This requires a `card_token`\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `account_token?: string`\n\n- `card_token?: string`\n\n### Returns\n\n- `{ evaluated: string; features: { filters: object; period: object | object | object | object | object; scope: 'CARD' | 'ACCOUNT'; value: { amount: number; count: number; }; }[]; }`\n\n - `evaluated: string`\n - `features: { filters: { exclude_countries?: string[]; exclude_mccs?: string[]; include_countries?: string[]; include_mccs?: string[]; include_pan_entry_modes?: string[]; }; period: { duration: number; type: 'CUSTOM'; } | { type: 'DAY'; } | { type: 'WEEK'; day_of_week?: number; } | { type: 'MONTH'; day_of_month?: number; } | { type: 'YEAR'; day_of_month?: number; month?: number; }; scope: 'CARD' | 'ACCOUNT'; value: { amount: number; count: number; }; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.authRules.v2.retrieveFeatures('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.AuthRules.V2.GetFeatures',
+ typescript: {
+ method: 'client.authRules.v2.retrieveFeatures',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.AuthRules.V2.GetFeatures(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AuthRuleV2GetFeaturesParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Evaluated)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.authRules.v2.retrieveFeatures('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response.evaluated);",
},
- http: {
+ python: {
+ method: 'auth_rules.v2.retrieve_features',
example:
- 'curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN/features \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.auth_rules.v2.retrieve_features(\n auth_rule_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.evaluated)',
},
java: {
method: 'authRules().v2().retrieveFeatures',
@@ -1402,20 +1403,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRuleV2RetrieveFeaturesParams\nimport com.lithic.api.models.V2RetrieveFeaturesResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: V2RetrieveFeaturesResponse = client.authRules().v2().retrieveFeatures("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'auth_rules.v2.retrieve_features',
+ go: {
+ method: 'client.AuthRules.V2.GetFeatures',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.auth_rules.v2.retrieve_features(\n auth_rule_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.evaluated)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.AuthRules.V2.GetFeatures(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AuthRuleV2GetFeaturesParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Evaluated)\n}\n',
},
ruby: {
method: 'auth_rules.v2.retrieve_features',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.auth_rules.v2.retrieve_features("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(response)',
},
- typescript: {
- method: 'client.authRules.v2.retrieveFeatures',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.authRules.v2.retrieveFeatures('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response.evaluated);",
+ 'curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN/features \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -1443,14 +1443,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list_results\n\n`client.authRules.v2.listResults(auth_rule_token?: string, begin?: string, end?: string, ending_before?: string, event_token?: string, has_actions?: boolean, page_size?: number, starting_after?: string): { token: string; actions: object | object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'AUTHORIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; transaction_token: string; } | { token: string; actions: object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'THREE_DS_AUTHENTICATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; transaction_token: string; } | { token: string; actions: object | object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'TOKENIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; transaction_token: string; } | { token: string; actions: object | object[]; auth_rule_token: string; evaluation_time: string; event_stream: 'ACH_CREDIT_RECEIPT' | 'ACH_DEBIT_RECEIPT'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; transaction_token: string; }`\n\n**get** `/v2/auth_rules/results`\n\nLists Auth Rule evaluation results.\n\n**Limitations:**\n- Results are available for the past 3 months only\n- At least one filter (`event_token` or `auth_rule_token`) must be provided\n- When filtering by `event_token`, pagination is not supported\n\n\n### Parameters\n\n- `auth_rule_token?: string`\n Filter by Auth Rule token\n\n- `begin?: string`\n Date string in RFC 3339 format. Only events evaluated after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only events evaluated before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `event_token?: string`\n Filter by event token\n\n- `has_actions?: boolean`\n Filter by whether the rule evaluation produced any actions. When not provided, all results are returned.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; actions: { code: string; type: 'DECLINE'; explanation?: string; } | { type: 'CHALLENGE'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'AUTHORIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; transaction_token: string; } | { token: string; actions: { type: 'DECLINE' | 'CHALLENGE'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'THREE_DS_AUTHENTICATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; transaction_token: string; } | { token: string; actions: { type: 'DECLINE'; explanation?: string; reason?: string; } | { type: 'REQUIRE_TFA'; explanation?: string; reason?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'TOKENIZATION'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; transaction_token: string; } | { token: string; actions: { type: 'APPROVE'; explanation?: string; } | { code: string; type: 'RETURN'; explanation?: string; }[]; auth_rule_token: string; evaluation_time: string; event_stream: 'ACH_CREDIT_RECEIPT' | 'ACH_DEBIT_RECEIPT'; event_token: string; mode: 'ACTIVE' | 'INACTIVE'; rule_version: number; transaction_token: string; }`\n Result of an Auth Rule evaluation\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const v2ListResultsResponse of client.authRules.v2.listResults()) {\n console.log(v2ListResultsResponse);\n}\n```",
perLanguage: {
- go: {
- method: 'client.AuthRules.V2.ListResults',
+ typescript: {
+ method: 'client.authRules.v2.listResults',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.AuthRules.V2.ListResults(context.TODO(), lithic.AuthRuleV2ListResultsParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const v2ListResultsResponse of client.authRules.v2.listResults()) {\n console.log(v2ListResultsResponse);\n}",
},
- http: {
+ python: {
+ method: 'auth_rules.v2.list_results',
example:
- 'curl https://api.lithic.com/v2/auth_rules/results \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.auth_rules.v2.list_results()\npage = page.data[0]\nprint(page)',
},
java: {
method: 'authRules().v2().listResults',
@@ -1462,20 +1463,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRuleV2ListResultsPage\nimport com.lithic.api.models.AuthRuleV2ListResultsParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: AuthRuleV2ListResultsPage = client.authRules().v2().listResults()\n}',
},
- python: {
- method: 'auth_rules.v2.list_results',
+ go: {
+ method: 'client.AuthRules.V2.ListResults',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.auth_rules.v2.list_results()\npage = page.data[0]\nprint(page)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.AuthRules.V2.ListResults(context.TODO(), lithic.AuthRuleV2ListResultsParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'auth_rules.v2.list_results',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.auth_rules.v2.list_results\n\nputs(page)',
},
- typescript: {
- method: 'client.authRules.v2.listResults',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const v2ListResultsResponse of client.authRules.v2.listResults()) {\n console.log(v2ListResultsResponse);\n}",
+ 'curl https://api.lithic.com/v2/auth_rules/results \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -1493,14 +1493,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## create\n\n`client.authRules.v2.backtests.create(auth_rule_token: string, end?: string, start?: string): { backtest_token?: string; }`\n\n**post** `/v2/auth_rules/{auth_rule_token}/backtests`\n\nInitiates a request to asynchronously generate a backtest for an Auth rule. During backtesting, both the active version (if one exists) and the draft version of the Auth Rule are evaluated by replaying historical transaction data against the rule's conditions. This process allows customers to simulate and understand the effects of proposed rule changes before deployment.\nThe generated backtest report provides detailed results showing whether the draft version of the Auth Rule would have approved or declined historical transactions which were processed during the backtest period. These reports help evaluate how changes to rule configurations might affect overall transaction approval rates.\n\nThe generated backtest report will be delivered asynchronously through a webhook with `event_type` = `auth_rules.backtest_report.created`. See the docs on setting up [webhook subscriptions](https://docs.lithic.com/docs/events-api).\nIt is also possible to request backtest reports on-demand through the `/v2/auth_rules/{auth_rule_token}/backtests/{auth_rule_backtest_token}` endpoint.\n\nLithic currently supports backtesting for `CONDITIONAL_BLOCK` / `CONDITIONAL_ACTION` rules. Backtesting for `VELOCITY_LIMIT` rules is generally not supported. In specific cases (i.e. where Lithic has pre-calculated the requested velocity metrics for historical transactions), a backtest may be feasible. However, such cases are uncommon and customers should not anticipate support for velocity backtests under most configurations.\nIf a historical transaction does not feature the required inputs to evaluate the rule, then it will not be included in the final backtest report.\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `end?: string`\n The end time of the backtest.\n\n- `start?: string`\n The start time of the backtest.\n\n### Returns\n\n- `{ backtest_token?: string; }`\n\n - `backtest_token?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst backtest = await client.authRules.v2.backtests.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(backtest);\n```",
perLanguage: {
- go: {
- method: 'client.AuthRules.V2.Backtests.New',
+ typescript: {
+ method: 'client.authRules.v2.backtests.create',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tbacktest, err := client.AuthRules.V2.Backtests.New(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AuthRuleV2BacktestNewParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", backtest.BacktestToken)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst backtest = await client.authRules.v2.backtests.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(backtest.backtest_token);",
},
- http: {
+ python: {
+ method: 'auth_rules.v2.backtests.create',
example:
- "curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN/backtests \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nbacktest = client.auth_rules.v2.backtests.create(\n auth_rule_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(backtest.backtest_token)',
},
java: {
method: 'authRules().v2().backtests().create',
@@ -1512,20 +1513,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRuleV2BacktestCreateParams\nimport com.lithic.api.models.BacktestCreateResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val backtest: BacktestCreateResponse = client.authRules().v2().backtests().create("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'auth_rules.v2.backtests.create',
+ go: {
+ method: 'client.AuthRules.V2.Backtests.New',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nbacktest = client.auth_rules.v2.backtests.create(\n auth_rule_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(backtest.backtest_token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tbacktest, err := client.AuthRules.V2.Backtests.New(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.AuthRuleV2BacktestNewParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", backtest.BacktestToken)\n}\n',
},
ruby: {
method: 'auth_rules.v2.backtests.create',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nbacktest = lithic.auth_rules.v2.backtests.create("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(backtest)',
},
- typescript: {
- method: 'client.authRules.v2.backtests.create',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst backtest = await client.authRules.v2.backtests.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(backtest.backtest_token);",
+ "curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN/backtests \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
},
},
},
@@ -1544,14 +1544,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.authRules.v2.backtests.retrieve(auth_rule_token: string, auth_rule_backtest_token: string): { backtest_token: string; results: object; simulation_parameters: object; }`\n\n**get** `/v2/auth_rules/{auth_rule_token}/backtests/{auth_rule_backtest_token}`\n\nReturns the backtest results of an Auth rule (if available).\n\nBacktesting is an asynchronous process that requires time to complete. If a customer retrieves the backtest results using this endpoint before the report is fully generated, the response will return null for `results.current_version` and `results.draft_version`. Customers are advised to wait for the backtest creation process to complete (as indicated by the webhook event auth_rules.backtest_report.created) before retrieving results from this endpoint.\n\nBacktesting is an asynchronous process, while the backtest is being processed, results will not be available which will cause `results.current_version` and `results.draft_version` objects to contain `null`.\nThe entries in `results` will also always represent the configuration of the rule at the time requests are made to this endpoint. For example, the results for `current_version` in the served backtest report will be consistent with which version of the rule is currently activated in the respective event stream, regardless of which version of the rule was active in the event stream at the time a backtest is requested.\n\n\n### Parameters\n\n- `auth_rule_token: string`\n\n- `auth_rule_backtest_token: string`\n\n### Returns\n\n- `{ backtest_token: string; results: { current_version?: object; draft_version?: object; }; simulation_parameters: { end: string; start: string; }; }`\n\n - `backtest_token: string`\n - `results: { current_version?: { approved?: number; challenged?: number; declined?: number; examples?: { decision?: 'APPROVED' | 'DECLINED' | 'CHALLENGED'; event_token?: string; timestamp?: string; transaction_token?: string; }[]; version?: number; }; draft_version?: { approved?: number; challenged?: number; declined?: number; examples?: { decision?: 'APPROVED' | 'DECLINED' | 'CHALLENGED'; event_token?: string; timestamp?: string; transaction_token?: string; }[]; version?: number; }; }`\n - `simulation_parameters: { end: string; start: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst backtestResults = await client.authRules.v2.backtests.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { auth_rule_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(backtestResults);\n```",
perLanguage: {
- go: {
- method: 'client.AuthRules.V2.Backtests.Get',
+ typescript: {
+ method: 'client.authRules.v2.backtests.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tbacktestResults, err := client.AuthRules.V2.Backtests.Get(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", backtestResults.BacktestToken)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst backtestResults = await client.authRules.v2.backtests.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { auth_rule_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(backtestResults.backtest_token);",
},
- http: {
+ python: {
+ method: 'auth_rules.v2.backtests.retrieve',
example:
- 'curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN/backtests/$AUTH_RULE_BACKTEST_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nbacktest_results = client.auth_rules.v2.backtests.retrieve(\n auth_rule_backtest_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n auth_rule_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(backtest_results.backtest_token)',
},
java: {
method: 'authRules().v2().backtests().retrieve',
@@ -1563,20 +1564,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthRuleV2BacktestRetrieveParams\nimport com.lithic.api.models.BacktestResults\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: AuthRuleV2BacktestRetrieveParams = AuthRuleV2BacktestRetrieveParams.builder()\n .authRuleToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .authRuleBacktestToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val backtestResults: BacktestResults = client.authRules().v2().backtests().retrieve(params)\n}',
},
- python: {
- method: 'auth_rules.v2.backtests.retrieve',
+ go: {
+ method: 'client.AuthRules.V2.Backtests.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nbacktest_results = client.auth_rules.v2.backtests.retrieve(\n auth_rule_backtest_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n auth_rule_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(backtest_results.backtest_token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tbacktestResults, err := client.AuthRules.V2.Backtests.Get(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", backtestResults.BacktestToken)\n}\n',
},
ruby: {
method: 'auth_rules.v2.backtests.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nbacktest_results = lithic.auth_rules.v2.backtests.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n auth_rule_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(backtest_results)',
},
- typescript: {
- method: 'client.authRules.v2.backtests.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst backtestResults = await client.authRules.v2.backtests.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { auth_rule_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(backtestResults.backtest_token);",
+ 'curl https://api.lithic.com/v2/auth_rules/$AUTH_RULE_TOKEN/backtests/$AUTH_RULE_BACKTEST_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -1593,14 +1593,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve_secret\n\n`client.authStreamEnrollment.retrieveSecret(): { secret?: string; }`\n\n**get** `/v1/auth_stream/secret`\n\nRetrieve the ASA HMAC secret key. If one does not exist for your program yet, calling this endpoint will create one for you. The headers (which you can use to verify webhooks) will begin appearing shortly after calling this endpoint for the first time. See [this page](https://docs.lithic.com/docs/auth-stream-access-asa#asa-webhook-verification) for more detail about verifying ASA webhooks.\n\n\n### Returns\n\n- `{ secret?: string; }`\n\n - `secret?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst authStreamSecret = await client.authStreamEnrollment.retrieveSecret();\n\nconsole.log(authStreamSecret);\n```",
perLanguage: {
- go: {
- method: 'client.AuthStreamEnrollment.GetSecret',
+ typescript: {
+ method: 'client.authStreamEnrollment.retrieveSecret',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tauthStreamSecret, err := client.AuthStreamEnrollment.GetSecret(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", authStreamSecret.Secret)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst authStreamSecret = await client.authStreamEnrollment.retrieveSecret();\n\nconsole.log(authStreamSecret.secret);",
},
- http: {
+ python: {
+ method: 'auth_stream_enrollment.retrieve_secret',
example:
- 'curl https://api.lithic.com/v1/auth_stream/secret \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nauth_stream_secret = client.auth_stream_enrollment.retrieve_secret()\nprint(auth_stream_secret.secret)',
},
java: {
method: 'authStreamEnrollment().retrieveSecret',
@@ -1612,20 +1613,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthStreamEnrollmentRetrieveSecretParams\nimport com.lithic.api.models.AuthStreamSecret\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val authStreamSecret: AuthStreamSecret = client.authStreamEnrollment().retrieveSecret()\n}',
},
- python: {
- method: 'auth_stream_enrollment.retrieve_secret',
+ go: {
+ method: 'client.AuthStreamEnrollment.GetSecret',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nauth_stream_secret = client.auth_stream_enrollment.retrieve_secret()\nprint(auth_stream_secret.secret)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tauthStreamSecret, err := client.AuthStreamEnrollment.GetSecret(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", authStreamSecret.Secret)\n}\n',
},
ruby: {
method: 'auth_stream_enrollment.retrieve_secret',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nauth_stream_secret = lithic.auth_stream_enrollment.retrieve_secret\n\nputs(auth_stream_secret)',
},
- typescript: {
- method: 'client.authStreamEnrollment.retrieveSecret',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst authStreamSecret = await client.authStreamEnrollment.retrieveSecret();\n\nconsole.log(authStreamSecret.secret);",
+ 'curl https://api.lithic.com/v1/auth_stream/secret \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -1641,14 +1641,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## rotate_secret\n\n`client.authStreamEnrollment.rotateSecret(): void`\n\n**post** `/v1/auth_stream/secret/rotate`\n\nGenerate a new ASA HMAC secret key. The old ASA HMAC secret key will be deactivated 24 hours after a successful request to this endpoint. Make a [`GET /auth_stream/secret`](https://docs.lithic.com/reference/getauthstreamsecret) request to retrieve the new secret key.\n\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.authStreamEnrollment.rotateSecret()\n```",
perLanguage: {
- go: {
- method: 'client.AuthStreamEnrollment.RotateSecret',
+ typescript: {
+ method: 'client.authStreamEnrollment.rotateSecret',
example:
- 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.AuthStreamEnrollment.RotateSecret(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.authStreamEnrollment.rotateSecret();",
},
- http: {
+ python: {
+ method: 'auth_stream_enrollment.rotate_secret',
example:
- 'curl https://api.lithic.com/v1/auth_stream/secret/rotate \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.auth_stream_enrollment.rotate_secret()',
},
java: {
method: 'authStreamEnrollment().rotateSecret',
@@ -1660,20 +1661,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthStreamEnrollmentRotateSecretParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.authStreamEnrollment().rotateSecret()\n}',
},
- python: {
- method: 'auth_stream_enrollment.rotate_secret',
+ go: {
+ method: 'client.AuthStreamEnrollment.RotateSecret',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.auth_stream_enrollment.rotate_secret()',
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.AuthStreamEnrollment.RotateSecret(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
},
ruby: {
method: 'auth_stream_enrollment.rotate_secret',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.auth_stream_enrollment.rotate_secret\n\nputs(result)',
},
- typescript: {
- method: 'client.authStreamEnrollment.rotateSecret',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.authStreamEnrollment.rotateSecret();",
+ 'curl https://api.lithic.com/v1/auth_stream/secret/rotate \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -1690,14 +1690,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve_secret\n\n`client.tokenizationDecisioning.retrieveSecret(): { secret?: string; }`\n\n**get** `/v1/tokenization_decisioning/secret`\n\nRetrieve the Tokenization Decisioning secret key. If one does not exist your program yet, calling this endpoint will create one for you. The headers of the Tokenization Decisioning request will contain a hmac signature which you can use to verify requests originate from Lithic. See [this page](https://docs.lithic.com/docs/events-api#verifying-webhooks) for more detail about verifying Tokenization Decisioning requests.\n\n\n### Returns\n\n- `{ secret?: string; }`\n\n - `secret?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst tokenizationSecret = await client.tokenizationDecisioning.retrieveSecret();\n\nconsole.log(tokenizationSecret);\n```",
perLanguage: {
- go: {
- method: 'client.TokenizationDecisioning.GetSecret',
+ typescript: {
+ method: 'client.tokenizationDecisioning.retrieveSecret',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\ttokenizationSecret, err := client.TokenizationDecisioning.GetSecret(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", tokenizationSecret.Secret)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst tokenizationSecret = await client.tokenizationDecisioning.retrieveSecret();\n\nconsole.log(tokenizationSecret.secret);",
},
- http: {
+ python: {
+ method: 'tokenization_decisioning.retrieve_secret',
example:
- 'curl https://api.lithic.com/v1/tokenization_decisioning/secret \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ntokenization_secret = client.tokenization_decisioning.retrieve_secret()\nprint(tokenization_secret.secret)',
},
java: {
method: 'tokenizationDecisioning().retrieveSecret',
@@ -1709,20 +1710,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TokenizationDecisioningRetrieveSecretParams\nimport com.lithic.api.models.TokenizationSecret\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val tokenizationSecret: TokenizationSecret = client.tokenizationDecisioning().retrieveSecret()\n}',
},
- python: {
- method: 'tokenization_decisioning.retrieve_secret',
+ go: {
+ method: 'client.TokenizationDecisioning.GetSecret',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ntokenization_secret = client.tokenization_decisioning.retrieve_secret()\nprint(tokenization_secret.secret)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\ttokenizationSecret, err := client.TokenizationDecisioning.GetSecret(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", tokenizationSecret.Secret)\n}\n',
},
ruby: {
method: 'tokenization_decisioning.retrieve_secret',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ntokenization_secret = lithic.tokenization_decisioning.retrieve_secret\n\nputs(tokenization_secret)',
},
- typescript: {
- method: 'client.tokenizationDecisioning.retrieveSecret',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst tokenizationSecret = await client.tokenizationDecisioning.retrieveSecret();\n\nconsole.log(tokenizationSecret.secret);",
+ 'curl https://api.lithic.com/v1/tokenization_decisioning/secret \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -1739,14 +1739,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## rotate_secret\n\n`client.tokenizationDecisioning.rotateSecret(): { secret?: string; }`\n\n**post** `/v1/tokenization_decisioning/secret/rotate`\n\nGenerate a new Tokenization Decisioning secret key. The old Tokenization Decisioning secret key will be deactivated 24 hours after a successful request to this endpoint.\n\n\n### Returns\n\n- `{ secret?: string; }`\n\n - `secret?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.tokenizationDecisioning.rotateSecret();\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.TokenizationDecisioning.RotateSecret',
+ typescript: {
+ method: 'client.tokenizationDecisioning.rotateSecret',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.TokenizationDecisioning.RotateSecret(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Secret)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.tokenizationDecisioning.rotateSecret();\n\nconsole.log(response.secret);",
},
- http: {
+ python: {
+ method: 'tokenization_decisioning.rotate_secret',
example:
- 'curl https://api.lithic.com/v1/tokenization_decisioning/secret/rotate \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.tokenization_decisioning.rotate_secret()\nprint(response.secret)',
},
java: {
method: 'tokenizationDecisioning().rotateSecret',
@@ -1758,20 +1759,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TokenizationDecisioningRotateSecretParams\nimport com.lithic.api.models.TokenizationDecisioningRotateSecretResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: TokenizationDecisioningRotateSecretResponse = client.tokenizationDecisioning().rotateSecret()\n}',
},
- python: {
- method: 'tokenization_decisioning.rotate_secret',
+ go: {
+ method: 'client.TokenizationDecisioning.RotateSecret',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.tokenization_decisioning.rotate_secret()\nprint(response.secret)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.TokenizationDecisioning.RotateSecret(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Secret)\n}\n',
},
ruby: {
method: 'tokenization_decisioning.rotate_secret',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.tokenization_decisioning.rotate_secret\n\nputs(response)',
},
- typescript: {
- method: 'client.tokenizationDecisioning.rotateSecret',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.tokenizationDecisioning.rotateSecret();\n\nconsole.log(response.secret);",
+ 'curl https://api.lithic.com/v1/tokenization_decisioning/secret/rotate \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -1799,14 +1799,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## simulate\n\n`client.tokenizations.simulate(cvv: string, expiration_date: string, pan: string, tokenization_source: 'APPLE_PAY' | 'GOOGLE' | 'SAMSUNG_PAY' | 'MERCHANT', account_score?: number, device_score?: number, entity?: string, wallet_recommended_decision?: 'APPROVED' | 'DECLINED' | 'REQUIRE_ADDITIONAL_AUTHENTICATION'): { token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: object[]; payment_account_reference_id?: string; }`\n\n**post** `/v1/simulate/tokenizations`\n\nThis endpoint is used to simulate a card's tokenization in the Digital Wallet and merchant tokenization ecosystem.\n\n\n### Parameters\n\n- `cvv: string`\n The three digit cvv for the card.\n\n- `expiration_date: string`\n The expiration date of the card in 'MM/YY' format.\n\n- `pan: string`\n The sixteen digit card number.\n\n- `tokenization_source: 'APPLE_PAY' | 'GOOGLE' | 'SAMSUNG_PAY' | 'MERCHANT'`\n The source of the tokenization request.\n\n- `account_score?: number`\n The account score (1-5) that represents how the Digital Wallet's view on how reputable an end user's account is.\n\n- `device_score?: number`\n The device score (1-5) that represents how the Digital Wallet's view on how reputable an end user's device is.\n\n- `entity?: string`\n Optional field to specify the token requestor name for a merchant token simulation. Ignored when tokenization_source is not MERCHANT.\n\n- `wallet_recommended_decision?: 'APPROVED' | 'DECLINED' | 'REQUIRE_ADDITIONAL_AUTHENTICATION'`\n The decision that the Digital Wallet's recommend\n\n### Returns\n\n- `{ token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: { token?: string; created_at?: string; result?: string; rule_results?: object[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]; payment_account_reference_id?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `card_token: string`\n - `created_at: string`\n - `dpan: string`\n - `status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'`\n - `token_requestor_name: string | string`\n - `token_unique_reference: string`\n - `tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'`\n - `updated_at: string`\n - `device_id?: string`\n - `digital_card_art_token?: string`\n - `events?: { token?: string; created_at?: string; result?: string; rule_results?: { auth_rule_token: string; explanation: string; name: string; result: 'APPROVED' | 'DECLINED' | 'REQUIRE_TFA' | 'ERROR'; }[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]`\n - `payment_account_reference_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst tokenization = await client.tokenizations.simulate({\n cvv: '776',\n expiration_date: '08/29',\n pan: '4111111289144142',\n tokenization_source: 'APPLE_PAY',\n});\n\nconsole.log(tokenization);\n```",
perLanguage: {
- go: {
- method: 'client.Tokenizations.Simulate',
+ typescript: {
+ method: 'client.tokenizations.simulate',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\ttokenization, err := client.Tokenizations.Simulate(context.TODO(), lithic.TokenizationSimulateParams{\n\t\tCvv: lithic.F("776"),\n\t\tExpirationDate: lithic.F("08/29"),\n\t\tPan: lithic.F("4111111289144142"),\n\t\tTokenizationSource: lithic.F(lithic.TokenizationSimulateParamsTokenizationSourceApplePay),\n\t\tAccountScore: lithic.F(int64(5)),\n\t\tDeviceScore: lithic.F(int64(5)),\n\t\tWalletRecommendedDecision: lithic.F(lithic.TokenizationSimulateParamsWalletRecommendedDecisionApproved),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", tokenization.DeviceID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst tokenization = await client.tokenizations.simulate({\n cvv: '776',\n expiration_date: '08/29',\n pan: '4111111289144142',\n tokenization_source: 'APPLE_PAY',\n account_score: 5,\n device_score: 5,\n wallet_recommended_decision: 'APPROVED',\n});\n\nconsole.log(tokenization.device_id);",
},
- http: {
+ python: {
+ method: 'tokenizations.simulate',
example:
- 'curl https://api.lithic.com/v1/simulate/tokenizations \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "cvv": "776",\n "expiration_date": "08/29",\n "pan": "4111111289144142",\n "tokenization_source": "APPLE_PAY"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ntokenization = client.tokenizations.simulate(\n cvv="776",\n expiration_date="08/29",\n pan="4111111289144142",\n tokenization_source="APPLE_PAY",\n account_score=5,\n device_score=5,\n wallet_recommended_decision="APPROVED",\n)\nprint(tokenization.device_id)',
},
java: {
method: 'tokenizations().simulate',
@@ -1818,20 +1819,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Tokenization\nimport com.lithic.api.models.TokenizationSimulateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: TokenizationSimulateParams = TokenizationSimulateParams.builder()\n .cvv("776")\n .expirationDate("08/29")\n .pan("4111111289144142")\n .tokenizationSource(TokenizationSimulateParams.TokenizationSource.APPLE_PAY)\n .build()\n val tokenization: Tokenization = client.tokenizations().simulate(params)\n}',
},
- python: {
- method: 'tokenizations.simulate',
+ go: {
+ method: 'client.Tokenizations.Simulate',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ntokenization = client.tokenizations.simulate(\n cvv="776",\n expiration_date="08/29",\n pan="4111111289144142",\n tokenization_source="APPLE_PAY",\n account_score=5,\n device_score=5,\n wallet_recommended_decision="APPROVED",\n)\nprint(tokenization.device_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\ttokenization, err := client.Tokenizations.Simulate(context.TODO(), lithic.TokenizationSimulateParams{\n\t\tCvv: lithic.F("776"),\n\t\tExpirationDate: lithic.F("08/29"),\n\t\tPan: lithic.F("4111111289144142"),\n\t\tTokenizationSource: lithic.F(lithic.TokenizationSimulateParamsTokenizationSourceApplePay),\n\t\tAccountScore: lithic.F(int64(5)),\n\t\tDeviceScore: lithic.F(int64(5)),\n\t\tWalletRecommendedDecision: lithic.F(lithic.TokenizationSimulateParamsWalletRecommendedDecisionApproved),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", tokenization.DeviceID)\n}\n',
},
ruby: {
method: 'tokenizations.simulate',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ntokenization = lithic.tokenizations.simulate(\n cvv: "776",\n expiration_date: "08/29",\n pan: "4111111289144142",\n tokenization_source: :APPLE_PAY\n)\n\nputs(tokenization)',
},
- typescript: {
- method: 'client.tokenizations.simulate',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst tokenization = await client.tokenizations.simulate({\n cvv: '776',\n expiration_date: '08/29',\n pan: '4111111289144142',\n tokenization_source: 'APPLE_PAY',\n account_score: 5,\n device_score: 5,\n wallet_recommended_decision: 'APPROVED',\n});\n\nconsole.log(tokenization.device_id);",
+ 'curl https://api.lithic.com/v1/simulate/tokenizations \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "cvv": "776",\n "expiration_date": "08/29",\n "pan": "4111111289144142",\n "tokenization_source": "APPLE_PAY"\n }\'',
},
},
},
@@ -1858,13 +1858,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.tokenizations.list(account_token?: string, begin?: string, card_token?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string, tokenization_channel?: 'DIGITAL_WALLET' | 'MERCHANT' | 'ALL'): { token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: object[]; payment_account_reference_id?: string; }`\n\n**get** `/v1/tokenizations`\n\nList card tokenizations\n\n### Parameters\n\n- `account_token?: string`\n Filters for tokenizations associated with a specific account.\n\n- `begin?: string`\n Filter for tokenizations created after this date.\n\n- `card_token?: string`\n Filters for tokenizations associated with a specific card.\n\n- `end?: string`\n Filter for tokenizations created before this date.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `tokenization_channel?: 'DIGITAL_WALLET' | 'MERCHANT' | 'ALL'`\n Filter for tokenizations by tokenization channel. If this is not specified, only DIGITAL_WALLET tokenizations will be returned.\n\n### Returns\n\n- `{ token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: { token?: string; created_at?: string; result?: string; rule_results?: object[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]; payment_account_reference_id?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `card_token: string`\n - `created_at: string`\n - `dpan: string`\n - `status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'`\n - `token_requestor_name: string | string`\n - `token_unique_reference: string`\n - `tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'`\n - `updated_at: string`\n - `device_id?: string`\n - `digital_card_art_token?: string`\n - `events?: { token?: string; created_at?: string; result?: string; rule_results?: { auth_rule_token: string; explanation: string; name: string; result: 'APPROVED' | 'DECLINED' | 'REQUIRE_TFA' | 'ERROR'; }[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]`\n - `payment_account_reference_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const tokenization of client.tokenizations.list()) {\n console.log(tokenization);\n}\n```",
perLanguage: {
- go: {
- method: 'client.Tokenizations.List',
+ typescript: {
+ method: 'client.tokenizations.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Tokenizations.List(context.TODO(), lithic.TokenizationListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const tokenization of client.tokenizations.list()) {\n console.log(tokenization.device_id);\n}",
},
- http: {
- example: 'curl https://api.lithic.com/v1/tokenizations \\\n -H "Authorization: $LITHIC_API_KEY"',
+ python: {
+ method: 'tokenizations.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.tokenizations.list()\npage = page.data[0]\nprint(page.device_id)',
},
java: {
method: 'tokenizations().list',
@@ -1876,20 +1878,18 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TokenizationListPage\nimport com.lithic.api.models.TokenizationListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: TokenizationListPage = client.tokenizations().list()\n}',
},
- python: {
- method: 'tokenizations.list',
+ go: {
+ method: 'client.Tokenizations.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.tokenizations.list()\npage = page.data[0]\nprint(page.device_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Tokenizations.List(context.TODO(), lithic.TokenizationListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'tokenizations.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.tokenizations.list\n\nputs(page)',
},
- typescript: {
- method: 'client.tokenizations.list',
- example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const tokenization of client.tokenizations.list()) {\n console.log(tokenization.device_id);\n}",
+ http: {
+ example: 'curl https://api.lithic.com/v1/tokenizations \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -1907,14 +1907,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.tokenizations.retrieve(tokenization_token: string): { token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: object[]; payment_account_reference_id?: string; }`\n\n**get** `/v1/tokenizations/{tokenization_token}`\n\nGet tokenization\n\n### Parameters\n\n- `tokenization_token: string`\n\n### Returns\n\n- `{ token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: { token?: string; created_at?: string; result?: string; rule_results?: object[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]; payment_account_reference_id?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `card_token: string`\n - `created_at: string`\n - `dpan: string`\n - `status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'`\n - `token_requestor_name: string | string`\n - `token_unique_reference: string`\n - `tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'`\n - `updated_at: string`\n - `device_id?: string`\n - `digital_card_art_token?: string`\n - `events?: { token?: string; created_at?: string; result?: string; rule_results?: { auth_rule_token: string; explanation: string; name: string; result: 'APPROVED' | 'DECLINED' | 'REQUIRE_TFA' | 'ERROR'; }[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]`\n - `payment_account_reference_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst tokenization = await client.tokenizations.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(tokenization);\n```",
perLanguage: {
- go: {
- method: 'client.Tokenizations.Get',
+ typescript: {
+ method: 'client.tokenizations.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\ttokenization, err := client.Tokenizations.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", tokenization.DeviceID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst tokenization = await client.tokenizations.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(tokenization.device_id);",
},
- http: {
+ python: {
+ method: 'tokenizations.retrieve',
example:
- 'curl https://api.lithic.com/v1/tokenizations/$TOKENIZATION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ntokenization = client.tokenizations.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(tokenization.device_id)',
},
java: {
method: 'tokenizations().retrieve',
@@ -1926,20 +1927,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Tokenization\nimport com.lithic.api.models.TokenizationRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val tokenization: Tokenization = client.tokenizations().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'tokenizations.retrieve',
+ go: {
+ method: 'client.Tokenizations.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ntokenization = client.tokenizations.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(tokenization.device_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\ttokenization, err := client.Tokenizations.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", tokenization.DeviceID)\n}\n',
},
ruby: {
method: 'tokenizations.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ntokenization = lithic.tokenizations.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(tokenization)',
},
- typescript: {
- method: 'client.tokenizations.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst tokenization = await client.tokenizations.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(tokenization.device_id);",
+ 'curl https://api.lithic.com/v1/tokenizations/$TOKENIZATION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -1956,14 +1956,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## pause\n\n`client.tokenizations.pause(tokenization_token: string): void`\n\n**post** `/v1/tokenizations/{tokenization_token}/pause`\n\nThis endpoint is used to ask the card network to pause a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network pauses the tokenization, the state will be updated and a tokenization.updated event will be sent. The endpoint may only be used on tokenizations with status `ACTIVE`.\nA paused token will prevent merchants from sending authorizations, and is a temporary status that can be changed.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n\n### Parameters\n\n- `tokenization_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.tokenizations.pause('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')\n```",
perLanguage: {
- go: {
- method: 'client.Tokenizations.Pause',
+ typescript: {
+ method: 'client.tokenizations.pause',
example:
- 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Tokenizations.Pause(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.tokenizations.pause('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');",
},
- http: {
+ python: {
+ method: 'tokenizations.pause',
example:
- 'curl https://api.lithic.com/v1/tokenizations/$TOKENIZATION_TOKEN/pause \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.tokenizations.pause(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)',
},
java: {
method: 'tokenizations().pause',
@@ -1975,20 +1976,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TokenizationPauseParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.tokenizations().pause("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'tokenizations.pause',
+ go: {
+ method: 'client.Tokenizations.Pause',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.tokenizations.pause(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)',
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Tokenizations.Pause(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
},
ruby: {
method: 'tokenizations.pause',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.tokenizations.pause("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(result)',
},
- typescript: {
- method: 'client.tokenizations.pause',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.tokenizations.pause('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');",
+ 'curl https://api.lithic.com/v1/tokenizations/$TOKENIZATION_TOKEN/pause \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -2005,14 +2005,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## unpause\n\n`client.tokenizations.unpause(tokenization_token: string): void`\n\n**post** `/v1/tokenizations/{tokenization_token}/unpause`\n\nThis endpoint is used to ask the card network to unpause a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network unpauses the tokenization, the state will be updated and a tokenization.updated event will be sent. The endpoint may only be used on tokenizations with status `PAUSED`.\nThis will put the tokenization in an active state, and transactions may resume.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n\n### Parameters\n\n- `tokenization_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.tokenizations.unpause('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')\n```",
perLanguage: {
- go: {
- method: 'client.Tokenizations.Unpause',
+ typescript: {
+ method: 'client.tokenizations.unpause',
example:
- 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Tokenizations.Unpause(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.tokenizations.unpause('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');",
},
- http: {
+ python: {
+ method: 'tokenizations.unpause',
example:
- 'curl https://api.lithic.com/v1/tokenizations/$TOKENIZATION_TOKEN/unpause \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.tokenizations.unpause(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)',
},
java: {
method: 'tokenizations().unpause',
@@ -2024,20 +2025,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TokenizationUnpauseParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.tokenizations().unpause("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'tokenizations.unpause',
+ go: {
+ method: 'client.Tokenizations.Unpause',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.tokenizations.unpause(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)',
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Tokenizations.Unpause(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
},
ruby: {
method: 'tokenizations.unpause',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.tokenizations.unpause("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(result)',
},
- typescript: {
- method: 'client.tokenizations.unpause',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.tokenizations.unpause('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');",
+ 'curl https://api.lithic.com/v1/tokenizations/$TOKENIZATION_TOKEN/unpause \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -2054,14 +2054,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## deactivate\n\n`client.tokenizations.deactivate(tokenization_token: string): void`\n\n**post** `/v1/tokenizations/{tokenization_token}/deactivate`\n\nThis endpoint is used to ask the card network to deactivate a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network deactivates the tokenization, the state will be updated and a tokenization.updated event will be sent.\nAuthorizations attempted with a deactivated tokenization will be blocked and will not be forwarded to Lithic from the network. Deactivating the token is a permanent operation. If the target is a digital wallet tokenization, it will be removed from its device.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n\n### Parameters\n\n- `tokenization_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.tokenizations.deactivate('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')\n```",
perLanguage: {
- go: {
- method: 'client.Tokenizations.Deactivate',
+ typescript: {
+ method: 'client.tokenizations.deactivate',
example:
- 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Tokenizations.Deactivate(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.tokenizations.deactivate('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');",
},
- http: {
+ python: {
+ method: 'tokenizations.deactivate',
example:
- 'curl https://api.lithic.com/v1/tokenizations/$TOKENIZATION_TOKEN/deactivate \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.tokenizations.deactivate(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)',
},
java: {
method: 'tokenizations().deactivate',
@@ -2073,20 +2074,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TokenizationDeactivateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.tokenizations().deactivate("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'tokenizations.deactivate',
+ go: {
+ method: 'client.Tokenizations.Deactivate',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.tokenizations.deactivate(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)',
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Tokenizations.Deactivate(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
},
ruby: {
method: 'tokenizations.deactivate',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.tokenizations.deactivate("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(result)',
},
- typescript: {
- method: 'client.tokenizations.deactivate',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.tokenizations.deactivate('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');",
+ 'curl https://api.lithic.com/v1/tokenizations/$TOKENIZATION_TOKEN/deactivate \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -2103,14 +2103,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## activate\n\n`client.tokenizations.activate(tokenization_token: string): void`\n\n**post** `/v1/tokenizations/{tokenization_token}/activate`\n\nThis endpoint is used to ask the card network to activate a tokenization. A successful response indicates that the request was successfully delivered to the card network. When the card network activates the tokenization, the state will be updated and a tokenization.updated event will be sent. The endpoint may only be used on digital wallet tokenizations with status `INACTIVE`, `PENDING_ACTIVATION`, or `PENDING_2FA`.\nThis will put the tokenization in an active state, and transactions will be allowed.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n\n### Parameters\n\n- `tokenization_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.tokenizations.activate('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')\n```",
perLanguage: {
- go: {
- method: 'client.Tokenizations.Activate',
+ typescript: {
+ method: 'client.tokenizations.activate',
example:
- 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Tokenizations.Activate(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.tokenizations.activate('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');",
},
- http: {
+ python: {
+ method: 'tokenizations.activate',
example:
- 'curl https://api.lithic.com/v1/tokenizations/$TOKENIZATION_TOKEN/activate \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.tokenizations.activate(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)',
},
java: {
method: 'tokenizations().activate',
@@ -2122,20 +2123,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TokenizationActivateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.tokenizations().activate("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'tokenizations.activate',
+ go: {
+ method: 'client.Tokenizations.Activate',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.tokenizations.activate(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)',
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Tokenizations.Activate(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
},
ruby: {
method: 'tokenizations.activate',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.tokenizations.activate("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(result)',
},
- typescript: {
- method: 'client.tokenizations.activate',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.tokenizations.activate('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');",
+ 'curl https://api.lithic.com/v1/tokenizations/$TOKENIZATION_TOKEN/activate \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -2155,14 +2155,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## resend_activation_code\n\n`client.tokenizations.resendActivationCode(tokenization_token: string, activation_method_type?: 'EMAIL_TO_CARDHOLDER_ADDRESS' | 'TEXT_TO_CARDHOLDER_NUMBER'): void`\n\n**post** `/v1/tokenizations/{tokenization_token}/resend_activation_code`\n\nThis endpoint is used to ask the card network to send another activation code to a cardholder that has already tried tokenizing a card. A successful response indicates that the request was successfully delivered to the card network.\nThe endpoint may only be used on Mastercard digital wallet tokenizations with status `INACTIVE`, `PENDING_ACTIVATION`, or `PENDING_2FA`. The network will send a new activation code to the one of the contact methods provided in the initial tokenization flow. If a user fails to enter the code correctly 3 times, the contact method will not be eligible for resending the activation code, and the cardholder must restart the provision process.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n\n### Parameters\n\n- `tokenization_token: string`\n\n- `activation_method_type?: 'EMAIL_TO_CARDHOLDER_ADDRESS' | 'TEXT_TO_CARDHOLDER_NUMBER'`\n The communication method that the user has selected to use to receive the authentication code.\nSupported Values: Sms = \"TEXT_TO_CARDHOLDER_NUMBER\". Email = \"EMAIL_TO_CARDHOLDER_ADDRESS\"\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.tokenizations.resendActivationCode('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')\n```",
perLanguage: {
- go: {
- method: 'client.Tokenizations.ResendActivationCode',
+ typescript: {
+ method: 'client.tokenizations.resendActivationCode',
example:
- 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Tokenizations.ResendActivationCode(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.TokenizationResendActivationCodeParams{\n\t\t\tActivationMethodType: lithic.F(lithic.TokenizationResendActivationCodeParamsActivationMethodTypeTextToCardholderNumber),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.tokenizations.resendActivationCode('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n activation_method_type: 'TEXT_TO_CARDHOLDER_NUMBER',\n});",
},
- http: {
+ python: {
+ method: 'tokenizations.resend_activation_code',
example:
- 'curl https://api.lithic.com/v1/tokenizations/$TOKENIZATION_TOKEN/resend_activation_code \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.tokenizations.resend_activation_code(\n tokenization_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n activation_method_type="TEXT_TO_CARDHOLDER_NUMBER",\n)',
},
java: {
method: 'tokenizations().resendActivationCode',
@@ -2174,20 +2175,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TokenizationResendActivationCodeParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.tokenizations().resendActivationCode("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'tokenizations.resend_activation_code',
+ go: {
+ method: 'client.Tokenizations.ResendActivationCode',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.tokenizations.resend_activation_code(\n tokenization_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n activation_method_type="TEXT_TO_CARDHOLDER_NUMBER",\n)',
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Tokenizations.ResendActivationCode(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.TokenizationResendActivationCodeParams{\n\t\t\tActivationMethodType: lithic.F(lithic.TokenizationResendActivationCodeParamsActivationMethodTypeTextToCardholderNumber),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
},
ruby: {
method: 'tokenizations.resend_activation_code',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.tokenizations.resend_activation_code("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(result)',
},
- typescript: {
- method: 'client.tokenizations.resendActivationCode',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.tokenizations.resendActivationCode('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n activation_method_type: 'TEXT_TO_CARDHOLDER_NUMBER',\n});",
+ 'curl https://api.lithic.com/v1/tokenizations/$TOKENIZATION_TOKEN/resend_activation_code \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -2206,14 +2206,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## update_digital_card_art\n\n`client.tokenizations.updateDigitalCardArt(tokenization_token: string, digital_card_art_token?: string): { token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: object[]; payment_account_reference_id?: string; }`\n\n**post** `/v1/tokenizations/{tokenization_token}/update_digital_card_art`\n\nThis endpoint is used update the digital card art for a digital wallet tokenization. A successful response indicates that the card network has updated the tokenization's art, and the tokenization's `digital_cart_art_token` field was updated.\nThe endpoint may not be used on tokenizations with status `DEACTIVATED`.\nNote that this updates the art for one specific tokenization, not all tokenizations for a card. New tokenizations for a card will be created with the art referenced in the card object's `digital_card_art_token` field.\nReach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n\n### Parameters\n\n- `tokenization_token: string`\n\n- `digital_card_art_token?: string`\n Specifies the digital card art to be displayed in the user’s digital wallet for a tokenization. This artwork must be approved by the network and configured by Lithic to use. See [Flexible Card Art Guide](https://docs.lithic.com/docs/about-digital-wallets#flexible-card-art).\n\n### Returns\n\n- `{ token: string; account_token: string; card_token: string; created_at: string; dpan: string; status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'; token_requestor_name: string | string; token_unique_reference: string; tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'; updated_at: string; device_id?: string; digital_card_art_token?: string; events?: { token?: string; created_at?: string; result?: string; rule_results?: object[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]; payment_account_reference_id?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `card_token: string`\n - `created_at: string`\n - `dpan: string`\n - `status: 'ACTIVE' | 'DEACTIVATED' | 'INACTIVE' | 'PAUSED' | 'PENDING_2FA' | 'PENDING_ACTIVATION' | 'UNKNOWN'`\n - `token_requestor_name: string | string`\n - `token_unique_reference: string`\n - `tokenization_channel: 'DIGITAL_WALLET' | 'MERCHANT'`\n - `updated_at: string`\n - `device_id?: string`\n - `digital_card_art_token?: string`\n - `events?: { token?: string; created_at?: string; result?: string; rule_results?: { auth_rule_token: string; explanation: string; name: string; result: 'APPROVED' | 'DECLINED' | 'REQUIRE_TFA' | 'ERROR'; }[]; tokenization_decline_reasons?: string[]; tokenization_tfa_reasons?: string[]; type?: string; }[]`\n - `payment_account_reference_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst tokenization = await client.tokenizations.updateDigitalCardArt('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(tokenization);\n```",
perLanguage: {
- go: {
- method: 'client.Tokenizations.UpdateDigitalCardArt',
+ typescript: {
+ method: 'client.tokenizations.updateDigitalCardArt',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\ttokenization, err := client.Tokenizations.UpdateDigitalCardArt(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.TokenizationUpdateDigitalCardArtParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", tokenization.DeviceID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst tokenization = await client.tokenizations.updateDigitalCardArt(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(tokenization.device_id);",
},
- http: {
+ python: {
+ method: 'tokenizations.update_digital_card_art',
example:
- 'curl https://api.lithic.com/v1/tokenizations/$TOKENIZATION_TOKEN/update_digital_card_art \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ntokenization = client.tokenizations.update_digital_card_art(\n tokenization_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(tokenization.device_id)',
},
java: {
method: 'tokenizations().updateDigitalCardArt',
@@ -2225,20 +2226,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Tokenization\nimport com.lithic.api.models.TokenizationUpdateDigitalCardArtParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val tokenization: Tokenization = client.tokenizations().updateDigitalCardArt("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'tokenizations.update_digital_card_art',
+ go: {
+ method: 'client.Tokenizations.UpdateDigitalCardArt',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ntokenization = client.tokenizations.update_digital_card_art(\n tokenization_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(tokenization.device_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\ttokenization, err := client.Tokenizations.UpdateDigitalCardArt(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.TokenizationUpdateDigitalCardArtParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", tokenization.DeviceID)\n}\n',
},
ruby: {
method: 'tokenizations.update_digital_card_art',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ntokenization = lithic.tokenizations.update_digital_card_art("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(tokenization)',
},
- typescript: {
- method: 'client.tokenizations.updateDigitalCardArt',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst tokenization = await client.tokenizations.updateDigitalCardArt(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(tokenization.device_id);",
+ 'curl https://api.lithic.com/v1/tokenizations/$TOKENIZATION_TOKEN/update_digital_card_art \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -2265,13 +2265,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.cards.list(account_token?: string, begin?: string, end?: string, ending_before?: string, memo?: string, page_size?: number, starting_after?: string, state?: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'): { token: string; account_token: string; card_program_token: string; created: string; funding: object; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: spend_limit_duration; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n\n**get** `/v1/cards`\n\nList cards.\n\n### Parameters\n\n- `account_token?: string`\n Returns cards associated with the specified account.\n\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `memo?: string`\n Returns cards containing the specified partial or full memo text.\n\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `state?: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'`\n Returns cards with the specified state.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details without PCI information\n\n - `token: string`\n - `account_token: string`\n - `card_program_token: string`\n - `created: string`\n - `funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }`\n - `last_four: string`\n - `pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'`\n - `spend_limit: number`\n - `spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'`\n - `state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'`\n - `type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'`\n - `auth_rule_tokens?: string[]`\n - `bulk_order_token?: string`\n - `cardholder_currency?: string`\n - `comment?: string`\n - `digital_card_art_token?: string`\n - `exp_month?: string`\n - `exp_year?: string`\n - `hostname?: string`\n - `memo?: string`\n - `network_program_token?: string`\n - `pending_commands?: string[]`\n - `product_id?: string`\n - `replacement_for?: string`\n - `substatus?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const nonPCICard of client.cards.list()) {\n console.log(nonPCICard);\n}\n```",
perLanguage: {
- go: {
- method: 'client.Cards.List',
+ typescript: {
+ method: 'client.cards.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Cards.List(context.TODO(), lithic.CardListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const nonPCICard of client.cards.list()) {\n console.log(nonPCICard.product_id);\n}",
},
- http: {
- example: 'curl https://api.lithic.com/v1/cards \\\n -H "Authorization: $LITHIC_API_KEY"',
+ python: {
+ method: 'cards.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.cards.list()\npage = page.data[0]\nprint(page.product_id)',
},
java: {
method: 'cards().list',
@@ -2283,20 +2285,18 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardListPage\nimport com.lithic.api.models.CardListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: CardListPage = client.cards().list()\n}',
},
- python: {
- method: 'cards.list',
+ go: {
+ method: 'client.Cards.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.cards.list()\npage = page.data[0]\nprint(page.product_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Cards.List(context.TODO(), lithic.CardListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'cards.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.cards.list\n\nputs(page)',
},
- typescript: {
- method: 'client.cards.list',
- example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const nonPCICard of client.cards.list()) {\n console.log(nonPCICard.product_id);\n}",
+ http: {
+ example: 'curl https://api.lithic.com/v1/cards \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -2337,14 +2337,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## create\n\n`client.cards.create(type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET', account_token?: string, bulk_order_token?: string, card_program_token?: string, carrier?: { qr_code_url?: string; }, digital_card_art_token?: string, exp_month?: string, exp_year?: string, memo?: string, pin?: string, product_id?: string, replacement_account_token?: string, replacement_comment?: string, replacement_for?: string, replacement_substatus?: string, shipping_address?: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }, shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING', spend_limit?: number, spend_limit_duration?: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION', state?: 'OPEN' | 'PAUSED', Idempotency-Key?: string): object`\n\n**post** `/v1/cards`\n\nCreate a new virtual or physical card. Parameters `shipping_address` and `product_id` only apply to physical cards.\n\n\n### Parameters\n\n- `type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'`\n Card types:\n* `VIRTUAL` - Card will authorize at any merchant and can be added to a digital wallet like Apple Pay or Google Pay (if the card program is digital wallet-enabled).\n* `PHYSICAL` - Manufactured and sent to the cardholder. We offer white label branding, credit, ATM, PIN debit, chip/EMV, NFC and magstripe functionality. Reach out at [lithic.com/contact](https://lithic.com/contact) for more information.\n* `SINGLE_USE` - Card is closed upon first successful authorization.\n* `MERCHANT_LOCKED` - Card is locked to the first merchant that successfully authorizes the card.\n* `UNLOCKED` - *[Deprecated]* Similar behavior to VIRTUAL cards, please use VIRTUAL instead.\n* `DIGITAL_WALLET` - *[Deprecated]* Similar behavior to VIRTUAL cards, please use VIRTUAL instead.\n\n- `account_token?: string`\n Globally unique identifier for the account that the card will be associated with. Required for programs enrolling users using the [/account\\_holders endpoint](https://docs.lithic.com/docs/account-holders-kyc). See [Managing Your Program](doc:managing-your-program) for more information.\n\n\n- `bulk_order_token?: string`\n Globally unique identifier for an existing bulk order to associate this card with. When specified, the card will be added to the bulk order for batch shipment. Only applicable to cards of type PHYSICAL\n\n- `card_program_token?: string`\n For card programs with more than one BIN range. This must be configured with Lithic before use. Identifies the card program/BIN range under which to create the card. If omitted, will utilize the program's default `card_program_token`. In Sandbox, use 00000000-0000-0000-1000-000000000000 and 00000000-0000-0000-2000-000000000000 to test creating cards on specific card programs.\n\n- `carrier?: { qr_code_url?: string; }`\n - `qr_code_url?: string`\n QR code URL to display on the card carrier. The `qr_code_url` field requires your domain to be allowlisted by Lithic before use. Contact Support to configure your QR code domain\n\n- `digital_card_art_token?: string`\n Specifies the digital card art to be displayed in the user’s digital wallet after tokenization. This artwork must be approved by Mastercard and configured by Lithic to use. See [Flexible Card Art Guide](https://docs.lithic.com/docs/about-digital-wallets#flexible-card-art).\n\n- `exp_month?: string`\n Two digit (MM) expiry month. If neither `exp_month` nor `exp_year` is provided, an expiration date will be generated.\n\n- `exp_year?: string`\n Four digit (yyyy) expiry year. If neither `exp_month` nor `exp_year` is provided, an expiration date will be generated.\n\n- `memo?: string`\n Friendly name to identify the card.\n\n- `pin?: string`\n Encrypted PIN block (in base64). Applies to cards of type `PHYSICAL` and `VIRTUAL`. See [Encrypted PIN Block](https://docs.lithic.com/docs/cards#encrypted-pin-block).\n\n- `product_id?: string`\n Only applicable to cards of type `PHYSICAL`. This must be configured with Lithic before use. Specifies the configuration (i.e., physical card art) that the card should be manufactured with.\n\n- `replacement_account_token?: string`\n Restricted field limited to select use cases. Lithic will reach out directly if this field should be used. Globally unique identifier for the replacement card's account. If this field is specified, `replacement_for` must also be specified. If `replacement_for` is specified and this field is omitted, the replacement card's account will be inferred from the card being replaced.\n\n- `replacement_comment?: string`\n Additional context or information related to the card that this card will replace.\n\n- `replacement_for?: string`\n Globally unique identifier for the card that this card will replace. If the card type is `PHYSICAL` it will be replaced by a `PHYSICAL` card. If the card type is `VIRTUAL` it will be replaced by a `VIRTUAL` card.\n\n- `replacement_substatus?: string`\n Card state substatus values for the card that this card will replace:\n* `LOST` - The physical card is no longer in the cardholder's possession due to being lost or never received by the cardholder.\n* `COMPROMISED` - Card information has been exposed, potentially leading to unauthorized access. This may involve physical card theft, cloning, or online data breaches.\n* `DAMAGED` - The physical card is not functioning properly, such as having chip failures or a demagnetized magnetic stripe.\n* `END_USER_REQUEST` - The cardholder requested the closure of the card for reasons unrelated to fraud or damage, such as switching to a different product or closing the account.\n* `ISSUER_REQUEST` - The issuer closed the card for reasons unrelated to fraud or damage, such as account inactivity, product or policy changes, or technology upgrades.\n* `NOT_ACTIVE` - The card hasn’t had any transaction activity for a specified period, applicable to statuses like `PAUSED` or `CLOSED`.\n* `SUSPICIOUS_ACTIVITY` - The card has one or more suspicious transactions or activities that require review. This can involve prompting the cardholder to confirm legitimate use or report confirmed fraud.\n* `INTERNAL_REVIEW` - The card is temporarily paused pending further internal review.\n* `EXPIRED` - The card has expired and has been closed without being reissued.\n* `UNDELIVERABLE` - The card cannot be delivered to the cardholder and has been returned.\n* `OTHER` - The reason for the status does not fall into any of the above categories. A comment should be provided to specify the reason.\n\n- `shipping_address?: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }`\n - `address1: string`\n Valid USPS routable address.\n - `city: string`\n City\n - `country: string`\n Uppercase ISO 3166-1 alpha-3 three character abbreviation.\n - `first_name: string`\n Customer's first name. This will be the first name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `last_name: string`\n Customer's surname (family name). This will be the last name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `postal_code: string`\n Postal code (formerly zipcode). For US addresses, either five-digit postal code or nine-digit postal code (ZIP+4) using the format 12345-1234.\n - `state: string`\n Uppercase ISO 3166-2 two character abbreviation for US and CA. Optional with a limit of 24 characters for other countries.\n - `address2?: string`\n Unit number (if applicable).\n - `email?: string`\n Email address to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n - `line2_text?: string`\n Text to be printed on line two of the physical card. Use of this field requires additional permissions.\n - `phone_number?: string`\n Cardholder's phone number in E.164 format to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n\n- `shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING'`\n Shipping method for the card. Only applies to cards of type PHYSICAL.\nUse of options besides `STANDARD` require additional permissions.\n\n* `STANDARD` - USPS regular mail or similar international option, with no tracking\n* `STANDARD_WITH_TRACKING` - USPS regular mail or similar international option, with tracking\n* `PRIORITY` - USPS Priority, 1-3 day shipping, with tracking\n* `EXPRESS` - FedEx or UPS depending on card manufacturer, Express, 3-day shipping, with tracking\n* `2_DAY` - FedEx or UPS depending on card manufacturer, 2-day shipping, with tracking\n* `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking\n* `BULK` - Card will be shipped as part of a bulk fulfillment order. The shipping method and timeline are inherited from the parent bulk order.\n\n- `spend_limit?: number`\n Amount (in cents) to limit approved authorizations (e.g. 100000 would be a $1,000 limit). Transaction requests above the spend limit will be declined. Note that a spend limit of 0 is effectively no limit, and should only be used to reset or remove a prior limit. Only a limit of 1 or above will result in declined transactions due to checks against the card limit.\n\n- `spend_limit_duration?: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'`\n Spend limit duration values:\n\n* `ANNUALLY` - Card will authorize transactions up to spend limit for the trailing year.\n* `FOREVER` - Card will authorize only up to spend limit for the entire lifetime of the card.\n* `MONTHLY` - Card will authorize transactions up to spend limit for the trailing month. To support recurring monthly payments, which can occur on different day every month, the time window we consider for monthly velocity starts 6 days after the current calendar date one month prior.\n* `TRANSACTION` - Card will authorize multiple transactions if each individual transaction is under the spend limit.\n\n- `state?: 'OPEN' | 'PAUSED'`\n Card state values:\n* `OPEN` - Card will approve authorizations (if they match card and account parameters).\n* `PAUSED` - Card will decline authorizations, but can be resumed at a later time.\n\n- `Idempotency-Key?: string`\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details with potentially PCI sensitive information for Enterprise customers\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst card = await client.cards.create({ type: 'VIRTUAL' });\n\nconsole.log(card);\n```",
perLanguage: {
- go: {
- method: 'client.Cards.New',
+ typescript: {
+ method: 'client.cards.create',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcard, err := client.Cards.New(context.TODO(), lithic.CardNewParams{\n\t\tType: lithic.F(lithic.CardNewParamsTypeVirtual),\n\t\tMemo: lithic.F("New Card"),\n\t\tSpendLimit: lithic.F(int64(1000)),\n\t\tSpendLimitDuration: lithic.F(lithic.SpendLimitDurationTransaction),\n\t\tState: lithic.F(lithic.CardNewParamsStateOpen),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst card = await client.cards.create({\n type: 'VIRTUAL',\n memo: 'New Card',\n spend_limit: 1000,\n spend_limit_duration: 'TRANSACTION',\n state: 'OPEN',\n});\n\nconsole.log(card);",
},
- http: {
+ python: {
+ method: 'cards.create',
example:
- 'curl https://api.lithic.com/v1/cards \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "type": "VIRTUAL",\n "bulk_order_token": "5e9483eb-8103-4e16-9794-2106111b2eca",\n "card_program_token": "5e9483eb-8103-4e16-9794-2106111b2eca",\n "digital_card_art_token": "5e9483eb-8103-4e16-9794-2106111b2eca",\n "exp_month": "06",\n "exp_year": "2027",\n "memo": "New Card",\n "product_id": "1",\n "replacement_account_token": "5e9483eb-8103-4e16-9794-2106111b2eca",\n "replacement_for": "5e9483eb-8103-4e16-9794-2106111b2eca"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard = client.cards.create(\n type="VIRTUAL",\n memo="New Card",\n spend_limit=1000,\n spend_limit_duration="TRANSACTION",\n state="OPEN",\n)\nprint(card)',
},
java: {
method: 'cards().create',
@@ -2356,20 +2357,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardCreateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: CardCreateParams = CardCreateParams.builder()\n .type(CardCreateParams.Type.VIRTUAL)\n .build()\n val card: Card = client.cards().create(params)\n}',
},
- python: {
- method: 'cards.create',
+ go: {
+ method: 'client.Cards.New',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard = client.cards.create(\n type="VIRTUAL",\n memo="New Card",\n spend_limit=1000,\n spend_limit_duration="TRANSACTION",\n state="OPEN",\n)\nprint(card)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcard, err := client.Cards.New(context.TODO(), lithic.CardNewParams{\n\t\tType: lithic.F(lithic.CardNewParamsTypeVirtual),\n\t\tMemo: lithic.F("New Card"),\n\t\tSpendLimit: lithic.F(int64(1000)),\n\t\tSpendLimitDuration: lithic.F(lithic.SpendLimitDurationTransaction),\n\t\tState: lithic.F(lithic.CardNewParamsStateOpen),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card)\n}\n',
},
ruby: {
method: 'cards.create',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard = lithic.cards.create(type: :VIRTUAL)\n\nputs(card)',
},
- typescript: {
- method: 'client.cards.create',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst card = await client.cards.create({\n type: 'VIRTUAL',\n memo: 'New Card',\n spend_limit: 1000,\n spend_limit_duration: 'TRANSACTION',\n state: 'OPEN',\n});\n\nconsole.log(card);",
+ 'curl https://api.lithic.com/v1/cards \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "type": "VIRTUAL",\n "bulk_order_token": "5e9483eb-8103-4e16-9794-2106111b2eca",\n "card_program_token": "5e9483eb-8103-4e16-9794-2106111b2eca",\n "digital_card_art_token": "5e9483eb-8103-4e16-9794-2106111b2eca",\n "exp_month": "06",\n "exp_year": "2027",\n "memo": "New Card",\n "product_id": "1",\n "replacement_account_token": "5e9483eb-8103-4e16-9794-2106111b2eca",\n "replacement_for": "5e9483eb-8103-4e16-9794-2106111b2eca"\n }\'',
},
},
},
@@ -2387,14 +2387,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.cards.retrieve(card_token: string): object`\n\n**get** `/v1/cards/{card_token}`\n\nGet card configuration such as spend limit and state.\n\n### Parameters\n\n- `card_token: string`\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details with potentially PCI sensitive information for Enterprise customers\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst card = await client.cards.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(card);\n```",
perLanguage: {
- go: {
- method: 'client.Cards.Get',
+ typescript: {
+ method: 'client.cards.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcard, err := client.Cards.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst card = await client.cards.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(card);",
},
- http: {
+ python: {
+ method: 'cards.retrieve',
example:
- 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard = client.cards.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(card)',
},
java: {
method: 'cards().retrieve',
@@ -2406,20 +2407,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val card: Card = client.cards().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'cards.retrieve',
+ go: {
+ method: 'client.Cards.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard = client.cards.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(card)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcard, err := client.Cards.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card)\n}\n',
},
ruby: {
method: 'cards.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard = lithic.cards.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(card)',
},
- typescript: {
- method: 'client.cards.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst card = await client.cards.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(card);",
+ 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -2450,14 +2450,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## update\n\n`client.cards.update(card_token: string, comment?: string, digital_card_art_token?: string, memo?: string, network_program_token?: string, pin?: string, pin_status?: 'OK', spend_limit?: number, spend_limit_duration?: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION', state?: 'CLOSED' | 'OPEN' | 'PAUSED', substatus?: string): object`\n\n**patch** `/v1/cards/{card_token}`\n\nUpdate the specified properties of the card. Unsupplied properties will remain unchanged.\n\n*Note: setting a card to a `CLOSED` state is a final action that cannot be undone.*\n\n\n### Parameters\n\n- `card_token: string`\n\n- `comment?: string`\n Additional context or information related to the card.\n\n- `digital_card_art_token?: string`\n Specifies the digital card art to be displayed in the user’s digital wallet after tokenization. This artwork must be approved by Mastercard and configured by Lithic to use. See [Flexible Card Art Guide](https://docs.lithic.com/docs/about-digital-wallets#flexible-card-art).\n\n- `memo?: string`\n Friendly name to identify the card.\n\n- `network_program_token?: string`\n Globally unique identifier for the card's network program. Currently applicable to Visa cards participating in Account Level Management only.\n\n- `pin?: string`\n Encrypted PIN block (in base64). Only applies to cards of type `PHYSICAL` and `VIRTUAL`. Changing PIN also resets PIN status to `OK`. See [Encrypted PIN Block](https://docs.lithic.com/docs/cards#encrypted-pin-block).\n\n- `pin_status?: 'OK'`\n Indicates if a card is blocked due a PIN status issue (e.g. excessive incorrect attempts). Can only be set to `OK` to unblock a card.\n\n- `spend_limit?: number`\n Amount (in cents) to limit approved authorizations (e.g. 100000 would be a $1,000 limit). Transaction requests above the spend limit will be declined. Note that a spend limit of 0 is effectively no limit, and should only be used to reset or remove a prior limit. Only a limit of 1 or above will result in declined transactions due to checks against the card limit.\n\n- `spend_limit_duration?: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'`\n Spend limit duration values:\n\n* `ANNUALLY` - Card will authorize transactions up to spend limit for the trailing year.\n* `FOREVER` - Card will authorize only up to spend limit for the entire lifetime of the card.\n* `MONTHLY` - Card will authorize transactions up to spend limit for the trailing month. To support recurring monthly payments, which can occur on different day every month, the time window we consider for monthly velocity starts 6 days after the current calendar date one month prior.\n* `TRANSACTION` - Card will authorize multiple transactions if each individual transaction is under the spend limit.\n\n- `state?: 'CLOSED' | 'OPEN' | 'PAUSED'`\n Card state values:\n* `CLOSED` - Card will no longer approve authorizations. Closing a card cannot be undone.\n* `OPEN` - Card will approve authorizations (if they match card and account parameters).\n* `PAUSED` - Card will decline authorizations, but can be resumed at a later time.\n\n- `substatus?: string`\n Card state substatus values:\n* `LOST` - The physical card is no longer in the cardholder's possession due to being lost or never received by the cardholder.\n* `COMPROMISED` - Card information has been exposed, potentially leading to unauthorized access. This may involve physical card theft, cloning, or online data breaches.\n* `DAMAGED` - The physical card is not functioning properly, such as having chip failures or a demagnetized magnetic stripe.\n* `END_USER_REQUEST` - The cardholder requested the closure of the card for reasons unrelated to fraud or damage, such as switching to a different product or closing the account.\n* `ISSUER_REQUEST` - The issuer closed the card for reasons unrelated to fraud or damage, such as account inactivity, product or policy changes, or technology upgrades.\n* `NOT_ACTIVE` - The card hasn’t had any transaction activity for a specified period, applicable to statuses like `PAUSED` or `CLOSED`.\n* `SUSPICIOUS_ACTIVITY` - The card has one or more suspicious transactions or activities that require review. This can involve prompting the cardholder to confirm legitimate use or report confirmed fraud.\n* `INTERNAL_REVIEW` - The card is temporarily paused pending further internal review.\n* `EXPIRED` - The card has expired and has been closed without being reissued.\n* `UNDELIVERABLE` - The card cannot be delivered to the cardholder and has been returned.\n* `OTHER` - The reason for the status does not fall into any of the above categories. A comment should be provided to specify the reason.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details with potentially PCI sensitive information for Enterprise customers\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst card = await client.cards.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(card);\n```",
perLanguage: {
- go: {
- method: 'client.Cards.Update',
+ typescript: {
+ method: 'client.cards.update',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcard, err := client.Cards.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardUpdateParams{\n\t\t\tMemo: lithic.F("Updated Name"),\n\t\t\tSpendLimit: lithic.F(int64(100)),\n\t\t\tSpendLimitDuration: lithic.F(lithic.SpendLimitDurationForever),\n\t\t\tState: lithic.F(lithic.CardUpdateParamsStateOpen),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst card = await client.cards.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n memo: 'Updated Name',\n spend_limit: 100,\n spend_limit_duration: 'FOREVER',\n state: 'OPEN',\n});\n\nconsole.log(card);",
},
- http: {
+ python: {
+ method: 'cards.update',
example:
- 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "digital_card_art_token": "00000000-0000-0000-1000-000000000000",\n "memo": "Updated Name",\n "network_program_token": "00000000-0000-0000-1000-000000000000"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard = client.cards.update(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n memo="Updated Name",\n spend_limit=100,\n spend_limit_duration="FOREVER",\n state="OPEN",\n)\nprint(card)',
},
java: {
method: 'cards().update',
@@ -2469,20 +2470,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardUpdateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val card: Card = client.cards().update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'cards.update',
+ go: {
+ method: 'client.Cards.Update',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard = client.cards.update(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n memo="Updated Name",\n spend_limit=100,\n spend_limit_duration="FOREVER",\n state="OPEN",\n)\nprint(card)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcard, err := client.Cards.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardUpdateParams{\n\t\t\tMemo: lithic.F("Updated Name"),\n\t\t\tSpendLimit: lithic.F(int64(100)),\n\t\t\tSpendLimitDuration: lithic.F(lithic.SpendLimitDurationForever),\n\t\t\tState: lithic.F(lithic.CardUpdateParamsStateOpen),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card)\n}\n',
},
ruby: {
method: 'cards.update',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard = lithic.cards.update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(card)',
},
- typescript: {
- method: 'client.cards.update',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst card = await client.cards.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n memo: 'Updated Name',\n spend_limit: 100,\n spend_limit_duration: 'FOREVER',\n state: 'OPEN',\n});\n\nconsole.log(card);",
+ 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "digital_card_art_token": "00000000-0000-0000-1000-000000000000",\n "memo": "Updated Name",\n "network_program_token": "00000000-0000-0000-1000-000000000000"\n }\'',
},
},
},
@@ -2509,14 +2509,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## provision\n\n`client.cards.provision(card_token: string, certificate?: string, client_device_id?: string, client_wallet_account_id?: string, digital_wallet?: 'APPLE_PAY' | 'GOOGLE_PAY' | 'SAMSUNG_PAY', nonce?: string, nonce_signature?: string): { provisioning_payload?: string | provision_response; }`\n\n**post** `/v1/cards/{card_token}/provision`\n\nAllow your cardholders to directly add payment cards to the device's digital wallet (e.g. Apple Pay) with one touch from your app.\n\nThis requires some additional setup and configuration. Please [Contact Us](https://lithic.com/contact) or your Customer Success representative for more information.\n\n\n### Parameters\n\n- `card_token: string`\n\n- `certificate?: string`\n Only applicable if `digital_wallet` is `APPLE_PAY`. Omit to receive only `activationData` in the response. Apple's public leaf certificate. Base64 encoded in PEM format with headers `(-----BEGIN CERTIFICATE-----)` and trailers omitted. Provided by the device's wallet.\n\n- `client_device_id?: string`\n Only applicable if `digital_wallet` is `GOOGLE_PAY` or `SAMSUNG_PAY` and the card is on the Visa network. Stable device identification set by the wallet provider.\n\n- `client_wallet_account_id?: string`\n Only applicable if `digital_wallet` is `GOOGLE_PAY` or `SAMSUNG_PAY` and the card is on the Visa network. Consumer ID that identifies the wallet account holder entity.\n\n- `digital_wallet?: 'APPLE_PAY' | 'GOOGLE_PAY' | 'SAMSUNG_PAY'`\n Name of digital wallet provider.\n\n- `nonce?: string`\n Only applicable if `digital_wallet` is `APPLE_PAY`. Omit to receive only `activationData` in the response. Base64 cryptographic nonce provided by the device's wallet.\n\n- `nonce_signature?: string`\n Only applicable if `digital_wallet` is `APPLE_PAY`. Omit to receive only `activationData` in the response. Base64 cryptographic nonce provided by the device's wallet.\n\n### Returns\n\n- `{ provisioning_payload?: string | { activationData?: string; encryptedData?: string; ephemeralPublicKey?: string; }; }`\n\n - `provisioning_payload?: string | { activationData?: string; encryptedData?: string; ephemeralPublicKey?: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.cards.provision('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.Cards.Provision',
+ typescript: {
+ method: 'client.cards.provision',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Cards.Provision(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardProvisionParams{\n\t\t\tDigitalWallet: lithic.F(lithic.CardProvisionParamsDigitalWalletGooglePay),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.ProvisioningPayload)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.cards.provision('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n digital_wallet: 'GOOGLE_PAY',\n});\n\nconsole.log(response.provisioning_payload);",
},
- http: {
+ python: {
+ method: 'cards.provision',
example:
- "curl https://api.lithic.com/v1/cards/$CARD_TOKEN/provision \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.cards.provision(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n digital_wallet="GOOGLE_PAY",\n)\nprint(response.provisioning_payload)',
},
java: {
method: 'cards().provision',
@@ -2528,20 +2529,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardProvisionParams\nimport com.lithic.api.models.CardProvisionResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: CardProvisionResponse = client.cards().provision("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'cards.provision',
+ go: {
+ method: 'client.Cards.Provision',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.cards.provision(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n digital_wallet="GOOGLE_PAY",\n)\nprint(response.provisioning_payload)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Cards.Provision(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardProvisionParams{\n\t\t\tDigitalWallet: lithic.F(lithic.CardProvisionParamsDigitalWalletGooglePay),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.ProvisioningPayload)\n}\n',
},
ruby: {
method: 'cards.provision',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.cards.provision("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(response)',
},
- typescript: {
- method: 'client.cards.provision',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.cards.provision('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n digital_wallet: 'GOOGLE_PAY',\n});\n\nconsole.log(response.provisioning_payload);",
+ "curl https://api.lithic.com/v1/cards/$CARD_TOKEN/provision \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
},
},
},
@@ -2566,14 +2566,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## reissue\n\n`client.cards.reissue(card_token: string, carrier?: { qr_code_url?: string; }, product_id?: string, shipping_address?: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }, shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING'): object`\n\n**post** `/v1/cards/{card_token}/reissue`\n\nInitiate print and shipment of a duplicate physical card (e.g. card is physically damaged). The PAN, expiry, and CVC2 will remain the same and the original card can continue to be used until the new card is activated.\nOnly applies to cards of type `PHYSICAL`. A card can be reissued or renewed a total of 8 times.\n\n### Parameters\n\n- `card_token: string`\n\n- `carrier?: { qr_code_url?: string; }`\n If omitted, the previous carrier will be used.\n - `qr_code_url?: string`\n QR code URL to display on the card carrier. The `qr_code_url` field requires your domain to be allowlisted by Lithic before use. Contact Support to configure your QR code domain\n\n- `product_id?: string`\n Specifies the configuration (e.g. physical card art) that the card should be manufactured with, and only applies to cards of type `PHYSICAL`. This must be configured with Lithic before use.\n\n\n- `shipping_address?: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }`\n If omitted, the previous shipping address will be used.\n - `address1: string`\n Valid USPS routable address.\n - `city: string`\n City\n - `country: string`\n Uppercase ISO 3166-1 alpha-3 three character abbreviation.\n - `first_name: string`\n Customer's first name. This will be the first name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `last_name: string`\n Customer's surname (family name). This will be the last name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `postal_code: string`\n Postal code (formerly zipcode). For US addresses, either five-digit postal code or nine-digit postal code (ZIP+4) using the format 12345-1234.\n - `state: string`\n Uppercase ISO 3166-2 two character abbreviation for US and CA. Optional with a limit of 24 characters for other countries.\n - `address2?: string`\n Unit number (if applicable).\n - `email?: string`\n Email address to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n - `line2_text?: string`\n Text to be printed on line two of the physical card. Use of this field requires additional permissions.\n - `phone_number?: string`\n Cardholder's phone number in E.164 format to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n\n- `shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING'`\n Shipping method for the card. Only applies to cards of type PHYSICAL.\nUse of options besides `STANDARD` require additional permissions.\n\n* `STANDARD` - USPS regular mail or similar international option, with no tracking\n* `STANDARD_WITH_TRACKING` - USPS regular mail or similar international option, with tracking\n* `PRIORITY` - USPS Priority, 1-3 day shipping, with tracking\n* `EXPRESS` - FedEx or UPS depending on card manufacturer, Express, 3-day shipping, with tracking\n* `2_DAY` - FedEx or UPS depending on card manufacturer, 2-day shipping, with tracking\n* `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking\n* `BULK` - Card will be shipped as part of a bulk fulfillment order. The shipping method and timeline are inherited from the parent bulk order.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details with potentially PCI sensitive information for Enterprise customers\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst card = await client.cards.reissue('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(card);\n```",
perLanguage: {
- go: {
- method: 'client.Cards.Reissue',
+ typescript: {
+ method: 'client.cards.reissue',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n\t"github.com/lithic-com/lithic-go/shared"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcard, err := client.Cards.Reissue(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardReissueParams{\n\t\t\tCarrier: lithic.F(shared.CarrierParam{\n\t\t\t\tQrCodeURL: lithic.F("https://lithic.com/activate-card/1"),\n\t\t\t}),\n\t\t\tProductID: lithic.F("100"),\n\t\t\tShippingAddress: lithic.F(shared.ShippingAddressParam{\n\t\t\t\tAddress1: lithic.F("5 Broad Street"),\n\t\t\t\tAddress2: lithic.F("Unit 5A"),\n\t\t\t\tCity: lithic.F("NEW YORK"),\n\t\t\t\tCountry: lithic.F("USA"),\n\t\t\t\tFirstName: lithic.F("Janet"),\n\t\t\t\tLastName: lithic.F("Yellen"),\n\t\t\t\tPostalCode: lithic.F("10001"),\n\t\t\t\tState: lithic.F("NY"),\n\t\t\t}),\n\t\t\tShippingMethod: lithic.F(lithic.CardReissueParamsShippingMethodStandard),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst card = await client.cards.reissue('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n carrier: { qr_code_url: 'https://lithic.com/activate-card/1' },\n product_id: '100',\n shipping_address: {\n address1: '5 Broad Street',\n address2: 'Unit 5A',\n city: 'NEW YORK',\n country: 'USA',\n first_name: 'Janet',\n last_name: 'Yellen',\n postal_code: '10001',\n state: 'NY',\n },\n shipping_method: 'STANDARD',\n});\n\nconsole.log(card);",
},
- http: {
+ python: {
+ method: 'cards.reissue',
example:
- "curl https://api.lithic.com/v1/cards/$CARD_TOKEN/reissue \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard = client.cards.reissue(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n carrier={\n "qr_code_url": "https://lithic.com/activate-card/1"\n },\n product_id="100",\n shipping_address={\n "address1": "5 Broad Street",\n "address2": "Unit 5A",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Janet",\n "last_name": "Yellen",\n "postal_code": "10001",\n "state": "NY",\n },\n shipping_method="STANDARD",\n)\nprint(card)',
},
java: {
method: 'cards().reissue',
@@ -2585,20 +2586,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardReissueParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val card: Card = client.cards().reissue("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'cards.reissue',
+ go: {
+ method: 'client.Cards.Reissue',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard = client.cards.reissue(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n carrier={\n "qr_code_url": "https://lithic.com/activate-card/1"\n },\n product_id="100",\n shipping_address={\n "address1": "5 Broad Street",\n "address2": "Unit 5A",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Janet",\n "last_name": "Yellen",\n "postal_code": "10001",\n "state": "NY",\n },\n shipping_method="STANDARD",\n)\nprint(card)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n\t"github.com/lithic-com/lithic-go/shared"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcard, err := client.Cards.Reissue(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardReissueParams{\n\t\t\tCarrier: lithic.F(shared.CarrierParam{\n\t\t\t\tQrCodeURL: lithic.F("https://lithic.com/activate-card/1"),\n\t\t\t}),\n\t\t\tProductID: lithic.F("100"),\n\t\t\tShippingAddress: lithic.F(shared.ShippingAddressParam{\n\t\t\t\tAddress1: lithic.F("5 Broad Street"),\n\t\t\t\tAddress2: lithic.F("Unit 5A"),\n\t\t\t\tCity: lithic.F("NEW YORK"),\n\t\t\t\tCountry: lithic.F("USA"),\n\t\t\t\tFirstName: lithic.F("Janet"),\n\t\t\t\tLastName: lithic.F("Yellen"),\n\t\t\t\tPostalCode: lithic.F("10001"),\n\t\t\t\tState: lithic.F("NY"),\n\t\t\t}),\n\t\t\tShippingMethod: lithic.F(lithic.CardReissueParamsShippingMethodStandard),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card)\n}\n',
},
ruby: {
method: 'cards.reissue',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard = lithic.cards.reissue("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(card)',
},
- typescript: {
- method: 'client.cards.reissue',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst card = await client.cards.reissue('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n carrier: { qr_code_url: 'https://lithic.com/activate-card/1' },\n product_id: '100',\n shipping_address: {\n address1: '5 Broad Street',\n address2: 'Unit 5A',\n city: 'NEW YORK',\n country: 'USA',\n first_name: 'Janet',\n last_name: 'Yellen',\n postal_code: '10001',\n state: 'NY',\n },\n shipping_method: 'STANDARD',\n});\n\nconsole.log(card);",
+ "curl https://api.lithic.com/v1/cards/$CARD_TOKEN/reissue \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
},
},
},
@@ -2616,13 +2616,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## embed\n\n`client.cards.embed(embed_request: string, hmac: string): string`\n\n**get** `/v1/embed/card`\n\nHandling full card PANs and CVV codes requires that you comply with the Payment Card Industry Data Security Standards (PCI DSS). Some clients choose to reduce their compliance obligations by leveraging our embedded card UI solution documented below.\n\nIn this setup, PANs and CVV codes are presented to the end-user via a card UI that we provide, optionally styled in the customer's branding using a specified css stylesheet. A user's browser makes the request directly to api.lithic.com, so card PANs and CVVs never touch the API customer's servers while full card data is displayed to their end-users. The response contains an HTML document (see Embedded Card UI or Changelog for upcoming changes in January). This means that the url for the request can be inserted straight into the `src` attribute of an iframe.\n\n```html\n\n```\n\nYou should compute the request payload on the server side. You can render it (or the whole iframe) on the server or make an ajax call from your front end code, but **do not ever embed your API key into front end code, as doing so introduces a serious security vulnerability**.\n\n\n### Parameters\n\n- `embed_request: string`\n A base64 encoded JSON string of an EmbedRequest to specify which card to load.\n\n- `hmac: string`\n SHA256 HMAC of the embed_request JSON string with base64 digest.\n\n### Returns\n\n- `string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.cards.embed({ embed_request: 'embed_request', hmac: 'hmac' });\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.Cards.Embed',
+ typescript: {
+ method: 'client.cards.embed',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Cards.Embed(context.TODO(), lithic.CardEmbedParams{\n\t\tEmbedRequest: lithic.F("embed_request"),\n\t\tHmac: lithic.F("hmac"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.cards.embed({ embed_request: 'embed_request', hmac: 'hmac' });\n\nconsole.log(response);",
},
- http: {
- example: 'curl https://api.lithic.com/v1/embed/card \\\n -H "Authorization: $LITHIC_API_KEY"',
+ python: {
+ method: 'cards.embed',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.cards.embed(\n embed_request="embed_request",\n hmac="hmac",\n)\nprint(response)',
},
java: {
method: 'cards().embed',
@@ -2634,20 +2636,18 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardEmbedParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: CardEmbedParams = CardEmbedParams.builder()\n .embedRequest("embed_request")\n .hmac("hmac")\n .build()\n val response: String = client.cards().embed(params)\n}',
},
- python: {
- method: 'cards.embed',
+ go: {
+ method: 'client.Cards.Embed',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.cards.embed(\n embed_request="embed_request",\n hmac="hmac",\n)\nprint(response)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Cards.Embed(context.TODO(), lithic.CardEmbedParams{\n\t\tEmbedRequest: lithic.F("embed_request"),\n\t\tHmac: lithic.F("hmac"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response)\n}\n',
},
ruby: {
method: 'cards.embed',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.cards.embed(embed_request: "embed_request", hmac: "hmac")\n\nputs(response)',
},
- typescript: {
- method: 'client.cards.embed',
- example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.cards.embed({ embed_request: 'embed_request', hmac: 'hmac' });\n\nconsole.log(response);",
+ http: {
+ example: 'curl https://api.lithic.com/v1/embed/card \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -2666,14 +2666,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve_spend_limits\n\n`client.cards.retrieveSpendLimits(card_token: string): { available_spend_limit: object; spend_limit?: object; spend_velocity?: object; }`\n\n**get** `/v1/cards/{card_token}/spend_limits`\n\nGet a Card's available spend limit, which is based on the spend limit configured on the Card and the amount already spent over the spend limit's duration. For example, if the Card has a monthly spend limit of $1000 configured, and has spent $600 in the last month, the available spend limit returned would be $400.\n\n### Parameters\n\n- `card_token: string`\n\n### Returns\n\n- `{ available_spend_limit: { annually?: number; forever?: number; monthly?: number; }; spend_limit?: { annually?: number; forever?: number; monthly?: number; }; spend_velocity?: { annually?: number; forever?: number; monthly?: number; }; }`\n\n - `available_spend_limit: { annually?: number; forever?: number; monthly?: number; }`\n - `spend_limit?: { annually?: number; forever?: number; monthly?: number; }`\n - `spend_velocity?: { annually?: number; forever?: number; monthly?: number; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst cardSpendLimits = await client.cards.retrieveSpendLimits('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(cardSpendLimits);\n```",
perLanguage: {
- go: {
- method: 'client.Cards.GetSpendLimits',
+ typescript: {
+ method: 'client.cards.retrieveSpendLimits',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcardSpendLimits, err := client.Cards.GetSpendLimits(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", cardSpendLimits.AvailableSpendLimit)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst cardSpendLimits = await client.cards.retrieveSpendLimits(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(cardSpendLimits.available_spend_limit);",
},
- http: {
+ python: {
+ method: 'cards.retrieve_spend_limits',
example:
- 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN/spend_limits \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard_spend_limits = client.cards.retrieve_spend_limits(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(card_spend_limits.available_spend_limit)',
},
java: {
method: 'cards().retrieveSpendLimits',
@@ -2685,20 +2686,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardRetrieveSpendLimitsParams\nimport com.lithic.api.models.CardSpendLimits\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val cardSpendLimits: CardSpendLimits = client.cards().retrieveSpendLimits("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'cards.retrieve_spend_limits',
+ go: {
+ method: 'client.Cards.GetSpendLimits',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard_spend_limits = client.cards.retrieve_spend_limits(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(card_spend_limits.available_spend_limit)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcardSpendLimits, err := client.Cards.GetSpendLimits(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", cardSpendLimits.AvailableSpendLimit)\n}\n',
},
ruby: {
method: 'cards.retrieve_spend_limits',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard_spend_limits = lithic.cards.retrieve_spend_limits("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(card_spend_limits)',
},
- typescript: {
- method: 'client.cards.retrieveSpendLimits',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst cardSpendLimits = await client.cards.retrieveSpendLimits(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(cardSpendLimits.available_spend_limit);",
+ 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN/spend_limits \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -2725,14 +2725,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## renew\n\n`client.cards.renew(card_token: string, shipping_address: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }, carrier?: { qr_code_url?: string; }, exp_month?: string, exp_year?: string, product_id?: string, shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING'): object`\n\n**post** `/v1/cards/{card_token}/renew`\n\nApplies to card types `PHYSICAL` and `VIRTUAL`.\nFor `PHYSICAL`, creates a new card with the same card token and PAN, but updated expiry and CVC2 code. The original card will keep working for card-present transactions until the new card is activated. For card-not-present transactions, the original card details (expiry, CVC2) will also keep working until the new card is activated.\nA `PHYSICAL` card can be reissued or renewed a total of 8 times.\nFor `VIRTUAL`, the card will retain the same card token and PAN and receive an updated expiry and CVC2 code.\n`product_id`, `shipping_method`, `shipping_address`, `carrier` are only relevant for renewing `PHYSICAL` cards.\n\n### Parameters\n\n- `card_token: string`\n\n- `shipping_address: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }`\n The shipping address this card will be sent to.\n - `address1: string`\n Valid USPS routable address.\n - `city: string`\n City\n - `country: string`\n Uppercase ISO 3166-1 alpha-3 three character abbreviation.\n - `first_name: string`\n Customer's first name. This will be the first name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `last_name: string`\n Customer's surname (family name). This will be the last name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `postal_code: string`\n Postal code (formerly zipcode). For US addresses, either five-digit postal code or nine-digit postal code (ZIP+4) using the format 12345-1234.\n - `state: string`\n Uppercase ISO 3166-2 two character abbreviation for US and CA. Optional with a limit of 24 characters for other countries.\n - `address2?: string`\n Unit number (if applicable).\n - `email?: string`\n Email address to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n - `line2_text?: string`\n Text to be printed on line two of the physical card. Use of this field requires additional permissions.\n - `phone_number?: string`\n Cardholder's phone number in E.164 format to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n\n- `carrier?: { qr_code_url?: string; }`\n If omitted, the previous carrier will be used.\n - `qr_code_url?: string`\n QR code URL to display on the card carrier. The `qr_code_url` field requires your domain to be allowlisted by Lithic before use. Contact Support to configure your QR code domain\n\n- `exp_month?: string`\n Two digit (MM) expiry month. If neither `exp_month` nor `exp_year` is provided, an expiration date six years in the future will be generated.\n\n- `exp_year?: string`\n Four digit (yyyy) expiry year. If neither `exp_month` nor `exp_year` is provided, an expiration date six years in the future will be generated.\n\n- `product_id?: string`\n Specifies the configuration (e.g. physical card art) that the card should be manufactured with, and only applies to cards of type `PHYSICAL`. This must be configured with Lithic before use.\n\n\n- `shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING'`\n Shipping method for the card. Only applies to cards of type PHYSICAL.\nUse of options besides `STANDARD` require additional permissions.\n\n* `STANDARD` - USPS regular mail or similar international option, with no tracking\n* `STANDARD_WITH_TRACKING` - USPS regular mail or similar international option, with tracking\n* `PRIORITY` - USPS Priority, 1-3 day shipping, with tracking\n* `EXPRESS` - FedEx or UPS depending on card manufacturer, Express, 3-day shipping, with tracking\n* `2_DAY` - FedEx or UPS depending on card manufacturer, 2-day shipping, with tracking\n* `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking\n* `BULK` - Card will be shipped as part of a bulk fulfillment order. The shipping method and timeline are inherited from the parent bulk order.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details with potentially PCI sensitive information for Enterprise customers\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst card = await client.cards.renew('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { shipping_address: {\n address1: '5 Broad Street',\n city: 'NEW YORK',\n country: 'USA',\n first_name: 'Janet',\n last_name: 'Yellen',\n postal_code: '10001',\n state: 'NY',\n} });\n\nconsole.log(card);\n```",
perLanguage: {
- go: {
- method: 'client.Cards.Renew',
+ typescript: {
+ method: 'client.cards.renew',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n\t"github.com/lithic-com/lithic-go/shared"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcard, err := client.Cards.Renew(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardRenewParams{\n\t\t\tShippingAddress: lithic.F(shared.ShippingAddressParam{\n\t\t\t\tAddress1: lithic.F("5 Broad Street"),\n\t\t\t\tAddress2: lithic.F("Unit 5A"),\n\t\t\t\tCity: lithic.F("NEW YORK"),\n\t\t\t\tCountry: lithic.F("USA"),\n\t\t\t\tFirstName: lithic.F("Janet"),\n\t\t\t\tLastName: lithic.F("Yellen"),\n\t\t\t\tPostalCode: lithic.F("10001"),\n\t\t\t\tState: lithic.F("NY"),\n\t\t\t}),\n\t\t\tCarrier: lithic.F(shared.CarrierParam{\n\t\t\t\tQrCodeURL: lithic.F("https://lithic.com/activate-card/1"),\n\t\t\t}),\n\t\t\tProductID: lithic.F("100"),\n\t\t\tShippingMethod: lithic.F(lithic.CardRenewParamsShippingMethodStandard),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst card = await client.cards.renew('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n shipping_address: {\n address1: '5 Broad Street',\n address2: 'Unit 5A',\n city: 'NEW YORK',\n country: 'USA',\n first_name: 'Janet',\n last_name: 'Yellen',\n postal_code: '10001',\n state: 'NY',\n },\n carrier: { qr_code_url: 'https://lithic.com/activate-card/1' },\n product_id: '100',\n shipping_method: 'STANDARD',\n});\n\nconsole.log(card);",
},
- http: {
+ python: {
+ method: 'cards.renew',
example:
- 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN/renew \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "shipping_address": {\n "address1": "5 Broad Street",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Janet",\n "last_name": "Yellen",\n "postal_code": "10001",\n "state": "NY",\n "address2": "Unit 5A"\n },\n "exp_month": "06",\n "exp_year": "2027"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard = client.cards.renew(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n shipping_address={\n "address1": "5 Broad Street",\n "address2": "Unit 5A",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Janet",\n "last_name": "Yellen",\n "postal_code": "10001",\n "state": "NY",\n },\n carrier={\n "qr_code_url": "https://lithic.com/activate-card/1"\n },\n product_id="100",\n shipping_method="STANDARD",\n)\nprint(card)',
},
java: {
method: 'cards().renew',
@@ -2744,20 +2745,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardRenewParams\nimport com.lithic.api.models.ShippingAddress\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: CardRenewParams = CardRenewParams.builder()\n .cardToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .shippingAddress(ShippingAddress.builder()\n .address1("5 Broad Street")\n .city("NEW YORK")\n .country("USA")\n .firstName("Janet")\n .lastName("Yellen")\n .postalCode("10001")\n .state("NY")\n .build())\n .build()\n val card: Card = client.cards().renew(params)\n}',
},
- python: {
- method: 'cards.renew',
+ go: {
+ method: 'client.Cards.Renew',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard = client.cards.renew(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n shipping_address={\n "address1": "5 Broad Street",\n "address2": "Unit 5A",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Janet",\n "last_name": "Yellen",\n "postal_code": "10001",\n "state": "NY",\n },\n carrier={\n "qr_code_url": "https://lithic.com/activate-card/1"\n },\n product_id="100",\n shipping_method="STANDARD",\n)\nprint(card)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n\t"github.com/lithic-com/lithic-go/shared"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcard, err := client.Cards.Renew(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardRenewParams{\n\t\t\tShippingAddress: lithic.F(shared.ShippingAddressParam{\n\t\t\t\tAddress1: lithic.F("5 Broad Street"),\n\t\t\t\tAddress2: lithic.F("Unit 5A"),\n\t\t\t\tCity: lithic.F("NEW YORK"),\n\t\t\t\tCountry: lithic.F("USA"),\n\t\t\t\tFirstName: lithic.F("Janet"),\n\t\t\t\tLastName: lithic.F("Yellen"),\n\t\t\t\tPostalCode: lithic.F("10001"),\n\t\t\t\tState: lithic.F("NY"),\n\t\t\t}),\n\t\t\tCarrier: lithic.F(shared.CarrierParam{\n\t\t\t\tQrCodeURL: lithic.F("https://lithic.com/activate-card/1"),\n\t\t\t}),\n\t\t\tProductID: lithic.F("100"),\n\t\t\tShippingMethod: lithic.F(lithic.CardRenewParamsShippingMethodStandard),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card)\n}\n',
},
ruby: {
method: 'cards.renew',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard = lithic.cards.renew(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n shipping_address: {\n address1: "5 Broad Street",\n city: "NEW YORK",\n country: "USA",\n first_name: "Janet",\n last_name: "Yellen",\n postal_code: "10001",\n state: "NY"\n }\n)\n\nputs(card)',
},
- typescript: {
- method: 'client.cards.renew',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst card = await client.cards.renew('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n shipping_address: {\n address1: '5 Broad Street',\n address2: 'Unit 5A',\n city: 'NEW YORK',\n country: 'USA',\n first_name: 'Janet',\n last_name: 'Yellen',\n postal_code: '10001',\n state: 'NY',\n },\n carrier: { qr_code_url: 'https://lithic.com/activate-card/1' },\n product_id: '100',\n shipping_method: 'STANDARD',\n});\n\nconsole.log(card);",
+ 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN/renew \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "shipping_address": {\n "address1": "5 Broad Street",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Janet",\n "last_name": "Yellen",\n "postal_code": "10001",\n "state": "NY",\n "address2": "Unit 5A"\n },\n "exp_month": "06",\n "exp_year": "2027"\n }\'',
},
},
},
@@ -2776,14 +2776,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## search_by_pan\n\n`client.cards.searchByPan(pan: string): object`\n\n**post** `/v1/cards/search_by_pan`\n\nGet card configuration such as spend limit and state. Customers must be PCI compliant to use this endpoint. Please contact [support@lithic.com](mailto:support@lithic.com) for questions.\n*Note: this is a `POST` endpoint because it is more secure to send sensitive data in a request body than in a URL.*\n\n### Parameters\n\n- `pan: string`\n The PAN for the card being retrieved.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details with potentially PCI sensitive information for Enterprise customers\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst card = await client.cards.searchByPan({ pan: '4111111289144142' });\n\nconsole.log(card);\n```",
perLanguage: {
- go: {
- method: 'client.Cards.SearchByPan',
+ typescript: {
+ method: 'client.cards.searchByPan',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcard, err := client.Cards.SearchByPan(context.TODO(), lithic.CardSearchByPanParams{\n\t\tPan: lithic.F("4111111289144142"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst card = await client.cards.searchByPan({ pan: '4111111289144142' });\n\nconsole.log(card);",
},
- http: {
+ python: {
+ method: 'cards.search_by_pan',
example:
- 'curl https://api.lithic.com/v1/cards/search_by_pan \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "pan": "4111111289144142"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard = client.cards.search_by_pan(\n pan="4111111289144142",\n)\nprint(card)',
},
java: {
method: 'cards().searchByPan',
@@ -2795,20 +2796,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardSearchByPanParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: CardSearchByPanParams = CardSearchByPanParams.builder()\n .pan("4111111289144142")\n .build()\n val card: Card = client.cards().searchByPan(params)\n}',
},
- python: {
- method: 'cards.search_by_pan',
+ go: {
+ method: 'client.Cards.SearchByPan',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard = client.cards.search_by_pan(\n pan="4111111289144142",\n)\nprint(card)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcard, err := client.Cards.SearchByPan(context.TODO(), lithic.CardSearchByPanParams{\n\t\tPan: lithic.F("4111111289144142"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card)\n}\n',
},
ruby: {
method: 'cards.search_by_pan',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard = lithic.cards.search_by_pan(pan: "4111111289144142")\n\nputs(card)',
},
- typescript: {
- method: 'client.cards.searchByPan',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst card = await client.cards.searchByPan({ pan: '4111111289144142' });\n\nconsole.log(card);",
+ 'curl https://api.lithic.com/v1/cards/search_by_pan \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "pan": "4111111289144142"\n }\'',
},
},
},
@@ -2833,14 +2833,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## convert_physical\n\n`client.cards.convertPhysical(card_token: string, shipping_address: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }, carrier?: { qr_code_url?: string; }, product_id?: string, shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING'): object`\n\n**post** `/v1/cards/{card_token}/convert_physical`\n\nConvert a virtual card into a physical card and manufacture it.\nCustomer must supply relevant fields for physical card creation including `product_id`, `carrier`, `shipping_method`, and `shipping_address`.\nThe card token will be unchanged. The card's type will be altered to `PHYSICAL`.\nThe card will be set to state `PENDING_FULFILLMENT` and fulfilled at next fulfillment cycle.\nVirtual cards created on card programs which do not support physical cards cannot be converted. The card program cannot be changed as part of the conversion. Cards must be in an `OPEN` state to be converted.\nOnly applies to cards of type `VIRTUAL` (or existing cards with deprecated types of `DIGITAL_WALLET` and `UNLOCKED`).\n\n### Parameters\n\n- `card_token: string`\n\n- `shipping_address: { address1: string; city: string; country: string; first_name: string; last_name: string; postal_code: string; state: string; address2?: string; email?: string; line2_text?: string; phone_number?: string; }`\n The shipping address this card will be sent to.\n - `address1: string`\n Valid USPS routable address.\n - `city: string`\n City\n - `country: string`\n Uppercase ISO 3166-1 alpha-3 three character abbreviation.\n - `first_name: string`\n Customer's first name. This will be the first name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `last_name: string`\n Customer's surname (family name). This will be the last name printed on the physical card. The combined length of `first_name` and `last_name` may not exceed 25 characters.\n - `postal_code: string`\n Postal code (formerly zipcode). For US addresses, either five-digit postal code or nine-digit postal code (ZIP+4) using the format 12345-1234.\n - `state: string`\n Uppercase ISO 3166-2 two character abbreviation for US and CA. Optional with a limit of 24 characters for other countries.\n - `address2?: string`\n Unit number (if applicable).\n - `email?: string`\n Email address to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n - `line2_text?: string`\n Text to be printed on line two of the physical card. Use of this field requires additional permissions.\n - `phone_number?: string`\n Cardholder's phone number in E.164 format to be contacted for expedited shipping process purposes. Required if `shipping_method` is `EXPEDITED`.\n\n- `carrier?: { qr_code_url?: string; }`\n If omitted, the previous carrier will be used.\n - `qr_code_url?: string`\n QR code URL to display on the card carrier. The `qr_code_url` field requires your domain to be allowlisted by Lithic before use. Contact Support to configure your QR code domain\n\n- `product_id?: string`\n Specifies the configuration (e.g. physical card art) that the card should be manufactured with, and only applies to cards of type `PHYSICAL`. This must be configured with Lithic before use.\n\n\n- `shipping_method?: '2_DAY' | 'BULK' | 'EXPEDITED' | 'EXPRESS' | 'PRIORITY' | 'STANDARD' | 'STANDARD_WITH_TRACKING'`\n Shipping method for the card. Only applies to cards of type PHYSICAL.\nUse of options besides `STANDARD` require additional permissions.\n\n* `STANDARD` - USPS regular mail or similar international option, with no tracking\n* `STANDARD_WITH_TRACKING` - USPS regular mail or similar international option, with tracking\n* `PRIORITY` - USPS Priority, 1-3 day shipping, with tracking\n* `EXPRESS` - FedEx or UPS depending on card manufacturer, Express, 3-day shipping, with tracking\n* `2_DAY` - FedEx or UPS depending on card manufacturer, 2-day shipping, with tracking\n* `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking\n* `BULK` - Card will be shipped as part of a bulk fulfillment order. The shipping method and timeline are inherited from the parent bulk order.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; created: string; funding: { token: string; created: string; last_four: string; state: 'DELETED' | 'ENABLED' | 'PENDING'; type: 'DEPOSITORY_CHECKING' | 'DEPOSITORY_SAVINGS'; account_name?: string; nickname?: string; }; last_four: string; pin_status: 'OK' | 'BLOCKED' | 'NOT_SET'; spend_limit: number; spend_limit_duration: 'ANNUALLY' | 'FOREVER' | 'MONTHLY' | 'TRANSACTION'; state: 'CLOSED' | 'OPEN' | 'PAUSED' | 'PENDING_ACTIVATION' | 'PENDING_FULFILLMENT'; type: 'MERCHANT_LOCKED' | 'PHYSICAL' | 'SINGLE_USE' | 'VIRTUAL' | 'UNLOCKED' | 'DIGITAL_WALLET'; auth_rule_tokens?: string[]; bulk_order_token?: string; cardholder_currency?: string; comment?: string; digital_card_art_token?: string; exp_month?: string; exp_year?: string; hostname?: string; memo?: string; network_program_token?: string; pending_commands?: string[]; product_id?: string; replacement_for?: string; substatus?: string; }`\n Card details with potentially PCI sensitive information for Enterprise customers\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst card = await client.cards.convertPhysical('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { shipping_address: {\n address1: '5 Broad Street',\n city: 'NEW YORK',\n country: 'USA',\n first_name: 'Janet',\n last_name: 'Yellen',\n postal_code: '10001',\n state: 'NY',\n} });\n\nconsole.log(card);\n```",
perLanguage: {
- go: {
- method: 'client.Cards.ConvertPhysical',
+ typescript: {
+ method: 'client.cards.convertPhysical',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n\t"github.com/lithic-com/lithic-go/shared"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcard, err := client.Cards.ConvertPhysical(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardConvertPhysicalParams{\n\t\t\tShippingAddress: lithic.F(shared.ShippingAddressParam{\n\t\t\t\tAddress1: lithic.F("5 Broad Street"),\n\t\t\t\tAddress2: lithic.F("Unit 5A"),\n\t\t\t\tCity: lithic.F("NEW YORK"),\n\t\t\t\tCountry: lithic.F("USA"),\n\t\t\t\tFirstName: lithic.F("Janet"),\n\t\t\t\tLastName: lithic.F("Yellen"),\n\t\t\t\tPostalCode: lithic.F("10001"),\n\t\t\t\tState: lithic.F("NY"),\n\t\t\t}),\n\t\t\tCarrier: lithic.F(shared.CarrierParam{\n\t\t\t\tQrCodeURL: lithic.F("https://lithic.com/activate-card/1"),\n\t\t\t}),\n\t\t\tProductID: lithic.F("100"),\n\t\t\tShippingMethod: lithic.F(lithic.CardConvertPhysicalParamsShippingMethodStandard),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst card = await client.cards.convertPhysical('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n shipping_address: {\n address1: '5 Broad Street',\n address2: 'Unit 5A',\n city: 'NEW YORK',\n country: 'USA',\n first_name: 'Janet',\n last_name: 'Yellen',\n postal_code: '10001',\n state: 'NY',\n },\n carrier: { qr_code_url: 'https://lithic.com/activate-card/1' },\n product_id: '100',\n shipping_method: 'STANDARD',\n});\n\nconsole.log(card);",
},
- http: {
+ python: {
+ method: 'cards.convert_physical',
example:
- 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN/convert_physical \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "shipping_address": {\n "address1": "5 Broad Street",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Janet",\n "last_name": "Yellen",\n "postal_code": "10001",\n "state": "NY",\n "address2": "Unit 5A"\n }\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard = client.cards.convert_physical(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n shipping_address={\n "address1": "5 Broad Street",\n "address2": "Unit 5A",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Janet",\n "last_name": "Yellen",\n "postal_code": "10001",\n "state": "NY",\n },\n carrier={\n "qr_code_url": "https://lithic.com/activate-card/1"\n },\n product_id="100",\n shipping_method="STANDARD",\n)\nprint(card)',
},
java: {
method: 'cards().convertPhysical',
@@ -2852,20 +2853,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Card\nimport com.lithic.api.models.CardConvertPhysicalParams\nimport com.lithic.api.models.ShippingAddress\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: CardConvertPhysicalParams = CardConvertPhysicalParams.builder()\n .cardToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .shippingAddress(ShippingAddress.builder()\n .address1("5 Broad Street")\n .city("NEW YORK")\n .country("USA")\n .firstName("Janet")\n .lastName("Yellen")\n .postalCode("10001")\n .state("NY")\n .build())\n .build()\n val card: Card = client.cards().convertPhysical(params)\n}',
},
- python: {
- method: 'cards.convert_physical',
+ go: {
+ method: 'client.Cards.ConvertPhysical',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard = client.cards.convert_physical(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n shipping_address={\n "address1": "5 Broad Street",\n "address2": "Unit 5A",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Janet",\n "last_name": "Yellen",\n "postal_code": "10001",\n "state": "NY",\n },\n carrier={\n "qr_code_url": "https://lithic.com/activate-card/1"\n },\n product_id="100",\n shipping_method="STANDARD",\n)\nprint(card)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n\t"github.com/lithic-com/lithic-go/shared"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcard, err := client.Cards.ConvertPhysical(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardConvertPhysicalParams{\n\t\t\tShippingAddress: lithic.F(shared.ShippingAddressParam{\n\t\t\t\tAddress1: lithic.F("5 Broad Street"),\n\t\t\t\tAddress2: lithic.F("Unit 5A"),\n\t\t\t\tCity: lithic.F("NEW YORK"),\n\t\t\t\tCountry: lithic.F("USA"),\n\t\t\t\tFirstName: lithic.F("Janet"),\n\t\t\t\tLastName: lithic.F("Yellen"),\n\t\t\t\tPostalCode: lithic.F("10001"),\n\t\t\t\tState: lithic.F("NY"),\n\t\t\t}),\n\t\t\tCarrier: lithic.F(shared.CarrierParam{\n\t\t\t\tQrCodeURL: lithic.F("https://lithic.com/activate-card/1"),\n\t\t\t}),\n\t\t\tProductID: lithic.F("100"),\n\t\t\tShippingMethod: lithic.F(lithic.CardConvertPhysicalParamsShippingMethodStandard),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card)\n}\n',
},
ruby: {
method: 'cards.convert_physical',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard = lithic.cards.convert_physical(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n shipping_address: {\n address1: "5 Broad Street",\n city: "NEW YORK",\n country: "USA",\n first_name: "Janet",\n last_name: "Yellen",\n postal_code: "10001",\n state: "NY"\n }\n)\n\nputs(card)',
},
- typescript: {
- method: 'client.cards.convertPhysical',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst card = await client.cards.convertPhysical('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n shipping_address: {\n address1: '5 Broad Street',\n address2: 'Unit 5A',\n city: 'NEW YORK',\n country: 'USA',\n first_name: 'Janet',\n last_name: 'Yellen',\n postal_code: '10001',\n state: 'NY',\n },\n carrier: { qr_code_url: 'https://lithic.com/activate-card/1' },\n product_id: '100',\n shipping_method: 'STANDARD',\n});\n\nconsole.log(card);",
+ 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN/convert_physical \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "shipping_address": {\n "address1": "5 Broad Street",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Janet",\n "last_name": "Yellen",\n "postal_code": "10001",\n "state": "NY",\n "address2": "Unit 5A"\n }\n }\'',
},
},
},
@@ -2890,14 +2890,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## web_provision\n\n`client.cards.webProvision(card_token: string, client_device_id?: string, client_wallet_account_id?: string, digital_wallet?: 'APPLE_PAY' | 'GOOGLE_PAY', server_session_id?: string): { jws: object; state: string; } | { google_opc?: string; tsp_opc?: string; }`\n\n**post** `/v1/cards/{card_token}/web_provision`\n\nAllow your cardholders to directly add payment cards to the device's digital wallet from a browser on the web.\n\nThis requires some additional setup and configuration. Please [Contact Us](https://lithic.com/contact) or your Customer Success representative for more information.\n\n\n### Parameters\n\n- `card_token: string`\n\n- `client_device_id?: string`\n Only applicable if `digital_wallet` is GOOGLE_PAY. Google Pay Web Push Provisioning device identifier required for the tokenization flow\n\n- `client_wallet_account_id?: string`\n Only applicable if `digital_wallet` is GOOGLE_PAY. Google Pay Web Push Provisioning wallet account identifier required for the tokenization flow\n\n- `digital_wallet?: 'APPLE_PAY' | 'GOOGLE_PAY'`\n Name of digital wallet provider.\n\n- `server_session_id?: string`\n Only applicable if `digital_wallet` is GOOGLE_PAY. Google Pay Web Push Provisioning session identifier required for the FPAN flow.\n\n### Returns\n\n- `{ jws: { header?: { kid?: string; }; payload?: string; protected?: string; signature?: string; }; state: string; } | { google_opc?: string; tsp_opc?: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.cards.webProvision('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.Cards.WebProvision',
+ typescript: {
+ method: 'client.cards.webProvision',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Cards.WebProvision(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardWebProvisionParams{\n\t\t\tDigitalWallet: lithic.F(lithic.CardWebProvisionParamsDigitalWalletApplePay),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.cards.webProvision('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n digital_wallet: 'APPLE_PAY',\n});\n\nconsole.log(response);",
},
- http: {
+ python: {
+ method: 'cards.web_provision',
example:
- "curl https://api.lithic.com/v1/cards/$CARD_TOKEN/web_provision \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.cards.web_provision(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n digital_wallet="APPLE_PAY",\n)\nprint(response)',
},
java: {
method: 'cards().webProvision',
@@ -2909,20 +2910,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardWebProvisionParams\nimport com.lithic.api.models.CardWebProvisionResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: CardWebProvisionResponse = client.cards().webProvision("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'cards.web_provision',
+ go: {
+ method: 'client.Cards.WebProvision',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.cards.web_provision(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n digital_wallet="APPLE_PAY",\n)\nprint(response)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Cards.WebProvision(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardWebProvisionParams{\n\t\t\tDigitalWallet: lithic.F(lithic.CardWebProvisionParamsDigitalWalletApplePay),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response)\n}\n',
},
ruby: {
method: 'cards.web_provision',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.cards.web_provision("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(response)',
},
- typescript: {
- method: 'client.cards.webProvision',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.cards.webProvision('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n digital_wallet: 'APPLE_PAY',\n});\n\nconsole.log(response);",
+ "curl https://api.lithic.com/v1/cards/$CARD_TOKEN/web_provision \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
},
},
},
@@ -2940,14 +2940,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.cards.balances.list(card_token: string, balance_date?: string, last_transaction_event_token?: string): { token: string; available_amount: number; created: string; currency: string; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; updated: string; }`\n\n**get** `/v1/cards/{card_token}/balances`\n\nGet the balances for a given card.\n\n### Parameters\n\n- `card_token: string`\n\n- `balance_date?: string`\n UTC date of the balance to retrieve. Defaults to latest available balance\n\n- `last_transaction_event_token?: string`\n Balance after a given financial event occured.\nFor example, passing the event_token of a $5 CARD_CLEARING financial event will return a balance decreased by $5\n\n\n### Returns\n\n- `{ token: string; available_amount: number; created: string; currency: string; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; updated: string; }`\n Balance of a Financial Account\n\n - `token: string`\n - `available_amount: number`\n - `created: string`\n - `currency: string`\n - `last_transaction_event_token: string`\n - `last_transaction_token: string`\n - `pending_amount: number`\n - `total_amount: number`\n - `type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const financialAccountBalance of client.cards.balances.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(financialAccountBalance);\n}\n```",
perLanguage: {
- go: {
- method: 'client.Cards.Balances.List',
+ typescript: {
+ method: 'client.cards.balances.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Cards.Balances.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardBalanceListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const financialAccountBalance of client.cards.balances.list(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(financialAccountBalance.token);\n}",
},
- http: {
+ python: {
+ method: 'cards.balances.list',
example:
- 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN/balances \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.cards.balances.list(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
},
java: {
method: 'cards().balances().list',
@@ -2959,20 +2960,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardBalanceListPage\nimport com.lithic.api.models.CardBalanceListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: CardBalanceListPage = client.cards().balances().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'cards.balances.list',
+ go: {
+ method: 'client.Cards.Balances.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.cards.balances.list(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Cards.Balances.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardBalanceListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'cards.balances.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.cards.balances.list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(page)',
},
- typescript: {
- method: 'client.cards.balances.list',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const financialAccountBalance of client.cards.balances.list(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(financialAccountBalance.token);\n}",
+ 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN/balances \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -2999,14 +2999,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.cards.financialTransactions.list(card_token: string, begin?: string, category?: 'CARD' | 'TRANSFER', end?: string, ending_before?: string, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'): { token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: financial_event[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n**get** `/v1/cards/{card_token}/financial_transactions`\n\nList the financial transactions for a given card.\n\n### Parameters\n\n- `card_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `category?: 'CARD' | 'TRANSFER'`\n Financial Transaction category to be returned.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `result?: 'APPROVED' | 'DECLINED'`\n Financial Transaction result to be returned.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'`\n Financial Transaction status to be returned.\n\n### Returns\n\n- `{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n - `token: string`\n - `category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'`\n - `created: string`\n - `currency: string`\n - `descriptor: string`\n - `events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const financialTransaction of client.cards.financialTransactions.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(financialTransaction);\n}\n```",
perLanguage: {
- go: {
- method: 'client.Cards.FinancialTransactions.List',
+ typescript: {
+ method: 'client.cards.financialTransactions.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Cards.FinancialTransactions.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardFinancialTransactionListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const financialTransaction of client.cards.financialTransactions.list(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(financialTransaction.token);\n}",
},
- http: {
+ python: {
+ method: 'cards.financial_transactions.list',
example:
- 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN/financial_transactions \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.cards.financial_transactions.list(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
},
java: {
method: 'cards().financialTransactions().list',
@@ -3018,20 +3019,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardFinancialTransactionListPage\nimport com.lithic.api.models.CardFinancialTransactionListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: CardFinancialTransactionListPage = client.cards().financialTransactions().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'cards.financial_transactions.list',
+ go: {
+ method: 'client.Cards.FinancialTransactions.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.cards.financial_transactions.list(\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Cards.FinancialTransactions.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardFinancialTransactionListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'cards.financial_transactions.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.cards.financial_transactions.list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(page)',
},
- typescript: {
- method: 'client.cards.financialTransactions.list',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const financialTransaction of client.cards.financialTransactions.list(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(financialTransaction.token);\n}",
+ 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN/financial_transactions \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -3049,14 +3049,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.cards.financialTransactions.retrieve(card_token: string, financial_transaction_token: string): { token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: financial_event[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n**get** `/v1/cards/{card_token}/financial_transactions/{financial_transaction_token}`\n\nGet the card financial transaction for the provided token.\n\n### Parameters\n\n- `card_token: string`\n\n- `financial_transaction_token: string`\n\n### Returns\n\n- `{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n - `token: string`\n - `category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'`\n - `created: string`\n - `currency: string`\n - `descriptor: string`\n - `events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialTransaction = await client.cards.financialTransactions.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { card_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(financialTransaction);\n```",
perLanguage: {
- go: {
- method: 'client.Cards.FinancialTransactions.Get',
+ typescript: {
+ method: 'client.cards.financialTransactions.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialTransaction, err := client.Cards.FinancialTransactions.Get(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialTransaction.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialTransaction = await client.cards.financialTransactions.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { card_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(financialTransaction.token);",
},
- http: {
+ python: {
+ method: 'cards.financial_transactions.retrieve',
example:
- 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN/financial_transactions/$FINANCIAL_TRANSACTION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_transaction = client.cards.financial_transactions.retrieve(\n financial_transaction_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(financial_transaction.token)',
},
java: {
method: 'cards().financialTransactions().retrieve',
@@ -3068,20 +3069,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardFinancialTransactionRetrieveParams\nimport com.lithic.api.models.FinancialTransaction\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: CardFinancialTransactionRetrieveParams = CardFinancialTransactionRetrieveParams.builder()\n .cardToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .financialTransactionToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val financialTransaction: FinancialTransaction = client.cards().financialTransactions().retrieve(params)\n}',
},
- python: {
- method: 'cards.financial_transactions.retrieve',
+ go: {
+ method: 'client.Cards.FinancialTransactions.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_transaction = client.cards.financial_transactions.retrieve(\n financial_transaction_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n card_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(financial_transaction.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialTransaction, err := client.Cards.FinancialTransactions.Get(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialTransaction.Token)\n}\n',
},
ruby: {
method: 'cards.financial_transactions.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nfinancial_transaction = lithic.cards.financial_transactions.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n card_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(financial_transaction)',
},
- typescript: {
- method: 'client.cards.financialTransactions.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialTransaction = await client.cards.financialTransactions.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { card_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(financialTransaction.token);",
+ 'curl https://api.lithic.com/v1/cards/$CARD_TOKEN/financial_transactions/$FINANCIAL_TRANSACTION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -3105,14 +3105,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.cardBulkOrders.list(begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n\n**get** `/v1/card_bulk_orders`\n\nList bulk orders for physical card shipments\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n Represents a bulk order for physical card shipments\n\n - `token: string`\n - `card_tokens: string[]`\n - `created: string`\n - `customer_product_id: string`\n - `shipping_address: object`\n - `shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'`\n - `status: 'OPEN' | 'LOCKED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const cardBulkOrder of client.cardBulkOrders.list()) {\n console.log(cardBulkOrder);\n}\n```",
perLanguage: {
- go: {
- method: 'client.CardBulkOrders.List',
+ typescript: {
+ method: 'client.cardBulkOrders.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.CardBulkOrders.List(context.TODO(), lithic.CardBulkOrderListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const cardBulkOrder of client.cardBulkOrders.list()) {\n console.log(cardBulkOrder.customer_product_id);\n}",
},
- http: {
- example:
- 'curl https://api.lithic.com/v1/card_bulk_orders \\\n -H "Authorization: $LITHIC_API_KEY"',
+ python: {
+ method: 'card_bulk_orders.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.card_bulk_orders.list()\npage = page.data[0]\nprint(page.customer_product_id)',
},
java: {
method: 'cardBulkOrders().list',
@@ -3124,20 +3125,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardBulkOrderListPage\nimport com.lithic.api.models.CardBulkOrderListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: CardBulkOrderListPage = client.cardBulkOrders().list()\n}',
},
- python: {
- method: 'card_bulk_orders.list',
+ go: {
+ method: 'client.CardBulkOrders.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.card_bulk_orders.list()\npage = page.data[0]\nprint(page.customer_product_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.CardBulkOrders.List(context.TODO(), lithic.CardBulkOrderListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'card_bulk_orders.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.card_bulk_orders.list\n\nputs(page)',
},
- typescript: {
- method: 'client.cardBulkOrders.list',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const cardBulkOrder of client.cardBulkOrders.list()) {\n console.log(cardBulkOrder.customer_product_id);\n}",
+ 'curl https://api.lithic.com/v1/card_bulk_orders \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -3160,14 +3160,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## create\n\n`client.cardBulkOrders.create(customer_product_id: string, shipping_address: object, shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'): { token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n\n**post** `/v1/card_bulk_orders`\n\nCreate a new bulk order for physical card shipments. Cards can be added to the order via the POST /v1/cards endpoint by specifying the bulk_order_token. Lock the order via PATCH /v1/card_bulk_orders/{bulk_order_token} to prepare for shipment. Please work with your Customer Success Manager and card personalization bureau to ensure bulk shipping is supported for your program.\n\n### Parameters\n\n- `customer_product_id: string`\n Customer-specified product configuration for physical card manufacturing. This must be configured with Lithic before use\n\n- `shipping_address: object`\n Shipping address for all cards in this bulk order\n\n- `shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'`\n Shipping method for all cards in this bulk order. BULK_PRIORITY, BULK_2_DAY, and BULK_EXPRESS are only available with Perfect Plastic Printing\n\n### Returns\n\n- `{ token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n Represents a bulk order for physical card shipments\n\n - `token: string`\n - `card_tokens: string[]`\n - `created: string`\n - `customer_product_id: string`\n - `shipping_address: object`\n - `shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'`\n - `status: 'OPEN' | 'LOCKED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst cardBulkOrder = await client.cardBulkOrders.create({\n customer_product_id: 'custom-card-design-123',\n shipping_address: {\n address1: '123 Main Street',\n city: 'NEW YORK',\n country: 'USA',\n first_name: 'Johnny',\n last_name: 'Appleseed',\n postal_code: '10001',\n state: 'NY',\n},\n shipping_method: 'BULK_EXPEDITED',\n});\n\nconsole.log(cardBulkOrder);\n```",
perLanguage: {
- go: {
- method: 'client.CardBulkOrders.New',
+ typescript: {
+ method: 'client.cardBulkOrders.create',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcardBulkOrder, err := client.CardBulkOrders.New(context.TODO(), lithic.CardBulkOrderNewParams{\n\t\tCustomerProductID: lithic.F("custom-card-design-123"),\n\t\tShippingAddress: lithic.F[any](map[string]interface{}{\n\t\t\t"address1": "123 Main Street",\n\t\t\t"city": "NEW YORK",\n\t\t\t"country": "USA",\n\t\t\t"first_name": "Johnny",\n\t\t\t"last_name": "Appleseed",\n\t\t\t"postal_code": "10001",\n\t\t\t"state": "NY",\n\t\t}),\n\t\tShippingMethod: lithic.F(lithic.CardBulkOrderNewParamsShippingMethodBulkExpedited),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", cardBulkOrder.CustomerProductID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst cardBulkOrder = await client.cardBulkOrders.create({\n customer_product_id: 'custom-card-design-123',\n shipping_address: {\n address1: '123 Main Street',\n city: 'NEW YORK',\n country: 'USA',\n first_name: 'Johnny',\n last_name: 'Appleseed',\n postal_code: '10001',\n state: 'NY',\n },\n shipping_method: 'BULK_EXPEDITED',\n});\n\nconsole.log(cardBulkOrder.customer_product_id);",
},
- http: {
+ python: {
+ method: 'card_bulk_orders.create',
example:
- 'curl https://api.lithic.com/v1/card_bulk_orders \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "customer_product_id": "custom-card-design-123",\n "shipping_address": {\n "address1": "123 Main Street",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Johnny",\n "last_name": "Appleseed",\n "postal_code": "10001",\n "state": "NY"\n },\n "shipping_method": "BULK_EXPEDITED"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard_bulk_order = client.card_bulk_orders.create(\n customer_product_id="custom-card-design-123",\n shipping_address={\n "address1": "123 Main Street",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Johnny",\n "last_name": "Appleseed",\n "postal_code": "10001",\n "state": "NY",\n },\n shipping_method="BULK_EXPEDITED",\n)\nprint(card_bulk_order.customer_product_id)',
},
java: {
method: 'cardBulkOrders().create',
@@ -3179,20 +3180,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.core.JsonValue\nimport com.lithic.api.models.CardBulkOrder\nimport com.lithic.api.models.CardBulkOrderCreateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: CardBulkOrderCreateParams = CardBulkOrderCreateParams.builder()\n .customerProductId("custom-card-design-123")\n .shippingAddress(JsonValue.from(mapOf(\n "address1" to "123 Main Street",\n "city" to "NEW YORK",\n "country" to "USA",\n "first_name" to "Johnny",\n "last_name" to "Appleseed",\n "postal_code" to "10001",\n "state" to "NY",\n )))\n .shippingMethod(CardBulkOrderCreateParams.ShippingMethod.BULK_EXPEDITED)\n .build()\n val cardBulkOrder: CardBulkOrder = client.cardBulkOrders().create(params)\n}',
},
- python: {
- method: 'card_bulk_orders.create',
+ go: {
+ method: 'client.CardBulkOrders.New',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard_bulk_order = client.card_bulk_orders.create(\n customer_product_id="custom-card-design-123",\n shipping_address={\n "address1": "123 Main Street",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Johnny",\n "last_name": "Appleseed",\n "postal_code": "10001",\n "state": "NY",\n },\n shipping_method="BULK_EXPEDITED",\n)\nprint(card_bulk_order.customer_product_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcardBulkOrder, err := client.CardBulkOrders.New(context.TODO(), lithic.CardBulkOrderNewParams{\n\t\tCustomerProductID: lithic.F("custom-card-design-123"),\n\t\tShippingAddress: lithic.F[any](map[string]interface{}{\n\t\t\t"address1": "123 Main Street",\n\t\t\t"city": "NEW YORK",\n\t\t\t"country": "USA",\n\t\t\t"first_name": "Johnny",\n\t\t\t"last_name": "Appleseed",\n\t\t\t"postal_code": "10001",\n\t\t\t"state": "NY",\n\t\t}),\n\t\tShippingMethod: lithic.F(lithic.CardBulkOrderNewParamsShippingMethodBulkExpedited),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", cardBulkOrder.CustomerProductID)\n}\n',
},
ruby: {
method: 'card_bulk_orders.create',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard_bulk_order = lithic.card_bulk_orders.create(\n customer_product_id: "custom-card-design-123",\n shipping_address: {\n address1: "123 Main Street",\n city: "NEW YORK",\n country: "USA",\n first_name: "Johnny",\n last_name: "Appleseed",\n postal_code: "10001",\n state: "NY"\n },\n shipping_method: :BULK_EXPEDITED\n)\n\nputs(card_bulk_order)',
},
- typescript: {
- method: 'client.cardBulkOrders.create',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst cardBulkOrder = await client.cardBulkOrders.create({\n customer_product_id: 'custom-card-design-123',\n shipping_address: {\n address1: '123 Main Street',\n city: 'NEW YORK',\n country: 'USA',\n first_name: 'Johnny',\n last_name: 'Appleseed',\n postal_code: '10001',\n state: 'NY',\n },\n shipping_method: 'BULK_EXPEDITED',\n});\n\nconsole.log(cardBulkOrder.customer_product_id);",
+ 'curl https://api.lithic.com/v1/card_bulk_orders \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "customer_product_id": "custom-card-design-123",\n "shipping_address": {\n "address1": "123 Main Street",\n "city": "NEW YORK",\n "country": "USA",\n "first_name": "Johnny",\n "last_name": "Appleseed",\n "postal_code": "10001",\n "state": "NY"\n },\n "shipping_method": "BULK_EXPEDITED"\n }\'',
},
},
},
@@ -3210,14 +3210,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.cardBulkOrders.retrieve(bulk_order_token: string): { token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n\n**get** `/v1/card_bulk_orders/{bulk_order_token}`\n\nRetrieve a specific bulk order by token\n\n### Parameters\n\n- `bulk_order_token: string`\n\n### Returns\n\n- `{ token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n Represents a bulk order for physical card shipments\n\n - `token: string`\n - `card_tokens: string[]`\n - `created: string`\n - `customer_product_id: string`\n - `shipping_address: object`\n - `shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'`\n - `status: 'OPEN' | 'LOCKED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst cardBulkOrder = await client.cardBulkOrders.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(cardBulkOrder);\n```",
perLanguage: {
- go: {
- method: 'client.CardBulkOrders.Get',
+ typescript: {
+ method: 'client.cardBulkOrders.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcardBulkOrder, err := client.CardBulkOrders.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", cardBulkOrder.CustomerProductID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst cardBulkOrder = await client.cardBulkOrders.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(cardBulkOrder.customer_product_id);",
},
- http: {
+ python: {
+ method: 'card_bulk_orders.retrieve',
example:
- 'curl https://api.lithic.com/v1/card_bulk_orders/$BULK_ORDER_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard_bulk_order = client.card_bulk_orders.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(card_bulk_order.customer_product_id)',
},
java: {
method: 'cardBulkOrders().retrieve',
@@ -3229,20 +3230,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardBulkOrder\nimport com.lithic.api.models.CardBulkOrderRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val cardBulkOrder: CardBulkOrder = client.cardBulkOrders().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'card_bulk_orders.retrieve',
+ go: {
+ method: 'client.CardBulkOrders.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard_bulk_order = client.card_bulk_orders.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(card_bulk_order.customer_product_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcardBulkOrder, err := client.CardBulkOrders.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", cardBulkOrder.CustomerProductID)\n}\n',
},
ruby: {
method: 'card_bulk_orders.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard_bulk_order = lithic.card_bulk_orders.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(card_bulk_order)',
},
- typescript: {
- method: 'client.cardBulkOrders.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst cardBulkOrder = await client.cardBulkOrders.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(cardBulkOrder.customer_product_id);",
+ 'curl https://api.lithic.com/v1/card_bulk_orders/$BULK_ORDER_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -3261,14 +3261,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## update\n\n`client.cardBulkOrders.update(bulk_order_token: string, status: 'LOCKED'): { token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n\n**patch** `/v1/card_bulk_orders/{bulk_order_token}`\n\nUpdate a bulk order. Primarily used to lock the order, preventing additional cards from being added\n\n### Parameters\n\n- `bulk_order_token: string`\n\n- `status: 'LOCKED'`\n Status to update the bulk order to. Use LOCKED to finalize the order\n\n### Returns\n\n- `{ token: string; card_tokens: string[]; created: string; customer_product_id: string; shipping_address: object; shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'; status: 'OPEN' | 'LOCKED'; updated: string; }`\n Represents a bulk order for physical card shipments\n\n - `token: string`\n - `card_tokens: string[]`\n - `created: string`\n - `customer_product_id: string`\n - `shipping_address: object`\n - `shipping_method: 'BULK_EXPEDITED' | 'BULK_PRIORITY' | 'BULK_2_DAY' | 'BULK_EXPRESS'`\n - `status: 'OPEN' | 'LOCKED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst cardBulkOrder = await client.cardBulkOrders.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { status: 'LOCKED' });\n\nconsole.log(cardBulkOrder);\n```",
perLanguage: {
- go: {
- method: 'client.CardBulkOrders.Update',
+ typescript: {
+ method: 'client.cardBulkOrders.update',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcardBulkOrder, err := client.CardBulkOrders.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardBulkOrderUpdateParams{\n\t\t\tStatus: lithic.F(lithic.CardBulkOrderUpdateParamsStatusLocked),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", cardBulkOrder.CustomerProductID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst cardBulkOrder = await client.cardBulkOrders.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n status: 'LOCKED',\n});\n\nconsole.log(cardBulkOrder.customer_product_id);",
},
- http: {
+ python: {
+ method: 'card_bulk_orders.update',
example:
- 'curl https://api.lithic.com/v1/card_bulk_orders/$BULK_ORDER_TOKEN \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "status": "LOCKED"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard_bulk_order = client.card_bulk_orders.update(\n bulk_order_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n status="LOCKED",\n)\nprint(card_bulk_order.customer_product_id)',
},
java: {
method: 'cardBulkOrders().update',
@@ -3280,20 +3281,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardBulkOrder\nimport com.lithic.api.models.CardBulkOrderUpdateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: CardBulkOrderUpdateParams = CardBulkOrderUpdateParams.builder()\n .bulkOrderToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .status(CardBulkOrderUpdateParams.Status.LOCKED)\n .build()\n val cardBulkOrder: CardBulkOrder = client.cardBulkOrders().update(params)\n}',
},
- python: {
- method: 'card_bulk_orders.update',
+ go: {
+ method: 'client.CardBulkOrders.Update',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard_bulk_order = client.card_bulk_orders.update(\n bulk_order_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n status="LOCKED",\n)\nprint(card_bulk_order.customer_product_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcardBulkOrder, err := client.CardBulkOrders.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.CardBulkOrderUpdateParams{\n\t\t\tStatus: lithic.F(lithic.CardBulkOrderUpdateParamsStatusLocked),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", cardBulkOrder.CustomerProductID)\n}\n',
},
ruby: {
method: 'card_bulk_orders.update',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard_bulk_order = lithic.card_bulk_orders.update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", status: :LOCKED)\n\nputs(card_bulk_order)',
},
- typescript: {
- method: 'client.cardBulkOrders.update',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst cardBulkOrder = await client.cardBulkOrders.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n status: 'LOCKED',\n});\n\nconsole.log(cardBulkOrder.customer_product_id);",
+ 'curl https://api.lithic.com/v1/card_bulk_orders/$BULK_ORDER_TOKEN \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "status": "LOCKED"\n }\'',
},
},
},
@@ -3316,13 +3316,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.balances.list(account_token?: string, balance_date?: string, business_account_token?: string, financial_account_type?: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'): { available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }`\n\n**get** `/v1/balances`\n\nGet the balances for a program, business, or a given end-user account\n\n### Parameters\n\n- `account_token?: string`\n List balances for all financial accounts of a given account_token.\n\n- `balance_date?: string`\n UTC date and time of the balances to retrieve. Defaults to latest available balances\n\n- `business_account_token?: string`\n List balances for all financial accounts of a given business_account_token.\n\n- `financial_account_type?: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'`\n List balances for a given Financial Account type.\n\n### Returns\n\n- `{ available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }`\n Balance\n\n - `available_amount: number`\n - `created: string`\n - `currency: string`\n - `financial_account_token: string`\n - `financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'`\n - `last_transaction_event_token: string`\n - `last_transaction_token: string`\n - `pending_amount: number`\n - `total_amount: number`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const balance of client.balances.list()) {\n console.log(balance);\n}\n```",
perLanguage: {
- go: {
- method: 'client.Balances.List',
+ typescript: {
+ method: 'client.balances.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Balances.List(context.TODO(), lithic.BalanceListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const balance of client.balances.list()) {\n console.log(balance.available_amount);\n}",
},
- http: {
- example: 'curl https://api.lithic.com/v1/balances \\\n -H "Authorization: $LITHIC_API_KEY"',
+ python: {
+ method: 'balances.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.balances.list()\npage = page.data[0]\nprint(page.available_amount)',
},
java: {
method: 'balances().list',
@@ -3334,20 +3336,18 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.BalanceListPage\nimport com.lithic.api.models.BalanceListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: BalanceListPage = client.balances().list()\n}',
},
- python: {
- method: 'balances.list',
+ go: {
+ method: 'client.Balances.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.balances.list()\npage = page.data[0]\nprint(page.available_amount)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Balances.List(context.TODO(), lithic.BalanceListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'balances.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.balances.list\n\nputs(page)',
},
- typescript: {
- method: 'client.balances.list',
- example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const balance of client.balances.list()) {\n console.log(balance.available_amount);\n}",
+ http: {
+ example: 'curl https://api.lithic.com/v1/balances \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -3373,13 +3373,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.disputes.list(begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string, status?: string, transaction_tokens?: string[]): { token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n\n**get** `/v1/disputes`\n\nList chargeback requests.\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: string`\n Filter by status.\n\n- `transaction_tokens?: string[]`\n Transaction tokens to filter by.\n\n### Returns\n\n- `{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n Dispute.\n\n - `token: string`\n - `amount: number`\n - `arbitration_date: string`\n - `created: string`\n - `customer_filed_date: string`\n - `customer_note: string`\n - `network_claim_ids: string[]`\n - `network_filed_date: string`\n - `network_reason_code: string`\n - `prearbitration_date: string`\n - `primary_claim_id: string`\n - `reason: string`\n - `representment_date: string`\n - `resolution_date: string`\n - `resolution_note: string`\n - `resolution_reason: string`\n - `status: string`\n - `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const dispute of client.disputes.list()) {\n console.log(dispute);\n}\n```",
perLanguage: {
- go: {
- method: 'client.Disputes.List',
+ typescript: {
+ method: 'client.disputes.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Disputes.List(context.TODO(), lithic.DisputeListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const dispute of client.disputes.list()) {\n console.log(dispute.network_claim_ids);\n}",
},
- http: {
- example: 'curl https://api.lithic.com/v1/disputes \\\n -H "Authorization: $LITHIC_API_KEY"',
+ python: {
+ method: 'disputes.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.disputes.list()\npage = page.data[0]\nprint(page.network_claim_ids)',
},
java: {
method: 'disputes().list',
@@ -3391,20 +3393,18 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.DisputeListPage\nimport com.lithic.api.models.DisputeListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: DisputeListPage = client.disputes().list()\n}',
},
- python: {
- method: 'disputes.list',
+ go: {
+ method: 'client.Disputes.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.disputes.list()\npage = page.data[0]\nprint(page.network_claim_ids)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Disputes.List(context.TODO(), lithic.DisputeListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'disputes.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.disputes.list\n\nputs(page)',
},
- typescript: {
- method: 'client.disputes.list',
- example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const dispute of client.disputes.list()) {\n console.log(dispute.network_claim_ids);\n}",
+ http: {
+ example: 'curl https://api.lithic.com/v1/disputes \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -3428,14 +3428,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## create\n\n`client.disputes.create(amount: number, reason: string, transaction_token: string, customer_filed_date?: string, customer_note?: string): { token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n\n**post** `/v1/disputes`\n\nRequest a chargeback.\n\n### Parameters\n\n- `amount: number`\n Amount for chargeback\n\n- `reason: string`\n Reason for chargeback\n\n- `transaction_token: string`\n Transaction for chargeback\n\n- `customer_filed_date?: string`\n Date the customer filed the chargeback request\n\n- `customer_note?: string`\n Customer description\n\n### Returns\n\n- `{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n Dispute.\n\n - `token: string`\n - `amount: number`\n - `arbitration_date: string`\n - `created: string`\n - `customer_filed_date: string`\n - `customer_note: string`\n - `network_claim_ids: string[]`\n - `network_filed_date: string`\n - `network_reason_code: string`\n - `prearbitration_date: string`\n - `primary_claim_id: string`\n - `reason: string`\n - `representment_date: string`\n - `resolution_date: string`\n - `resolution_note: string`\n - `resolution_reason: string`\n - `status: string`\n - `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst dispute = await client.disputes.create({\n amount: 10000,\n reason: 'FRAUD_CARD_PRESENT',\n transaction_token: '12345624-aa69-4cbc-a946-30d90181b621',\n});\n\nconsole.log(dispute);\n```",
perLanguage: {
- go: {
- method: 'client.Disputes.New',
+ typescript: {
+ method: 'client.disputes.create',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdispute, err := client.Disputes.New(context.TODO(), lithic.DisputeNewParams{\n\t\tAmount: lithic.F(int64(10000)),\n\t\tReason: lithic.F(lithic.DisputeNewParamsReasonFraudCardPresent),\n\t\tTransactionToken: lithic.F("12345624-aa69-4cbc-a946-30d90181b621"),\n\t\tCustomerFiledDate: lithic.F(time.Now()),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", dispute.NetworkClaimIDs)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst dispute = await client.disputes.create({\n amount: 10000,\n reason: 'FRAUD_CARD_PRESENT',\n transaction_token: '12345624-aa69-4cbc-a946-30d90181b621',\n customer_filed_date: '2021-06-28T22:53:15Z',\n});\n\nconsole.log(dispute.network_claim_ids);",
},
- http: {
+ python: {
+ method: 'disputes.create',
example:
- 'curl https://api.lithic.com/v1/disputes \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 10000,\n "reason": "FRAUD_CARD_PRESENT",\n "transaction_token": "12345624-aa69-4cbc-a946-30d90181b621"\n }\'',
+ 'import os\nfrom datetime import datetime\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute = client.disputes.create(\n amount=10000,\n reason="FRAUD_CARD_PRESENT",\n transaction_token="12345624-aa69-4cbc-a946-30d90181b621",\n customer_filed_date=datetime.fromisoformat("2021-06-28T22:53:15"),\n)\nprint(dispute.network_claim_ids)',
},
java: {
method: 'disputes().create',
@@ -3447,20 +3448,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Dispute\nimport com.lithic.api.models.DisputeCreateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: DisputeCreateParams = DisputeCreateParams.builder()\n .amount(10000L)\n .reason(DisputeCreateParams.Reason.FRAUD_CARD_PRESENT)\n .transactionToken("12345624-aa69-4cbc-a946-30d90181b621")\n .build()\n val dispute: Dispute = client.disputes().create(params)\n}',
},
- python: {
- method: 'disputes.create',
+ go: {
+ method: 'client.Disputes.New',
example:
- 'import os\nfrom datetime import datetime\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute = client.disputes.create(\n amount=10000,\n reason="FRAUD_CARD_PRESENT",\n transaction_token="12345624-aa69-4cbc-a946-30d90181b621",\n customer_filed_date=datetime.fromisoformat("2021-06-28T22:53:15"),\n)\nprint(dispute.network_claim_ids)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdispute, err := client.Disputes.New(context.TODO(), lithic.DisputeNewParams{\n\t\tAmount: lithic.F(int64(10000)),\n\t\tReason: lithic.F(lithic.DisputeNewParamsReasonFraudCardPresent),\n\t\tTransactionToken: lithic.F("12345624-aa69-4cbc-a946-30d90181b621"),\n\t\tCustomerFiledDate: lithic.F(time.Now()),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", dispute.NetworkClaimIDs)\n}\n',
},
ruby: {
method: 'disputes.create',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndispute = lithic.disputes.create(\n amount: 10000,\n reason: :FRAUD_CARD_PRESENT,\n transaction_token: "12345624-aa69-4cbc-a946-30d90181b621"\n)\n\nputs(dispute)',
},
- typescript: {
- method: 'client.disputes.create',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst dispute = await client.disputes.create({\n amount: 10000,\n reason: 'FRAUD_CARD_PRESENT',\n transaction_token: '12345624-aa69-4cbc-a946-30d90181b621',\n customer_filed_date: '2021-06-28T22:53:15Z',\n});\n\nconsole.log(dispute.network_claim_ids);",
+ 'curl https://api.lithic.com/v1/disputes \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 10000,\n "reason": "FRAUD_CARD_PRESENT",\n "transaction_token": "12345624-aa69-4cbc-a946-30d90181b621"\n }\'',
},
},
},
@@ -3478,14 +3478,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.disputes.retrieve(dispute_token: string): { token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n\n**get** `/v1/disputes/{dispute_token}`\n\nGet chargeback request.\n\n### Parameters\n\n- `dispute_token: string`\n\n### Returns\n\n- `{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n Dispute.\n\n - `token: string`\n - `amount: number`\n - `arbitration_date: string`\n - `created: string`\n - `customer_filed_date: string`\n - `customer_note: string`\n - `network_claim_ids: string[]`\n - `network_filed_date: string`\n - `network_reason_code: string`\n - `prearbitration_date: string`\n - `primary_claim_id: string`\n - `reason: string`\n - `representment_date: string`\n - `resolution_date: string`\n - `resolution_note: string`\n - `resolution_reason: string`\n - `status: string`\n - `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst dispute = await client.disputes.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(dispute);\n```",
perLanguage: {
- go: {
- method: 'client.Disputes.Get',
+ typescript: {
+ method: 'client.disputes.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdispute, err := client.Disputes.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", dispute.NetworkClaimIDs)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst dispute = await client.disputes.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(dispute.network_claim_ids);",
},
- http: {
+ python: {
+ method: 'disputes.retrieve',
example:
- 'curl https://api.lithic.com/v1/disputes/$DISPUTE_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute = client.disputes.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(dispute.network_claim_ids)',
},
java: {
method: 'disputes().retrieve',
@@ -3497,20 +3498,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Dispute\nimport com.lithic.api.models.DisputeRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val dispute: Dispute = client.disputes().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'disputes.retrieve',
+ go: {
+ method: 'client.Disputes.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute = client.disputes.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(dispute.network_claim_ids)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdispute, err := client.Disputes.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", dispute.NetworkClaimIDs)\n}\n',
},
ruby: {
method: 'disputes.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndispute = lithic.disputes.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(dispute)',
},
- typescript: {
- method: 'client.disputes.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst dispute = await client.disputes.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(dispute.network_claim_ids);",
+ 'curl https://api.lithic.com/v1/disputes/$DISPUTE_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -3528,14 +3528,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## delete\n\n`client.disputes.delete(dispute_token: string): { token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n\n**delete** `/v1/disputes/{dispute_token}`\n\nWithdraw chargeback request.\n\n### Parameters\n\n- `dispute_token: string`\n\n### Returns\n\n- `{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n Dispute.\n\n - `token: string`\n - `amount: number`\n - `arbitration_date: string`\n - `created: string`\n - `customer_filed_date: string`\n - `customer_note: string`\n - `network_claim_ids: string[]`\n - `network_filed_date: string`\n - `network_reason_code: string`\n - `prearbitration_date: string`\n - `primary_claim_id: string`\n - `reason: string`\n - `representment_date: string`\n - `resolution_date: string`\n - `resolution_note: string`\n - `resolution_reason: string`\n - `status: string`\n - `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst dispute = await client.disputes.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(dispute);\n```",
perLanguage: {
- go: {
- method: 'client.Disputes.Delete',
+ typescript: {
+ method: 'client.disputes.delete',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdispute, err := client.Disputes.Delete(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", dispute.NetworkClaimIDs)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst dispute = await client.disputes.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(dispute.network_claim_ids);",
},
- http: {
+ python: {
+ method: 'disputes.delete',
example:
- 'curl https://api.lithic.com/v1/disputes/$DISPUTE_TOKEN \\\n -X DELETE \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute = client.disputes.delete(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(dispute.network_claim_ids)',
},
java: {
method: 'disputes().delete',
@@ -3547,20 +3548,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Dispute\nimport com.lithic.api.models.DisputeDeleteParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val dispute: Dispute = client.disputes().delete("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'disputes.delete',
+ go: {
+ method: 'client.Disputes.Delete',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute = client.disputes.delete(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(dispute.network_claim_ids)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdispute, err := client.Disputes.Delete(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", dispute.NetworkClaimIDs)\n}\n',
},
ruby: {
method: 'disputes.delete',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndispute = lithic.disputes.delete("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(dispute)',
},
- typescript: {
- method: 'client.disputes.delete',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst dispute = await client.disputes.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(dispute.network_claim_ids);",
+ 'curl https://api.lithic.com/v1/disputes/$DISPUTE_TOKEN \\\n -X DELETE \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -3584,14 +3584,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## update\n\n`client.disputes.update(dispute_token: string, amount?: number, customer_filed_date?: string, customer_note?: string, reason?: string): { token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n\n**patch** `/v1/disputes/{dispute_token}`\n\nUpdate chargeback request. Can only be modified if status is `NEW`.\n\n### Parameters\n\n- `dispute_token: string`\n\n- `amount?: number`\n Amount for chargeback\n\n- `customer_filed_date?: string`\n Date the customer filed the chargeback request\n\n- `customer_note?: string`\n Customer description\n\n- `reason?: string`\n Reason for chargeback\n\n### Returns\n\n- `{ token: string; amount: number; arbitration_date: string; created: string; customer_filed_date: string; customer_note: string; network_claim_ids: string[]; network_filed_date: string; network_reason_code: string; prearbitration_date: string; primary_claim_id: string; reason: string; representment_date: string; resolution_date: string; resolution_note: string; resolution_reason: string; status: string; transaction_token: string; }`\n Dispute.\n\n - `token: string`\n - `amount: number`\n - `arbitration_date: string`\n - `created: string`\n - `customer_filed_date: string`\n - `customer_note: string`\n - `network_claim_ids: string[]`\n - `network_filed_date: string`\n - `network_reason_code: string`\n - `prearbitration_date: string`\n - `primary_claim_id: string`\n - `reason: string`\n - `representment_date: string`\n - `resolution_date: string`\n - `resolution_note: string`\n - `resolution_reason: string`\n - `status: string`\n - `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst dispute = await client.disputes.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(dispute);\n```",
perLanguage: {
- go: {
- method: 'client.Disputes.Update',
+ typescript: {
+ method: 'client.disputes.update',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdispute, err := client.Disputes.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.DisputeUpdateParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", dispute.NetworkClaimIDs)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst dispute = await client.disputes.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(dispute.network_claim_ids);",
},
- http: {
+ python: {
+ method: 'disputes.update',
example:
- "curl https://api.lithic.com/v1/disputes/$DISPUTE_TOKEN \\\n -X PATCH \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute = client.disputes.update(\n dispute_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(dispute.network_claim_ids)',
},
java: {
method: 'disputes().update',
@@ -3603,20 +3604,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Dispute\nimport com.lithic.api.models.DisputeUpdateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val dispute: Dispute = client.disputes().update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'disputes.update',
+ go: {
+ method: 'client.Disputes.Update',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute = client.disputes.update(\n dispute_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(dispute.network_claim_ids)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdispute, err := client.Disputes.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.DisputeUpdateParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", dispute.NetworkClaimIDs)\n}\n',
},
ruby: {
method: 'disputes.update',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndispute = lithic.disputes.update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(dispute)',
},
- typescript: {
- method: 'client.disputes.update',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst dispute = await client.disputes.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(dispute.network_claim_ids);",
+ "curl https://api.lithic.com/v1/disputes/$DISPUTE_TOKEN \\\n -X PATCH \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
},
},
},
@@ -3641,14 +3641,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list_evidences\n\n`client.disputes.listEvidences(dispute_token: string, begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n\n**get** `/v1/disputes/{dispute_token}/evidences`\n\nList evidence for a chargeback request.\n\n### Parameters\n\n- `dispute_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n Dispute evidence.\n\n - `token: string`\n - `created: string`\n - `dispute_token: string`\n - `upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'`\n - `download_url?: string`\n - `filename?: string`\n - `upload_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const disputeEvidence of client.disputes.listEvidences('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(disputeEvidence);\n}\n```",
perLanguage: {
- go: {
- method: 'client.Disputes.ListEvidences',
+ typescript: {
+ method: 'client.disputes.listEvidences',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Disputes.ListEvidences(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.DisputeListEvidencesParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const disputeEvidence of client.disputes.listEvidences(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(disputeEvidence.token);\n}",
},
- http: {
+ python: {
+ method: 'disputes.list_evidences',
example:
- 'curl https://api.lithic.com/v1/disputes/$DISPUTE_TOKEN/evidences \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.disputes.list_evidences(\n dispute_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
},
java: {
method: 'disputes().listEvidences',
@@ -3660,20 +3661,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.DisputeListEvidencesPage\nimport com.lithic.api.models.DisputeListEvidencesParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: DisputeListEvidencesPage = client.disputes().listEvidences("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'disputes.list_evidences',
+ go: {
+ method: 'client.Disputes.ListEvidences',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.disputes.list_evidences(\n dispute_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Disputes.ListEvidences(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.DisputeListEvidencesParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'disputes.list_evidences',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.disputes.list_evidences("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(page)',
},
- typescript: {
- method: 'client.disputes.listEvidences',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const disputeEvidence of client.disputes.listEvidences(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(disputeEvidence.token);\n}",
+ 'curl https://api.lithic.com/v1/disputes/$DISPUTE_TOKEN/evidences \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -3692,14 +3692,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## initiate_evidence_upload\n\n`client.disputes.initiateEvidenceUpload(dispute_token: string, filename?: string): { token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n\n**post** `/v1/disputes/{dispute_token}/evidences`\n\nUse this endpoint to upload evidence for a chargeback request. It will return a URL to upload your documents to. The URL will expire in 30 minutes.\n\nUploaded documents must either be a `jpg`, `png` or `pdf` file, and each must be less than 5 GiB.\n\n\n### Parameters\n\n- `dispute_token: string`\n\n- `filename?: string`\n Filename of the evidence.\n\n### Returns\n\n- `{ token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n Dispute evidence.\n\n - `token: string`\n - `created: string`\n - `dispute_token: string`\n - `upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'`\n - `download_url?: string`\n - `filename?: string`\n - `upload_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst disputeEvidence = await client.disputes.initiateEvidenceUpload('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(disputeEvidence);\n```",
perLanguage: {
- go: {
- method: 'client.Disputes.InitiateEvidenceUpload',
+ typescript: {
+ method: 'client.disputes.initiateEvidenceUpload',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdisputeEvidence, err := client.Disputes.InitiateEvidenceUpload(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.DisputeInitiateEvidenceUploadParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", disputeEvidence.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst disputeEvidence = await client.disputes.initiateEvidenceUpload(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(disputeEvidence.token);",
},
- http: {
+ python: {
+ method: 'disputes.initiate_evidence_upload',
example:
- 'curl https://api.lithic.com/v1/disputes/$DISPUTE_TOKEN/evidences \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute_evidence = client.disputes.initiate_evidence_upload(\n dispute_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(dispute_evidence.token)',
},
java: {
method: 'disputes().initiateEvidenceUpload',
@@ -3711,20 +3712,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.DisputeEvidence\nimport com.lithic.api.models.DisputeInitiateEvidenceUploadParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val disputeEvidence: DisputeEvidence = client.disputes().initiateEvidenceUpload("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'disputes.initiate_evidence_upload',
+ go: {
+ method: 'client.Disputes.InitiateEvidenceUpload',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute_evidence = client.disputes.initiate_evidence_upload(\n dispute_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(dispute_evidence.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdisputeEvidence, err := client.Disputes.InitiateEvidenceUpload(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.DisputeInitiateEvidenceUploadParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", disputeEvidence.Token)\n}\n',
},
ruby: {
method: 'disputes.initiate_evidence_upload',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndispute_evidence = lithic.disputes.initiate_evidence_upload("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(dispute_evidence)',
},
- typescript: {
- method: 'client.disputes.initiateEvidenceUpload',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst disputeEvidence = await client.disputes.initiateEvidenceUpload(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(disputeEvidence.token);",
+ 'curl https://api.lithic.com/v1/disputes/$DISPUTE_TOKEN/evidences \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -3742,14 +3742,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve_evidence\n\n`client.disputes.retrieveEvidence(dispute_token: string, evidence_token: string): { token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n\n**get** `/v1/disputes/{dispute_token}/evidences/{evidence_token}`\n\nGet evidence for a chargeback request.\n\n### Parameters\n\n- `dispute_token: string`\n\n- `evidence_token: string`\n\n### Returns\n\n- `{ token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n Dispute evidence.\n\n - `token: string`\n - `created: string`\n - `dispute_token: string`\n - `upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'`\n - `download_url?: string`\n - `filename?: string`\n - `upload_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst disputeEvidence = await client.disputes.retrieveEvidence('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { dispute_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(disputeEvidence);\n```",
perLanguage: {
- go: {
- method: 'client.Disputes.GetEvidence',
+ typescript: {
+ method: 'client.disputes.retrieveEvidence',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdisputeEvidence, err := client.Disputes.GetEvidence(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", disputeEvidence.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst disputeEvidence = await client.disputes.retrieveEvidence(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { dispute_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(disputeEvidence.token);",
},
- http: {
+ python: {
+ method: 'disputes.retrieve_evidence',
example:
- 'curl https://api.lithic.com/v1/disputes/$DISPUTE_TOKEN/evidences/$EVIDENCE_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute_evidence = client.disputes.retrieve_evidence(\n evidence_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n dispute_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(dispute_evidence.token)',
},
java: {
method: 'disputes().retrieveEvidence',
@@ -3761,20 +3762,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.DisputeEvidence\nimport com.lithic.api.models.DisputeRetrieveEvidenceParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: DisputeRetrieveEvidenceParams = DisputeRetrieveEvidenceParams.builder()\n .disputeToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .evidenceToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val disputeEvidence: DisputeEvidence = client.disputes().retrieveEvidence(params)\n}',
},
- python: {
- method: 'disputes.retrieve_evidence',
+ go: {
+ method: 'client.Disputes.GetEvidence',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute_evidence = client.disputes.retrieve_evidence(\n evidence_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n dispute_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(dispute_evidence.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdisputeEvidence, err := client.Disputes.GetEvidence(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", disputeEvidence.Token)\n}\n',
},
ruby: {
method: 'disputes.retrieve_evidence',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndispute_evidence = lithic.disputes.retrieve_evidence(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n dispute_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(dispute_evidence)',
},
- typescript: {
- method: 'client.disputes.retrieveEvidence',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst disputeEvidence = await client.disputes.retrieveEvidence(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { dispute_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(disputeEvidence.token);",
+ 'curl https://api.lithic.com/v1/disputes/$DISPUTE_TOKEN/evidences/$EVIDENCE_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -3793,14 +3793,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## delete_evidence\n\n`client.disputes.deleteEvidence(dispute_token: string, evidence_token: string): { token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n\n**delete** `/v1/disputes/{dispute_token}/evidences/{evidence_token}`\n\nSoft delete evidence for a chargeback request. Evidence will not be reviewed or submitted by Lithic after it is withdrawn.\n\n### Parameters\n\n- `dispute_token: string`\n\n- `evidence_token: string`\n\n### Returns\n\n- `{ token: string; created: string; dispute_token: string; upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'; download_url?: string; filename?: string; upload_url?: string; }`\n Dispute evidence.\n\n - `token: string`\n - `created: string`\n - `dispute_token: string`\n - `upload_status: 'DELETED' | 'ERROR' | 'PENDING' | 'REJECTED' | 'UPLOADED'`\n - `download_url?: string`\n - `filename?: string`\n - `upload_url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst disputeEvidence = await client.disputes.deleteEvidence('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { dispute_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(disputeEvidence);\n```",
perLanguage: {
- go: {
- method: 'client.Disputes.DeleteEvidence',
+ typescript: {
+ method: 'client.disputes.deleteEvidence',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdisputeEvidence, err := client.Disputes.DeleteEvidence(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", disputeEvidence.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst disputeEvidence = await client.disputes.deleteEvidence(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { dispute_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(disputeEvidence.token);",
},
- http: {
+ python: {
+ method: 'disputes.delete_evidence',
example:
- 'curl https://api.lithic.com/v1/disputes/$DISPUTE_TOKEN/evidences/$EVIDENCE_TOKEN \\\n -X DELETE \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute_evidence = client.disputes.delete_evidence(\n evidence_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n dispute_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(dispute_evidence.token)',
},
java: {
method: 'disputes().deleteEvidence',
@@ -3812,20 +3813,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.DisputeDeleteEvidenceParams\nimport com.lithic.api.models.DisputeEvidence\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: DisputeDeleteEvidenceParams = DisputeDeleteEvidenceParams.builder()\n .disputeToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .evidenceToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val disputeEvidence: DisputeEvidence = client.disputes().deleteEvidence(params)\n}',
},
- python: {
- method: 'disputes.delete_evidence',
+ go: {
+ method: 'client.Disputes.DeleteEvidence',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute_evidence = client.disputes.delete_evidence(\n evidence_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n dispute_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(dispute_evidence.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdisputeEvidence, err := client.Disputes.DeleteEvidence(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", disputeEvidence.Token)\n}\n',
},
ruby: {
method: 'disputes.delete_evidence',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndispute_evidence = lithic.disputes.delete_evidence(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n dispute_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(dispute_evidence)',
},
- typescript: {
- method: 'client.disputes.deleteEvidence',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst disputeEvidence = await client.disputes.deleteEvidence(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { dispute_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(disputeEvidence.token);",
+ 'curl https://api.lithic.com/v1/disputes/$DISPUTE_TOKEN/evidences/$EVIDENCE_TOKEN \\\n -X DELETE \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -3852,13 +3852,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.disputesV2.list(account_token?: string, begin?: string, card_token?: string, disputed_transaction_token?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; account_token: string; card_token: string; case_id: string; created: string; currency: string; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; events: object[]; liability_allocation: object; merchant: merchant; network: 'VISA' | 'MASTERCARD'; status: 'OPEN' | 'CLOSED'; transaction_series: object; updated: string; }`\n\n**get** `/v2/disputes`\n\nReturns a paginated list of disputes.\n\n### Parameters\n\n- `account_token?: string`\n Filter by account token.\n\n- `begin?: string`\n RFC 3339 timestamp for filtering by created date, inclusive.\n\n- `card_token?: string`\n Filter by card token.\n\n- `disputed_transaction_token?: string`\n Filter by the token of the transaction being disputed. Corresponds with transaction_series.related_transaction_token in the Dispute.\n\n- `end?: string`\n RFC 3339 timestamp for filtering by created date, inclusive.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Number of items to return.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_token: string; card_token: string; case_id: string; created: string; currency: string; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; events: { token: string; created: string; data: { action: 'OPENED' | 'CLOSED' | 'REOPENED'; amount: number; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; reason: string; stage: 'CLAIM'; type: 'WORKFLOW'; } | { amount: number; polarity: 'CREDIT' | 'DEBIT'; stage: 'CHARGEBACK' | 'REPRESENTMENT' | 'PREARBITRATION' | 'ARBITRATION' | 'COLLABORATION'; type: 'FINANCIAL'; } | { action: 'PROVISIONAL_CREDIT_GRANTED' | 'PROVISIONAL_CREDIT_REVERSED' | 'WRITTEN_OFF'; amount: number; reason: string; type: 'CARDHOLDER_LIABILITY'; }; type: 'WORKFLOW' | 'FINANCIAL' | 'CARDHOLDER_LIABILITY'; }[]; liability_allocation: { denied_amount: number; original_amount: number; recovered_amount: number; remaining_amount: number; written_off_amount: number; }; merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }; network: 'VISA' | 'MASTERCARD'; status: 'OPEN' | 'CLOSED'; transaction_series: { related_transaction_event_token: string; related_transaction_token: string; type: 'DISPUTE'; }; updated: string; }`\n The Dispute object tracks the progression of a dispute throughout its lifecycle.\n\n - `token: string`\n - `account_token: string`\n - `card_token: string`\n - `case_id: string`\n - `created: string`\n - `currency: string`\n - `disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'`\n - `events: { token: string; created: string; data: { action: 'OPENED' | 'CLOSED' | 'REOPENED'; amount: number; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; reason: string; stage: 'CLAIM'; type: 'WORKFLOW'; } | { amount: number; polarity: 'CREDIT' | 'DEBIT'; stage: 'CHARGEBACK' | 'REPRESENTMENT' | 'PREARBITRATION' | 'ARBITRATION' | 'COLLABORATION'; type: 'FINANCIAL'; } | { action: 'PROVISIONAL_CREDIT_GRANTED' | 'PROVISIONAL_CREDIT_REVERSED' | 'WRITTEN_OFF'; amount: number; reason: string; type: 'CARDHOLDER_LIABILITY'; }; type: 'WORKFLOW' | 'FINANCIAL' | 'CARDHOLDER_LIABILITY'; }[]`\n - `liability_allocation: { denied_amount: number; original_amount: number; recovered_amount: number; remaining_amount: number; written_off_amount: number; }`\n - `merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }`\n - `network: 'VISA' | 'MASTERCARD'`\n - `status: 'OPEN' | 'CLOSED'`\n - `transaction_series: { related_transaction_event_token: string; related_transaction_token: string; type: 'DISPUTE'; }`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const disputeV2 of client.disputesV2.list()) {\n console.log(disputeV2);\n}\n```",
perLanguage: {
- go: {
- method: 'client.DisputesV2.List',
+ typescript: {
+ method: 'client.disputesV2.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.DisputesV2.List(context.TODO(), lithic.DisputesV2ListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const disputeV2 of client.disputesV2.list()) {\n console.log(disputeV2.case_id);\n}",
},
- http: {
- example: 'curl https://api.lithic.com/v2/disputes \\\n -H "Authorization: $LITHIC_API_KEY"',
+ python: {
+ method: 'disputes_v2.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.disputes_v2.list()\npage = page.data[0]\nprint(page.case_id)',
},
java: {
method: 'disputesV2().list',
@@ -3870,20 +3872,18 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.DisputesV2ListPage\nimport com.lithic.api.models.DisputesV2ListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: DisputesV2ListPage = client.disputesV2().list()\n}',
},
- python: {
- method: 'disputes_v2.list',
+ go: {
+ method: 'client.DisputesV2.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.disputes_v2.list()\npage = page.data[0]\nprint(page.case_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.DisputesV2.List(context.TODO(), lithic.DisputesV2ListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'disputes_v2.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.disputes_v2.list\n\nputs(page)',
},
- typescript: {
- method: 'client.disputesV2.list',
- example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const disputeV2 of client.disputesV2.list()) {\n console.log(disputeV2.case_id);\n}",
+ http: {
+ example: 'curl https://api.lithic.com/v2/disputes \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -3901,14 +3901,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.disputesV2.retrieve(dispute_token: string): { token: string; account_token: string; card_token: string; case_id: string; created: string; currency: string; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; events: object[]; liability_allocation: object; merchant: merchant; network: 'VISA' | 'MASTERCARD'; status: 'OPEN' | 'CLOSED'; transaction_series: object; updated: string; }`\n\n**get** `/v2/disputes/{dispute_token}`\n\nRetrieves a specific dispute by its token.\n\n### Parameters\n\n- `dispute_token: string`\n\n### Returns\n\n- `{ token: string; account_token: string; card_token: string; case_id: string; created: string; currency: string; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; events: { token: string; created: string; data: { action: 'OPENED' | 'CLOSED' | 'REOPENED'; amount: number; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; reason: string; stage: 'CLAIM'; type: 'WORKFLOW'; } | { amount: number; polarity: 'CREDIT' | 'DEBIT'; stage: 'CHARGEBACK' | 'REPRESENTMENT' | 'PREARBITRATION' | 'ARBITRATION' | 'COLLABORATION'; type: 'FINANCIAL'; } | { action: 'PROVISIONAL_CREDIT_GRANTED' | 'PROVISIONAL_CREDIT_REVERSED' | 'WRITTEN_OFF'; amount: number; reason: string; type: 'CARDHOLDER_LIABILITY'; }; type: 'WORKFLOW' | 'FINANCIAL' | 'CARDHOLDER_LIABILITY'; }[]; liability_allocation: { denied_amount: number; original_amount: number; recovered_amount: number; remaining_amount: number; written_off_amount: number; }; merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }; network: 'VISA' | 'MASTERCARD'; status: 'OPEN' | 'CLOSED'; transaction_series: { related_transaction_event_token: string; related_transaction_token: string; type: 'DISPUTE'; }; updated: string; }`\n The Dispute object tracks the progression of a dispute throughout its lifecycle.\n\n - `token: string`\n - `account_token: string`\n - `card_token: string`\n - `case_id: string`\n - `created: string`\n - `currency: string`\n - `disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'`\n - `events: { token: string; created: string; data: { action: 'OPENED' | 'CLOSED' | 'REOPENED'; amount: number; disposition: 'WON' | 'LOST' | 'PARTIALLY_WON' | 'WITHDRAWN' | 'DENIED'; reason: string; stage: 'CLAIM'; type: 'WORKFLOW'; } | { amount: number; polarity: 'CREDIT' | 'DEBIT'; stage: 'CHARGEBACK' | 'REPRESENTMENT' | 'PREARBITRATION' | 'ARBITRATION' | 'COLLABORATION'; type: 'FINANCIAL'; } | { action: 'PROVISIONAL_CREDIT_GRANTED' | 'PROVISIONAL_CREDIT_REVERSED' | 'WRITTEN_OFF'; amount: number; reason: string; type: 'CARDHOLDER_LIABILITY'; }; type: 'WORKFLOW' | 'FINANCIAL' | 'CARDHOLDER_LIABILITY'; }[]`\n - `liability_allocation: { denied_amount: number; original_amount: number; recovered_amount: number; remaining_amount: number; written_off_amount: number; }`\n - `merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }`\n - `network: 'VISA' | 'MASTERCARD'`\n - `status: 'OPEN' | 'CLOSED'`\n - `transaction_series: { related_transaction_event_token: string; related_transaction_token: string; type: 'DISPUTE'; }`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst disputeV2 = await client.disputesV2.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(disputeV2);\n```",
perLanguage: {
- go: {
- method: 'client.DisputesV2.Get',
+ typescript: {
+ method: 'client.disputesV2.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdisputeV2, err := client.DisputesV2.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", disputeV2.CaseID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst disputeV2 = await client.disputesV2.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(disputeV2.case_id);",
},
- http: {
+ python: {
+ method: 'disputes_v2.retrieve',
example:
- 'curl https://api.lithic.com/v2/disputes/$DISPUTE_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute_v2 = client.disputes_v2.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(dispute_v2.case_id)',
},
java: {
method: 'disputesV2().retrieve',
@@ -3920,20 +3921,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.DisputeV2\nimport com.lithic.api.models.DisputesV2RetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val disputeV2: DisputeV2 = client.disputesV2().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'disputes_v2.retrieve',
+ go: {
+ method: 'client.DisputesV2.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndispute_v2 = client.disputes_v2.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(dispute_v2.case_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdisputeV2, err := client.DisputesV2.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", disputeV2.CaseID)\n}\n',
},
ruby: {
method: 'disputes_v2.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndispute_v2 = lithic.disputes_v2.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(dispute_v2)',
},
- typescript: {
- method: 'client.disputesV2.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst disputeV2 = await client.disputesV2.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(disputeV2.case_id);",
+ 'curl https://api.lithic.com/v2/disputes/$DISPUTE_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -3958,13 +3958,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.events.list(begin?: string, end?: string, ending_before?: string, event_types?: string[], page_size?: number, starting_after?: string, with_content?: boolean): { token: string; created: string; event_type: string; payload: object; }`\n\n**get** `/v1/events`\n\nList all events.\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `event_types?: string[]`\n Event types to filter events by.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `with_content?: boolean`\n Whether to include the event payload content in the response.\n\n### Returns\n\n- `{ token: string; created: string; event_type: string; payload: object; }`\n A single event that affects the transaction state and lifecycle.\n\n - `token: string`\n - `created: string`\n - `event_type: string`\n - `payload: object`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const event of client.events.list()) {\n console.log(event);\n}\n```",
perLanguage: {
- go: {
- method: 'client.Events.List',
+ typescript: {
+ method: 'client.events.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Events.List(context.TODO(), lithic.EventListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const event of client.events.list()) {\n console.log(event.token);\n}",
},
- http: {
- example: 'curl https://api.lithic.com/v1/events \\\n -H "Authorization: $LITHIC_API_KEY"',
+ python: {
+ method: 'events.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.events.list()\npage = page.data[0]\nprint(page.token)',
},
java: {
method: 'events().list',
@@ -3976,20 +3978,18 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventListPage\nimport com.lithic.api.models.EventListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: EventListPage = client.events().list()\n}',
},
- python: {
- method: 'events.list',
+ go: {
+ method: 'client.Events.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.events.list()\npage = page.data[0]\nprint(page.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Events.List(context.TODO(), lithic.EventListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'events.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.events.list\n\nputs(page)',
},
- typescript: {
- method: 'client.events.list',
- example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const event of client.events.list()) {\n console.log(event.token);\n}",
+ http: {
+ example: 'curl https://api.lithic.com/v1/events \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -4006,14 +4006,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.events.retrieve(event_token: string): { token: string; created: string; event_type: string; payload: object; }`\n\n**get** `/v1/events/{event_token}`\n\nGet an event.\n\n### Parameters\n\n- `event_token: string`\n\n### Returns\n\n- `{ token: string; created: string; event_type: string; payload: object; }`\n A single event that affects the transaction state and lifecycle.\n\n - `token: string`\n - `created: string`\n - `event_type: string`\n - `payload: object`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst event = await client.events.retrieve('event_token');\n\nconsole.log(event);\n```",
perLanguage: {
- go: {
- method: 'client.Events.Get',
+ typescript: {
+ method: 'client.events.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tevent, err := client.Events.Get(context.TODO(), "event_token")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", event.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst event = await client.events.retrieve('event_token');\n\nconsole.log(event.token);",
},
- http: {
+ python: {
+ method: 'events.retrieve',
example:
- 'curl https://api.lithic.com/v1/events/$EVENT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nevent = client.events.retrieve(\n "event_token",\n)\nprint(event.token)',
},
java: {
method: 'events().retrieve',
@@ -4025,20 +4026,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Event\nimport com.lithic.api.models.EventRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val event: Event = client.events().retrieve("event_token")\n}',
},
- python: {
- method: 'events.retrieve',
+ go: {
+ method: 'client.Events.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nevent = client.events.retrieve(\n "event_token",\n)\nprint(event.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tevent, err := client.Events.Get(context.TODO(), "event_token")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", event.Token)\n}\n',
},
ruby: {
method: 'events.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nevent = lithic.events.retrieve("event_token")\n\nputs(event)',
},
- typescript: {
- method: 'client.events.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst event = await client.events.retrieve('event_token');\n\nconsole.log(event.token);",
+ 'curl https://api.lithic.com/v1/events/$EVENT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -4064,14 +4064,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list_attempts\n\n`client.events.listAttempts(event_token: string, begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string, status?: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'): { token: string; created: string; event_subscription_token: string; event_token: string; response: string; response_status_code: number; status: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'; url: string; }`\n\n**get** `/v1/events/{event_token}/attempts`\n\nList all the message attempts for a given event.\n\n### Parameters\n\n- `event_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'`\n\n### Returns\n\n- `{ token: string; created: string; event_subscription_token: string; event_token: string; response: string; response_status_code: number; status: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'; url: string; }`\n A subscription to specific event types.\n\n - `token: string`\n - `created: string`\n - `event_subscription_token: string`\n - `event_token: string`\n - `response: string`\n - `response_status_code: number`\n - `status: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'`\n - `url: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const messageAttempt of client.events.listAttempts('event_token')) {\n console.log(messageAttempt);\n}\n```",
perLanguage: {
- go: {
- method: 'client.Events.ListAttempts',
+ typescript: {
+ method: 'client.events.listAttempts',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Events.ListAttempts(\n\t\tcontext.TODO(),\n\t\t"event_token",\n\t\tlithic.EventListAttemptsParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const messageAttempt of client.events.listAttempts('event_token')) {\n console.log(messageAttempt.token);\n}",
},
- http: {
+ python: {
+ method: 'events.list_attempts',
example:
- 'curl https://api.lithic.com/v1/events/$EVENT_TOKEN/attempts \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.events.list_attempts(\n event_token="event_token",\n)\npage = page.data[0]\nprint(page.token)',
},
java: {
method: 'events().listAttempts',
@@ -4083,20 +4084,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventListAttemptsPage\nimport com.lithic.api.models.EventListAttemptsParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: EventListAttemptsPage = client.events().listAttempts("event_token")\n}',
},
- python: {
- method: 'events.list_attempts',
+ go: {
+ method: 'client.Events.ListAttempts',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.events.list_attempts(\n event_token="event_token",\n)\npage = page.data[0]\nprint(page.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Events.ListAttempts(\n\t\tcontext.TODO(),\n\t\t"event_token",\n\t\tlithic.EventListAttemptsParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'events.list_attempts',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.events.list_attempts("event_token")\n\nputs(page)',
},
- typescript: {
- method: 'client.events.listAttempts',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const messageAttempt of client.events.listAttempts('event_token')) {\n console.log(messageAttempt.token);\n}",
+ 'curl https://api.lithic.com/v1/events/$EVENT_TOKEN/attempts \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -4114,14 +4114,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.events.subscriptions.list(ending_before?: string, page_size?: number, starting_after?: string): { token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n\n**get** `/v1/event_subscriptions`\n\nList all the event subscriptions.\n\n### Parameters\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n A subscription to specific event types.\n\n - `token: string`\n - `description: string`\n - `disabled: boolean`\n - `url: string`\n - `event_types?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const eventSubscription of client.events.subscriptions.list()) {\n console.log(eventSubscription);\n}\n```",
perLanguage: {
- go: {
- method: 'client.Events.Subscriptions.List',
+ typescript: {
+ method: 'client.events.subscriptions.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Events.Subscriptions.List(context.TODO(), lithic.EventSubscriptionListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const eventSubscription of client.events.subscriptions.list()) {\n console.log(eventSubscription.token);\n}",
},
- http: {
+ python: {
+ method: 'events.subscriptions.list',
example:
- 'curl https://api.lithic.com/v1/event_subscriptions \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.events.subscriptions.list()\npage = page.data[0]\nprint(page.token)',
},
java: {
method: 'events().subscriptions().list',
@@ -4133,20 +4134,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventSubscriptionListPage\nimport com.lithic.api.models.EventSubscriptionListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: EventSubscriptionListPage = client.events().subscriptions().list()\n}',
},
- python: {
- method: 'events.subscriptions.list',
+ go: {
+ method: 'client.Events.Subscriptions.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.events.subscriptions.list()\npage = page.data[0]\nprint(page.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Events.Subscriptions.List(context.TODO(), lithic.EventSubscriptionListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'events.subscriptions.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.events.subscriptions.list\n\nputs(page)',
},
- typescript: {
- method: 'client.events.subscriptions.list',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const eventSubscription of client.events.subscriptions.list()) {\n console.log(eventSubscription.token);\n}",
+ 'curl https://api.lithic.com/v1/event_subscriptions \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -4164,14 +4164,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## create\n\n`client.events.subscriptions.create(url: string, description?: string, disabled?: boolean, event_types?: string[]): { token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n\n**post** `/v1/event_subscriptions`\n\nCreate a new event subscription.\n\n### Parameters\n\n- `url: string`\n URL to which event webhooks will be sent. URL must be a valid HTTPS address.\n\n- `description?: string`\n Event subscription description.\n\n- `disabled?: boolean`\n Whether the event subscription is active (false) or inactive (true).\n\n- `event_types?: string[]`\n Indicates types of events that will be sent to this subscription. If left blank, all types will be sent.\n\n### Returns\n\n- `{ token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n A subscription to specific event types.\n\n - `token: string`\n - `description: string`\n - `disabled: boolean`\n - `url: string`\n - `event_types?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst eventSubscription = await client.events.subscriptions.create({ url: 'https://example.com' });\n\nconsole.log(eventSubscription);\n```",
perLanguage: {
- go: {
- method: 'client.Events.Subscriptions.New',
+ typescript: {
+ method: 'client.events.subscriptions.create',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\teventSubscription, err := client.Events.Subscriptions.New(context.TODO(), lithic.EventSubscriptionNewParams{\n\t\tURL: lithic.F("https://example.com"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", eventSubscription.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst eventSubscription = await client.events.subscriptions.create({ url: 'https://example.com' });\n\nconsole.log(eventSubscription.token);",
},
- http: {
+ python: {
+ method: 'events.subscriptions.create',
example:
- 'curl https://api.lithic.com/v1/event_subscriptions \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "url": "https://example.com"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nevent_subscription = client.events.subscriptions.create(\n url="https://example.com",\n)\nprint(event_subscription.token)',
},
java: {
method: 'events().subscriptions().create',
@@ -4183,20 +4184,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventSubscription\nimport com.lithic.api.models.EventSubscriptionCreateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: EventSubscriptionCreateParams = EventSubscriptionCreateParams.builder()\n .url("https://example.com")\n .build()\n val eventSubscription: EventSubscription = client.events().subscriptions().create(params)\n}',
},
- python: {
- method: 'events.subscriptions.create',
+ go: {
+ method: 'client.Events.Subscriptions.New',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nevent_subscription = client.events.subscriptions.create(\n url="https://example.com",\n)\nprint(event_subscription.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\teventSubscription, err := client.Events.Subscriptions.New(context.TODO(), lithic.EventSubscriptionNewParams{\n\t\tURL: lithic.F("https://example.com"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", eventSubscription.Token)\n}\n',
},
ruby: {
method: 'events.subscriptions.create',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nevent_subscription = lithic.events.subscriptions.create(url: "https://example.com")\n\nputs(event_subscription)',
},
- typescript: {
- method: 'client.events.subscriptions.create',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst eventSubscription = await client.events.subscriptions.create({ url: 'https://example.com' });\n\nconsole.log(eventSubscription.token);",
+ 'curl https://api.lithic.com/v1/event_subscriptions \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "url": "https://example.com"\n }\'',
},
},
},
@@ -4214,14 +4214,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.events.subscriptions.retrieve(event_subscription_token: string): { token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n\n**get** `/v1/event_subscriptions/{event_subscription_token}`\n\nGet an event subscription.\n\n### Parameters\n\n- `event_subscription_token: string`\n\n### Returns\n\n- `{ token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n A subscription to specific event types.\n\n - `token: string`\n - `description: string`\n - `disabled: boolean`\n - `url: string`\n - `event_types?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst eventSubscription = await client.events.subscriptions.retrieve('event_subscription_token');\n\nconsole.log(eventSubscription);\n```",
perLanguage: {
- go: {
- method: 'client.Events.Subscriptions.Get',
+ typescript: {
+ method: 'client.events.subscriptions.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\teventSubscription, err := client.Events.Subscriptions.Get(context.TODO(), "event_subscription_token")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", eventSubscription.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst eventSubscription = await client.events.subscriptions.retrieve('event_subscription_token');\n\nconsole.log(eventSubscription.token);",
},
- http: {
+ python: {
+ method: 'events.subscriptions.retrieve',
example:
- 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nevent_subscription = client.events.subscriptions.retrieve(\n "event_subscription_token",\n)\nprint(event_subscription.token)',
},
java: {
method: 'events().subscriptions().retrieve',
@@ -4233,20 +4234,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventSubscription\nimport com.lithic.api.models.EventSubscriptionRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val eventSubscription: EventSubscription = client.events().subscriptions().retrieve("event_subscription_token")\n}',
},
- python: {
- method: 'events.subscriptions.retrieve',
+ go: {
+ method: 'client.Events.Subscriptions.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nevent_subscription = client.events.subscriptions.retrieve(\n "event_subscription_token",\n)\nprint(event_subscription.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\teventSubscription, err := client.Events.Subscriptions.Get(context.TODO(), "event_subscription_token")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", eventSubscription.Token)\n}\n',
},
ruby: {
method: 'events.subscriptions.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nevent_subscription = lithic.events.subscriptions.retrieve("event_subscription_token")\n\nputs(event_subscription)',
},
- typescript: {
- method: 'client.events.subscriptions.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst eventSubscription = await client.events.subscriptions.retrieve('event_subscription_token');\n\nconsole.log(eventSubscription.token);",
+ 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -4270,14 +4270,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## update\n\n`client.events.subscriptions.update(event_subscription_token: string, url: string, description?: string, disabled?: boolean, event_types?: string[]): { token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n\n**patch** `/v1/event_subscriptions/{event_subscription_token}`\n\nUpdate an event subscription.\n\n### Parameters\n\n- `event_subscription_token: string`\n\n- `url: string`\n URL to which event webhooks will be sent. URL must be a valid HTTPS address.\n\n- `description?: string`\n Event subscription description.\n\n- `disabled?: boolean`\n Whether the event subscription is active (false) or inactive (true).\n\n- `event_types?: string[]`\n Indicates types of events that will be sent to this subscription. If left blank, all types will be sent.\n\n### Returns\n\n- `{ token: string; description: string; disabled: boolean; url: string; event_types?: string[]; }`\n A subscription to specific event types.\n\n - `token: string`\n - `description: string`\n - `disabled: boolean`\n - `url: string`\n - `event_types?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst eventSubscription = await client.events.subscriptions.update('event_subscription_token', { url: 'https://example.com' });\n\nconsole.log(eventSubscription);\n```",
perLanguage: {
- go: {
- method: 'client.Events.Subscriptions.Update',
+ typescript: {
+ method: 'client.events.subscriptions.update',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\teventSubscription, err := client.Events.Subscriptions.Update(\n\t\tcontext.TODO(),\n\t\t"event_subscription_token",\n\t\tlithic.EventSubscriptionUpdateParams{\n\t\t\tURL: lithic.F("https://example.com"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", eventSubscription.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst eventSubscription = await client.events.subscriptions.update('event_subscription_token', {\n url: 'https://example.com',\n});\n\nconsole.log(eventSubscription.token);",
},
- http: {
+ python: {
+ method: 'events.subscriptions.update',
example:
- 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "url": "https://example.com"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nevent_subscription = client.events.subscriptions.update(\n event_subscription_token="event_subscription_token",\n url="https://example.com",\n)\nprint(event_subscription.token)',
},
java: {
method: 'events().subscriptions().update',
@@ -4289,20 +4290,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventSubscription\nimport com.lithic.api.models.EventSubscriptionUpdateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: EventSubscriptionUpdateParams = EventSubscriptionUpdateParams.builder()\n .eventSubscriptionToken("event_subscription_token")\n .url("https://example.com")\n .build()\n val eventSubscription: EventSubscription = client.events().subscriptions().update(params)\n}',
},
- python: {
- method: 'events.subscriptions.update',
+ go: {
+ method: 'client.Events.Subscriptions.Update',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nevent_subscription = client.events.subscriptions.update(\n event_subscription_token="event_subscription_token",\n url="https://example.com",\n)\nprint(event_subscription.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\teventSubscription, err := client.Events.Subscriptions.Update(\n\t\tcontext.TODO(),\n\t\t"event_subscription_token",\n\t\tlithic.EventSubscriptionUpdateParams{\n\t\t\tURL: lithic.F("https://example.com"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", eventSubscription.Token)\n}\n',
},
ruby: {
method: 'events.subscriptions.update',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nevent_subscription = lithic.events.subscriptions.update("event_subscription_token", url: "https://example.com")\n\nputs(event_subscription)',
},
- typescript: {
- method: 'client.events.subscriptions.update',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst eventSubscription = await client.events.subscriptions.update('event_subscription_token', {\n url: 'https://example.com',\n});\n\nconsole.log(eventSubscription.token);",
+ 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "url": "https://example.com"\n }\'',
},
},
},
@@ -4318,14 +4318,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## delete\n\n`client.events.subscriptions.delete(event_subscription_token: string): void`\n\n**delete** `/v1/event_subscriptions/{event_subscription_token}`\n\nDelete an event subscription.\n\n### Parameters\n\n- `event_subscription_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.events.subscriptions.delete('event_subscription_token')\n```",
perLanguage: {
- go: {
- method: 'client.Events.Subscriptions.Delete',
+ typescript: {
+ method: 'client.events.subscriptions.delete',
example:
- 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Events.Subscriptions.Delete(context.TODO(), "event_subscription_token")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.events.subscriptions.delete('event_subscription_token');",
},
- http: {
+ python: {
+ method: 'events.subscriptions.delete',
example:
- 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN \\\n -X DELETE \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.events.subscriptions.delete(\n "event_subscription_token",\n)',
},
java: {
method: 'events().subscriptions().delete',
@@ -4337,20 +4338,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventSubscriptionDeleteParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.events().subscriptions().delete("event_subscription_token")\n}',
},
- python: {
- method: 'events.subscriptions.delete',
+ go: {
+ method: 'client.Events.Subscriptions.Delete',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.events.subscriptions.delete(\n "event_subscription_token",\n)',
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Events.Subscriptions.Delete(context.TODO(), "event_subscription_token")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
},
ruby: {
method: 'events.subscriptions.delete',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.events.subscriptions.delete("event_subscription_token")\n\nputs(result)',
},
- typescript: {
- method: 'client.events.subscriptions.delete',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.events.subscriptions.delete('event_subscription_token');",
+ 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN \\\n -X DELETE \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -4366,14 +4366,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## recover\n\n`client.events.subscriptions.recover(event_subscription_token: string, begin?: string, end?: string): void`\n\n**post** `/v1/event_subscriptions/{event_subscription_token}/recover`\n\nResend all failed messages since a given time.\n\n### Parameters\n\n- `event_subscription_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.events.subscriptions.recover('event_subscription_token')\n```",
perLanguage: {
- go: {
- method: 'client.Events.Subscriptions.Recover',
+ typescript: {
+ method: 'client.events.subscriptions.recover',
example:
- 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Events.Subscriptions.Recover(\n\t\tcontext.TODO(),\n\t\t"event_subscription_token",\n\t\tlithic.EventSubscriptionRecoverParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.events.subscriptions.recover('event_subscription_token');",
},
- http: {
+ python: {
+ method: 'events.subscriptions.recover',
example:
- 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN/recover \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.events.subscriptions.recover(\n event_subscription_token="event_subscription_token",\n)',
},
java: {
method: 'events().subscriptions().recover',
@@ -4385,20 +4386,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventSubscriptionRecoverParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.events().subscriptions().recover("event_subscription_token")\n}',
},
- python: {
- method: 'events.subscriptions.recover',
+ go: {
+ method: 'client.Events.Subscriptions.Recover',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.events.subscriptions.recover(\n event_subscription_token="event_subscription_token",\n)',
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Events.Subscriptions.Recover(\n\t\tcontext.TODO(),\n\t\t"event_subscription_token",\n\t\tlithic.EventSubscriptionRecoverParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
},
ruby: {
method: 'events.subscriptions.recover',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.events.subscriptions.recover("event_subscription_token")\n\nputs(result)',
},
- typescript: {
- method: 'client.events.subscriptions.recover',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.events.subscriptions.recover('event_subscription_token');",
+ 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN/recover \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -4424,14 +4424,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list_attempts\n\n`client.events.subscriptions.listAttempts(event_subscription_token: string, begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string, status?: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'): { token: string; created: string; event_subscription_token: string; event_token: string; response: string; response_status_code: number; status: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'; url: string; }`\n\n**get** `/v1/event_subscriptions/{event_subscription_token}/attempts`\n\nList all the message attempts for a given event subscription.\n\n### Parameters\n\n- `event_subscription_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'`\n\n### Returns\n\n- `{ token: string; created: string; event_subscription_token: string; event_token: string; response: string; response_status_code: number; status: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'; url: string; }`\n A subscription to specific event types.\n\n - `token: string`\n - `created: string`\n - `event_subscription_token: string`\n - `event_token: string`\n - `response: string`\n - `response_status_code: number`\n - `status: 'FAILED' | 'PENDING' | 'SENDING' | 'SUCCESS'`\n - `url: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const messageAttempt of client.events.subscriptions.listAttempts('event_subscription_token')) {\n console.log(messageAttempt);\n}\n```",
perLanguage: {
- go: {
- method: 'client.Events.Subscriptions.ListAttempts',
+ typescript: {
+ method: 'client.events.subscriptions.listAttempts',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Events.Subscriptions.ListAttempts(\n\t\tcontext.TODO(),\n\t\t"event_subscription_token",\n\t\tlithic.EventSubscriptionListAttemptsParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const messageAttempt of client.events.subscriptions.listAttempts(\n 'event_subscription_token',\n)) {\n console.log(messageAttempt.token);\n}",
},
- http: {
+ python: {
+ method: 'events.subscriptions.list_attempts',
example:
- 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN/attempts \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.events.subscriptions.list_attempts(\n event_subscription_token="event_subscription_token",\n)\npage = page.data[0]\nprint(page.token)',
},
java: {
method: 'events().subscriptions().listAttempts',
@@ -4443,20 +4444,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventSubscriptionListAttemptsPage\nimport com.lithic.api.models.EventSubscriptionListAttemptsParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: EventSubscriptionListAttemptsPage = client.events().subscriptions().listAttempts("event_subscription_token")\n}',
},
- python: {
- method: 'events.subscriptions.list_attempts',
+ go: {
+ method: 'client.Events.Subscriptions.ListAttempts',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.events.subscriptions.list_attempts(\n event_subscription_token="event_subscription_token",\n)\npage = page.data[0]\nprint(page.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Events.Subscriptions.ListAttempts(\n\t\tcontext.TODO(),\n\t\t"event_subscription_token",\n\t\tlithic.EventSubscriptionListAttemptsParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'events.subscriptions.list_attempts',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.events.subscriptions.list_attempts("event_subscription_token")\n\nputs(page)',
},
- typescript: {
- method: 'client.events.subscriptions.listAttempts',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const messageAttempt of client.events.subscriptions.listAttempts(\n 'event_subscription_token',\n)) {\n console.log(messageAttempt.token);\n}",
+ 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN/attempts \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -4473,14 +4473,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## replay_missing\n\n`client.events.subscriptions.replayMissing(event_subscription_token: string, begin?: string, end?: string): void`\n\n**post** `/v1/event_subscriptions/{event_subscription_token}/replay_missing`\n\nReplays messages to the endpoint. Only messages that were created after `begin` will be sent. Messages that were previously sent to the endpoint are not resent.\nMessage will be retried if endpoint responds with a non-2xx status code. See [Retry Schedule](https://docs.lithic.com/docs/events-api#retry-schedule) for details.\n\n\n### Parameters\n\n- `event_subscription_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.events.subscriptions.replayMissing('event_subscription_token')\n```",
perLanguage: {
- go: {
- method: 'client.Events.Subscriptions.ReplayMissing',
+ typescript: {
+ method: 'client.events.subscriptions.replayMissing',
example:
- 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Events.Subscriptions.ReplayMissing(\n\t\tcontext.TODO(),\n\t\t"event_subscription_token",\n\t\tlithic.EventSubscriptionReplayMissingParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.events.subscriptions.replayMissing('event_subscription_token');",
},
- http: {
+ python: {
+ method: 'events.subscriptions.replay_missing',
example:
- 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN/replay_missing \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.events.subscriptions.replay_missing(\n event_subscription_token="event_subscription_token",\n)',
},
java: {
method: 'events().subscriptions().replayMissing',
@@ -4492,20 +4493,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventSubscriptionReplayMissingParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.events().subscriptions().replayMissing("event_subscription_token")\n}',
},
- python: {
- method: 'events.subscriptions.replay_missing',
+ go: {
+ method: 'client.Events.Subscriptions.ReplayMissing',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.events.subscriptions.replay_missing(\n event_subscription_token="event_subscription_token",\n)',
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Events.Subscriptions.ReplayMissing(\n\t\tcontext.TODO(),\n\t\t"event_subscription_token",\n\t\tlithic.EventSubscriptionReplayMissingParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
},
ruby: {
method: 'events.subscriptions.replay_missing',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.events.subscriptions.replay_missing("event_subscription_token")\n\nputs(result)',
},
- typescript: {
- method: 'client.events.subscriptions.replayMissing',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.events.subscriptions.replayMissing('event_subscription_token');",
+ 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN/replay_missing \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -4522,14 +4522,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve_secret\n\n`client.events.subscriptions.retrieveSecret(event_subscription_token: string): { secret?: string; }`\n\n**get** `/v1/event_subscriptions/{event_subscription_token}/secret`\n\nGet the secret for an event subscription.\n\n### Parameters\n\n- `event_subscription_token: string`\n\n### Returns\n\n- `{ secret?: string; }`\n\n - `secret?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.events.subscriptions.retrieveSecret('event_subscription_token');\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.Events.Subscriptions.GetSecret',
+ typescript: {
+ method: 'client.events.subscriptions.retrieveSecret',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Events.Subscriptions.GetSecret(context.TODO(), "event_subscription_token")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Secret)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.events.subscriptions.retrieveSecret('event_subscription_token');\n\nconsole.log(response.secret);",
},
- http: {
+ python: {
+ method: 'events.subscriptions.retrieve_secret',
example:
- 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN/secret \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.events.subscriptions.retrieve_secret(\n "event_subscription_token",\n)\nprint(response.secret)',
},
java: {
method: 'events().subscriptions().retrieveSecret',
@@ -4541,20 +4542,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventSubscriptionRetrieveSecretParams\nimport com.lithic.api.models.SubscriptionRetrieveSecretResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: SubscriptionRetrieveSecretResponse = client.events().subscriptions().retrieveSecret("event_subscription_token")\n}',
},
- python: {
- method: 'events.subscriptions.retrieve_secret',
+ go: {
+ method: 'client.Events.Subscriptions.GetSecret',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.events.subscriptions.retrieve_secret(\n "event_subscription_token",\n)\nprint(response.secret)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Events.Subscriptions.GetSecret(context.TODO(), "event_subscription_token")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Secret)\n}\n',
},
ruby: {
method: 'events.subscriptions.retrieve_secret',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.events.subscriptions.retrieve_secret("event_subscription_token")\n\nputs(response)',
},
- typescript: {
- method: 'client.events.subscriptions.retrieveSecret',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.events.subscriptions.retrieveSecret('event_subscription_token');\n\nconsole.log(response.secret);",
+ 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN/secret \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -4571,14 +4571,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## rotate_secret\n\n`client.events.subscriptions.rotateSecret(event_subscription_token: string): void`\n\n**post** `/v1/event_subscriptions/{event_subscription_token}/secret/rotate`\n\nRotate the secret for an event subscription. The previous secret will be valid for the next 24 hours.\n\n\n### Parameters\n\n- `event_subscription_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.events.subscriptions.rotateSecret('event_subscription_token')\n```",
perLanguage: {
- go: {
- method: 'client.Events.Subscriptions.RotateSecret',
+ typescript: {
+ method: 'client.events.subscriptions.rotateSecret',
example:
- 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Events.Subscriptions.RotateSecret(context.TODO(), "event_subscription_token")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.events.subscriptions.rotateSecret('event_subscription_token');",
},
- http: {
+ python: {
+ method: 'events.subscriptions.rotate_secret',
example:
- 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN/secret/rotate \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.events.subscriptions.rotate_secret(\n "event_subscription_token",\n)',
},
java: {
method: 'events().subscriptions().rotateSecret',
@@ -4590,20 +4591,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventSubscriptionRotateSecretParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.events().subscriptions().rotateSecret("event_subscription_token")\n}',
},
- python: {
- method: 'events.subscriptions.rotate_secret',
+ go: {
+ method: 'client.Events.Subscriptions.RotateSecret',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.events.subscriptions.rotate_secret(\n "event_subscription_token",\n)',
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Events.Subscriptions.RotateSecret(context.TODO(), "event_subscription_token")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
},
ruby: {
method: 'events.subscriptions.rotate_secret',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.events.subscriptions.rotate_secret("event_subscription_token")\n\nputs(result)',
},
- typescript: {
- method: 'client.events.subscriptions.rotateSecret',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.events.subscriptions.rotateSecret('event_subscription_token');",
+ 'curl https://api.lithic.com/v1/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN/secret/rotate \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -4619,14 +4619,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## send_simulated_example\n\n`client.events.subscriptions.sendSimulatedExample(event_subscription_token: string, event_type?: string): void`\n\n**post** `/v1/simulate/event_subscriptions/{event_subscription_token}/send_example`\n\nSend an example message for event.\n\n### Parameters\n\n- `event_subscription_token: string`\n\n- `event_type?: string`\n Event type to send example message for.\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.events.subscriptions.sendSimulatedExample('event_subscription_token')\n```",
perLanguage: {
- go: {
- method: 'client.Events.Subscriptions.SendSimulatedExample',
+ typescript: {
+ method: 'client.events.subscriptions.sendSimulatedExample',
example:
- 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Events.Subscriptions.SendSimulatedExample(\n\t\tcontext.TODO(),\n\t\t"event_subscription_token",\n\t\tlithic.EventSubscriptionSendSimulatedExampleParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.events.subscriptions.sendSimulatedExample('event_subscription_token');",
},
- http: {
+ python: {
+ method: 'events.subscriptions.send_simulated_example',
example:
- 'curl https://api.lithic.com/v1/simulate/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN/send_example \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.events.subscriptions.send_simulated_example(\n event_subscription_token="event_subscription_token",\n)',
},
java: {
method: 'events().subscriptions().sendSimulatedExample',
@@ -4638,20 +4639,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventSubscriptionSendSimulatedExampleParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.events().subscriptions().sendSimulatedExample("event_subscription_token")\n}',
},
- python: {
- method: 'events.subscriptions.send_simulated_example',
+ go: {
+ method: 'client.Events.Subscriptions.SendSimulatedExample',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.events.subscriptions.send_simulated_example(\n event_subscription_token="event_subscription_token",\n)',
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Events.Subscriptions.SendSimulatedExample(\n\t\tcontext.TODO(),\n\t\t"event_subscription_token",\n\t\tlithic.EventSubscriptionSendSimulatedExampleParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
},
ruby: {
method: 'events.subscriptions.send_simulated_example',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.events.subscriptions.send_simulated_example("event_subscription_token")\n\nputs(result)',
},
- typescript: {
- method: 'client.events.subscriptions.sendSimulatedExample',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.events.subscriptions.sendSimulatedExample('event_subscription_token');",
+ 'curl https://api.lithic.com/v1/simulate/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN/send_example \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -4667,14 +4667,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## resend\n\n`client.events.eventSubscriptions.resend(event_token: string, event_subscription_token: string): void`\n\n**post** `/v1/events/{event_token}/event_subscriptions/{event_subscription_token}/resend`\n\nResend an event to an event subscription.\n\n### Parameters\n\n- `event_token: string`\n\n- `event_subscription_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.events.eventSubscriptions.resend('event_subscription_token', { event_token: 'event_token' })\n```",
perLanguage: {
- go: {
- method: 'client.Events.EventSubscriptions.Resend',
+ typescript: {
+ method: 'client.events.eventSubscriptions.resend',
example:
- 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Events.EventSubscriptions.Resend(\n\t\tcontext.TODO(),\n\t\t"event_token",\n\t\t"event_subscription_token",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.events.eventSubscriptions.resend('event_subscription_token', {\n event_token: 'event_token',\n});",
},
- http: {
+ python: {
+ method: 'events.event_subscriptions.resend',
example:
- 'curl https://api.lithic.com/v1/events/$EVENT_TOKEN/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN/resend \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.events.event_subscriptions.resend(\n event_subscription_token="event_subscription_token",\n event_token="event_token",\n)',
},
java: {
method: 'events().eventSubscriptions().resend',
@@ -4686,20 +4687,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EventEventSubscriptionResendParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: EventEventSubscriptionResendParams = EventEventSubscriptionResendParams.builder()\n .eventToken("event_token")\n .eventSubscriptionToken("event_subscription_token")\n .build()\n client.events().eventSubscriptions().resend(params)\n}',
},
- python: {
- method: 'events.event_subscriptions.resend',
+ go: {
+ method: 'client.Events.EventSubscriptions.Resend',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.events.event_subscriptions.resend(\n event_subscription_token="event_subscription_token",\n event_token="event_token",\n)',
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Events.EventSubscriptions.Resend(\n\t\tcontext.TODO(),\n\t\t"event_token",\n\t\t"event_subscription_token",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
},
ruby: {
method: 'events.event_subscriptions.resend',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.events.event_subscriptions.resend("event_subscription_token", event_token: "event_token")\n\nputs(result)',
},
- typescript: {
- method: 'client.events.eventSubscriptions.resend',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.events.eventSubscriptions.resend('event_subscription_token', {\n event_token: 'event_token',\n});",
+ 'curl https://api.lithic.com/v1/events/$EVENT_TOKEN/event_subscriptions/$EVENT_SUBSCRIPTION_TOKEN/resend \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -4717,14 +4717,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## create\n\n`client.transfers.create(amount: number, from: string, to: string, token?: string, memo?: string): { token?: string; category?: 'TRANSFER'; created?: string; currency?: string; descriptor?: string; events?: financial_event[]; from_balance?: balance[]; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; to_balance?: balance[]; updated?: string; }`\n\n**post** `/v1/transfer`\n\nTransfer funds between two financial accounts or between a financial account and card\n\n### Parameters\n\n- `amount: number`\n Amount to be transferred in the currency’s smallest unit (e.g., cents for USD). This should always be a positive value.\n\n- `from: string`\n Globally unique identifier for the financial account or card that will send the funds. Accepted type dependent on the program's use case.\n\n- `to: string`\n Globally unique identifier for the financial account or card that will receive the funds. Accepted type dependent on the program's use case.\n\n- `token?: string`\n Customer-provided token that will serve as an idempotency token. This token will become the transaction token.\n\n- `memo?: string`\n Optional descriptor for the transfer.\n\n### Returns\n\n- `{ token?: string; category?: 'TRANSFER'; created?: string; currency?: string; descriptor?: string; events?: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; from_balance?: { available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }[]; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; to_balance?: { available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }[]; updated?: string; }`\n\n - `token?: string`\n - `category?: 'TRANSFER'`\n - `created?: string`\n - `currency?: string`\n - `descriptor?: string`\n - `events?: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]`\n - `from_balance?: { available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }[]`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'`\n - `to_balance?: { available_amount: number; created: string; currency: string; financial_account_token: string; financial_account_type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; updated: string; }[]`\n - `updated?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst transfer = await client.transfers.create({\n amount: 0,\n from: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n to: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(transfer);\n```",
perLanguage: {
- go: {
- method: 'client.Transfers.New',
- example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\ttransfer, err := client.Transfers.New(context.TODO(), lithic.TransferNewParams{\n\t\tAmount: lithic.F(int64(0)),\n\t\tFrom: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tTo: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", transfer.Token)\n}\n',
- },
- http: {
+ typescript: {
+ method: 'client.transfers.create',
example:
- 'curl https://api.lithic.com/v1/transfer \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 0,\n "from": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "to": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n }\'',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst transfer = await client.transfers.create({\n amount: 0,\n from: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n to: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(transfer.token);",
},
java: {
method: 'transfers().create',
@@ -4736,15 +4732,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Transfer\nimport com.lithic.api.models.TransferCreateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: TransferCreateParams = TransferCreateParams.builder()\n .amount(0L)\n .from("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .to("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val transfer: Transfer = client.transfers().create(params)\n}',
},
+ go: {
+ method: 'client.Transfers.New',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\ttransfer, err := client.Transfers.New(context.TODO(), lithic.TransferNewParams{\n\t\tAmount: lithic.F(int64(0)),\n\t\tFrom: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tTo: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", transfer.Token)\n}\n',
+ },
ruby: {
method: 'transfers.create',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ntransfer = lithic.transfers.create(\n amount: 0,\n from: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n to: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(transfer)',
},
- typescript: {
- method: 'client.transfers.create',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst transfer = await client.transfers.create({\n amount: 0,\n from: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n to: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(transfer.token);",
+ 'curl https://api.lithic.com/v1/transfer \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 0,\n "from": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "to": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n }\'',
},
},
},
@@ -4766,14 +4766,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.financialAccounts.list(account_token?: string, business_account_token?: string, type?: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY' | 'EARLY_DIRECT_DEPOSIT_FLOAT'): { token: string; account_token: string; created: string; credit_configuration: object; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n**get** `/v1/financial_accounts`\n\nRetrieve information on your financial accounts including routing and account number.\n\n### Parameters\n\n- `account_token?: string`\n List financial accounts for a given account_token or business_account_token\n\n- `business_account_token?: string`\n List financial accounts for a given business_account_token\n\n- `type?: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY' | 'EARLY_DIRECT_DEPOSIT_FLOAT'`\n List financial accounts of a given type\n\n### Returns\n\n- `{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `created: string`\n - `credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n - `is_for_benefit_of: boolean`\n - `nickname: string`\n - `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n - `substatus: string`\n - `type: string`\n - `updated: string`\n - `user_defined_status: string`\n - `account_number?: string`\n - `routing_number?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const financialAccount of client.financialAccounts.list()) {\n console.log(financialAccount);\n}\n```",
perLanguage: {
- go: {
- method: 'client.FinancialAccounts.List',
+ typescript: {
+ method: 'client.financialAccounts.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FinancialAccounts.List(context.TODO(), lithic.FinancialAccountListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const financialAccount of client.financialAccounts.list()) {\n console.log(financialAccount.token);\n}",
},
- http: {
+ python: {
+ method: 'financial_accounts.list',
example:
- 'curl https://api.lithic.com/v1/financial_accounts \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.financial_accounts.list()\npage = page.data[0]\nprint(page.token)',
},
java: {
method: 'financialAccounts().list',
@@ -4785,20 +4786,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountListPage\nimport com.lithic.api.models.FinancialAccountListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: FinancialAccountListPage = client.financialAccounts().list()\n}',
},
- python: {
- method: 'financial_accounts.list',
+ go: {
+ method: 'client.FinancialAccounts.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.financial_accounts.list()\npage = page.data[0]\nprint(page.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FinancialAccounts.List(context.TODO(), lithic.FinancialAccountListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'financial_accounts.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.financial_accounts.list\n\nputs(page)',
},
- typescript: {
- method: 'client.financialAccounts.list',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const financialAccount of client.financialAccounts.list()) {\n console.log(financialAccount.token);\n}",
+ 'curl https://api.lithic.com/v1/financial_accounts \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -4816,14 +4816,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.financialAccounts.retrieve(financial_account_token: string): { token: string; account_token: string; created: string; credit_configuration: object; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}`\n\nGet a financial account\n\n### Parameters\n\n- `financial_account_token: string`\n\n### Returns\n\n- `{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `created: string`\n - `credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n - `is_for_benefit_of: boolean`\n - `nickname: string`\n - `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n - `substatus: string`\n - `type: string`\n - `updated: string`\n - `user_defined_status: string`\n - `account_number?: string`\n - `routing_number?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialAccount = await client.financialAccounts.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(financialAccount);\n```",
perLanguage: {
- go: {
- method: 'client.FinancialAccounts.Get',
+ typescript: {
+ method: 'client.financialAccounts.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialAccount, err := client.FinancialAccounts.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialAccount.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialAccount = await client.financialAccounts.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(financialAccount.token);",
},
- http: {
+ python: {
+ method: 'financial_accounts.retrieve',
example:
- 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_account = client.financial_accounts.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(financial_account.token)',
},
java: {
method: 'financialAccounts().retrieve',
@@ -4835,20 +4836,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccount\nimport com.lithic.api.models.FinancialAccountRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val financialAccount: FinancialAccount = client.financialAccounts().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'financial_accounts.retrieve',
+ go: {
+ method: 'client.FinancialAccounts.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_account = client.financial_accounts.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(financial_account.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialAccount, err := client.FinancialAccounts.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialAccount.Token)\n}\n',
},
ruby: {
method: 'financial_accounts.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nfinancial_account = lithic.financial_accounts.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(financial_account)',
},
- typescript: {
- method: 'client.financialAccounts.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialAccount = await client.financialAccounts.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(financialAccount.token);",
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -4866,14 +4866,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## update\n\n`client.financialAccounts.update(financial_account_token: string, nickname?: string): { token: string; account_token: string; created: string; credit_configuration: object; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n**patch** `/v1/financial_accounts/{financial_account_token}`\n\nUpdate a financial account\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `nickname?: string`\n\n### Returns\n\n- `{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `created: string`\n - `credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n - `is_for_benefit_of: boolean`\n - `nickname: string`\n - `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n - `substatus: string`\n - `type: string`\n - `updated: string`\n - `user_defined_status: string`\n - `account_number?: string`\n - `routing_number?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialAccount = await client.financialAccounts.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(financialAccount);\n```",
perLanguage: {
- go: {
- method: 'client.FinancialAccounts.Update',
+ typescript: {
+ method: 'client.financialAccounts.update',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialAccount, err := client.FinancialAccounts.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountUpdateParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialAccount.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialAccount = await client.financialAccounts.update(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(financialAccount.token);",
},
- http: {
+ python: {
+ method: 'financial_accounts.update',
example:
- 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN \\\n -X PATCH \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_account = client.financial_accounts.update(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(financial_account.token)',
},
java: {
method: 'financialAccounts().update',
@@ -4885,20 +4886,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccount\nimport com.lithic.api.models.FinancialAccountUpdateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val financialAccount: FinancialAccount = client.financialAccounts().update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'financial_accounts.update',
+ go: {
+ method: 'client.FinancialAccounts.Update',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_account = client.financial_accounts.update(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(financial_account.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialAccount, err := client.FinancialAccounts.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountUpdateParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialAccount.Token)\n}\n',
},
ruby: {
method: 'financial_accounts.update',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nfinancial_account = lithic.financial_accounts.update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(financial_account)',
},
- typescript: {
- method: 'client.financialAccounts.update',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialAccount = await client.financialAccounts.update(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(financialAccount.token);",
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN \\\n -X PATCH \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -4921,14 +4921,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## update_status\n\n`client.financialAccounts.updateStatus(financial_account_token: string, status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING', substatus: string, user_defined_status?: string): { token: string; account_token: string; created: string; credit_configuration: object; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n**post** `/v1/financial_accounts/{financial_account_token}/update_status`\n\nUpdate financial account status\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n Status of the financial account\n\n- `substatus: string`\n Substatus for the financial account\n\n- `user_defined_status?: string`\n User-defined status for the financial account\n\n### Returns\n\n- `{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `created: string`\n - `credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n - `is_for_benefit_of: boolean`\n - `nickname: string`\n - `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n - `substatus: string`\n - `type: string`\n - `updated: string`\n - `user_defined_status: string`\n - `account_number?: string`\n - `routing_number?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialAccount = await client.financialAccounts.updateStatus('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { status: 'CLOSED', substatus: 'END_USER_REQUEST' });\n\nconsole.log(financialAccount);\n```",
perLanguage: {
- go: {
- method: 'client.FinancialAccounts.UpdateStatus',
+ typescript: {
+ method: 'client.financialAccounts.updateStatus',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialAccount, err := client.FinancialAccounts.UpdateStatus(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountUpdateStatusParams{\n\t\t\tStatus: lithic.F(lithic.FinancialAccountUpdateStatusParamsStatusClosed),\n\t\t\tSubstatus: lithic.F(lithic.FinancialAccountUpdateStatusParamsSubstatusEndUserRequest),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialAccount.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialAccount = await client.financialAccounts.updateStatus(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { status: 'CLOSED', substatus: 'END_USER_REQUEST' },\n);\n\nconsole.log(financialAccount.token);",
},
- http: {
+ python: {
+ method: 'financial_accounts.update_status',
example:
- 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/update_status \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "status": "CLOSED",\n "substatus": "END_USER_REQUEST"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_account = client.financial_accounts.update_status(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n status="CLOSED",\n substatus="END_USER_REQUEST",\n)\nprint(financial_account.token)',
},
java: {
method: 'financialAccounts().updateStatus',
@@ -4940,20 +4941,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccount\nimport com.lithic.api.models.FinancialAccountUpdateStatusParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FinancialAccountUpdateStatusParams = FinancialAccountUpdateStatusParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .status(FinancialAccountUpdateStatusParams.FinancialAccountStatus.CLOSED)\n .substatus(FinancialAccountUpdateStatusParams.UpdateFinancialAccountSubstatus.END_USER_REQUEST)\n .build()\n val financialAccount: FinancialAccount = client.financialAccounts().updateStatus(params)\n}',
},
- python: {
- method: 'financial_accounts.update_status',
+ go: {
+ method: 'client.FinancialAccounts.UpdateStatus',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_account = client.financial_accounts.update_status(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n status="CLOSED",\n substatus="END_USER_REQUEST",\n)\nprint(financial_account.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialAccount, err := client.FinancialAccounts.UpdateStatus(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountUpdateStatusParams{\n\t\t\tStatus: lithic.F(lithic.FinancialAccountUpdateStatusParamsStatusClosed),\n\t\t\tSubstatus: lithic.F(lithic.FinancialAccountUpdateStatusParamsSubstatusEndUserRequest),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialAccount.Token)\n}\n',
},
ruby: {
method: 'financial_accounts.update_status',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nfinancial_account = lithic.financial_accounts.update_status(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n status: :CLOSED,\n substatus: :END_USER_REQUEST\n)\n\nputs(financial_account)',
},
- typescript: {
- method: 'client.financialAccounts.updateStatus',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialAccount = await client.financialAccounts.updateStatus(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { status: 'CLOSED', substatus: 'END_USER_REQUEST' },\n);\n\nconsole.log(financialAccount.token);",
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/update_status \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "status": "CLOSED",\n "substatus": "END_USER_REQUEST"\n }\'',
},
},
},
@@ -4977,14 +4977,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## create\n\n`client.financialAccounts.create(nickname: string, type: 'OPERATING', account_token?: string, is_for_benefit_of?: boolean, Idempotency-Key?: string): { token: string; account_token: string; created: string; credit_configuration: object; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n**post** `/v1/financial_accounts`\n\nCreate a new financial account\n\n### Parameters\n\n- `nickname: string`\n\n- `type: 'OPERATING'`\n\n- `account_token?: string`\n\n- `is_for_benefit_of?: boolean`\n\n- `Idempotency-Key?: string`\n\n### Returns\n\n- `{ token: string; account_token: string; created: string; credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }; is_for_benefit_of: boolean; nickname: string; status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus: string; type: string; updated: string; user_defined_status: string; account_number?: string; routing_number?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `created: string`\n - `credit_configuration: { auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n - `is_for_benefit_of: boolean`\n - `nickname: string`\n - `status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'`\n - `substatus: string`\n - `type: string`\n - `updated: string`\n - `user_defined_status: string`\n - `account_number?: string`\n - `routing_number?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialAccount = await client.financialAccounts.create({ nickname: 'nickname', type: 'OPERATING' });\n\nconsole.log(financialAccount);\n```",
perLanguage: {
- go: {
- method: 'client.FinancialAccounts.New',
+ typescript: {
+ method: 'client.financialAccounts.create',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialAccount, err := client.FinancialAccounts.New(context.TODO(), lithic.FinancialAccountNewParams{\n\t\tNickname: lithic.F("nickname"),\n\t\tType: lithic.F(lithic.FinancialAccountNewParamsTypeOperating),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialAccount.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialAccount = await client.financialAccounts.create({\n nickname: 'nickname',\n type: 'OPERATING',\n});\n\nconsole.log(financialAccount.token);",
},
- http: {
+ python: {
+ method: 'financial_accounts.create',
example:
- 'curl https://api.lithic.com/v1/financial_accounts \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "nickname": "nickname",\n "type": "OPERATING"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_account = client.financial_accounts.create(\n nickname="nickname",\n type="OPERATING",\n)\nprint(financial_account.token)',
},
java: {
method: 'financialAccounts().create',
@@ -4996,20 +4997,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccount\nimport com.lithic.api.models.FinancialAccountCreateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FinancialAccountCreateParams = FinancialAccountCreateParams.builder()\n .nickname("nickname")\n .type(FinancialAccountCreateParams.Type.OPERATING)\n .build()\n val financialAccount: FinancialAccount = client.financialAccounts().create(params)\n}',
},
- python: {
- method: 'financial_accounts.create',
+ go: {
+ method: 'client.FinancialAccounts.New',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_account = client.financial_accounts.create(\n nickname="nickname",\n type="OPERATING",\n)\nprint(financial_account.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialAccount, err := client.FinancialAccounts.New(context.TODO(), lithic.FinancialAccountNewParams{\n\t\tNickname: lithic.F("nickname"),\n\t\tType: lithic.F(lithic.FinancialAccountNewParamsTypeOperating),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialAccount.Token)\n}\n',
},
ruby: {
method: 'financial_accounts.create',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nfinancial_account = lithic.financial_accounts.create(nickname: "nickname", type: :OPERATING)\n\nputs(financial_account)',
},
- typescript: {
- method: 'client.financialAccounts.create',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialAccount = await client.financialAccounts.create({\n nickname: 'nickname',\n type: 'OPERATING',\n});\n\nconsole.log(financialAccount.token);",
+ 'curl https://api.lithic.com/v1/financial_accounts \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "nickname": "nickname",\n "type": "OPERATING"\n }\'',
},
},
},
@@ -5025,14 +5025,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## register_account_number\n\n`client.financialAccounts.registerAccountNumber(financial_account_token: string, account_number: string): void`\n\n**post** `/v1/financial_accounts/{financial_account_token}/register_account_number`\n\nRegister account number\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `account_number: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.financialAccounts.registerAccountNumber('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { account_number: 'account_number' })\n```",
perLanguage: {
- go: {
- method: 'client.FinancialAccounts.RegisterAccountNumber',
+ typescript: {
+ method: 'client.financialAccounts.registerAccountNumber',
example:
- 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.FinancialAccounts.RegisterAccountNumber(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountRegisterAccountNumberParams{\n\t\t\tAccountNumber: lithic.F("account_number"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.financialAccounts.registerAccountNumber('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n account_number: 'account_number',\n});",
},
- http: {
+ python: {
+ method: 'financial_accounts.register_account_number',
example:
- 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/register_account_number \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "account_number": "account_number"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.financial_accounts.register_account_number(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n account_number="account_number",\n)',
},
java: {
method: 'financialAccounts().registerAccountNumber',
@@ -5044,20 +5045,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountRegisterAccountNumberParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FinancialAccountRegisterAccountNumberParams = FinancialAccountRegisterAccountNumberParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .accountNumber("account_number")\n .build()\n client.financialAccounts().registerAccountNumber(params)\n}',
},
- python: {
- method: 'financial_accounts.register_account_number',
+ go: {
+ method: 'client.FinancialAccounts.RegisterAccountNumber',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.financial_accounts.register_account_number(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n account_number="account_number",\n)',
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.FinancialAccounts.RegisterAccountNumber(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountRegisterAccountNumberParams{\n\t\t\tAccountNumber: lithic.F("account_number"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
},
ruby: {
method: 'financial_accounts.register_account_number',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.financial_accounts.register_account_number(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n account_number: "account_number"\n)\n\nputs(result)',
},
- typescript: {
- method: 'client.financialAccounts.registerAccountNumber',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.financialAccounts.registerAccountNumber('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n account_number: 'account_number',\n});",
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/register_account_number \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "account_number": "account_number"\n }\'',
},
},
},
@@ -5079,14 +5079,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.financialAccounts.balances.list(financial_account_token: string, balance_date?: string, last_transaction_event_token?: string): { token: string; available_amount: number; created: string; currency: string; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; updated: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/balances`\n\nGet the balances for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `balance_date?: string`\n UTC date of the balance to retrieve. Defaults to latest available balance\n\n- `last_transaction_event_token?: string`\n Balance after a given financial event occured.\nFor example, passing the event_token of a $5 CARD_CLEARING financial event will return a balance decreased by $5\n\n\n### Returns\n\n- `{ token: string; available_amount: number; created: string; currency: string; last_transaction_event_token: string; last_transaction_token: string; pending_amount: number; total_amount: number; type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'; updated: string; }`\n Balance of a Financial Account\n\n - `token: string`\n - `available_amount: number`\n - `created: string`\n - `currency: string`\n - `last_transaction_event_token: string`\n - `last_transaction_token: string`\n - `pending_amount: number`\n - `total_amount: number`\n - `type: 'ISSUING' | 'OPERATING' | 'RESERVE' | 'SECURITY'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const financialAccountBalance of client.financialAccounts.balances.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(financialAccountBalance);\n}\n```",
perLanguage: {
- go: {
- method: 'client.FinancialAccounts.Balances.List',
+ typescript: {
+ method: 'client.financialAccounts.balances.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FinancialAccounts.Balances.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountBalanceListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const financialAccountBalance of client.financialAccounts.balances.list(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(financialAccountBalance.token);\n}",
},
- http: {
+ python: {
+ method: 'financial_accounts.balances.list',
example:
- 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/balances \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.financial_accounts.balances.list(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
},
java: {
method: 'financialAccounts().balances().list',
@@ -5098,20 +5099,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountBalanceListPage\nimport com.lithic.api.models.FinancialAccountBalanceListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: FinancialAccountBalanceListPage = client.financialAccounts().balances().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'financial_accounts.balances.list',
+ go: {
+ method: 'client.FinancialAccounts.Balances.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.financial_accounts.balances.list(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FinancialAccounts.Balances.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountBalanceListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'financial_accounts.balances.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.financial_accounts.balances.list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(page)',
},
- typescript: {
- method: 'client.financialAccounts.balances.list',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const financialAccountBalance of client.financialAccounts.balances.list(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(financialAccountBalance.token);\n}",
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/balances \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -5138,14 +5138,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.financialAccounts.financialTransactions.list(financial_account_token: string, begin?: string, category?: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER', end?: string, ending_before?: string, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'): { token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: financial_event[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/financial_transactions`\n\nList the financial transactions for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `category?: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'`\n Financial Transaction category to be returned.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `result?: 'APPROVED' | 'DECLINED'`\n Financial Transaction result to be returned.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'`\n Financial Transaction status to be returned.\n\n### Returns\n\n- `{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n - `token: string`\n - `category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'`\n - `created: string`\n - `currency: string`\n - `descriptor: string`\n - `events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const financialTransaction of client.financialAccounts.financialTransactions.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(financialTransaction);\n}\n```",
perLanguage: {
- go: {
- method: 'client.FinancialAccounts.FinancialTransactions.List',
+ typescript: {
+ method: 'client.financialAccounts.financialTransactions.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FinancialAccounts.FinancialTransactions.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialTransactionListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const financialTransaction of client.financialAccounts.financialTransactions.list(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(financialTransaction.token);\n}",
},
- http: {
+ python: {
+ method: 'financial_accounts.financial_transactions.list',
example:
- 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/financial_transactions \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.financial_accounts.financial_transactions.list(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
},
java: {
method: 'financialAccounts().financialTransactions().list',
@@ -5157,20 +5158,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialTransactionListPage\nimport com.lithic.api.models.FinancialTransactionListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: FinancialTransactionListPage = client.financialAccounts().financialTransactions().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'financial_accounts.financial_transactions.list',
+ go: {
+ method: 'client.FinancialAccounts.FinancialTransactions.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.financial_accounts.financial_transactions.list(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FinancialAccounts.FinancialTransactions.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialTransactionListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'financial_accounts.financial_transactions.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.financial_accounts.financial_transactions.list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(page)',
},
- typescript: {
- method: 'client.financialAccounts.financialTransactions.list',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const financialTransaction of client.financialAccounts.financialTransactions.list(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(financialTransaction.token);\n}",
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/financial_transactions \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -5189,14 +5189,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.financialAccounts.financialTransactions.retrieve(financial_account_token: string, financial_transaction_token: string): { token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: financial_event[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/financial_transactions/{financial_transaction_token}`\n\nGet the financial transaction for the provided token.\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `financial_transaction_token: string`\n\n### Returns\n\n- `{ token: string; category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'; updated: string; }`\n\n - `token: string`\n - `category: 'ACH' | 'CARD' | 'INTERNAL' | 'TRANSFER'`\n - `created: string`\n - `currency: string`\n - `descriptor: string`\n - `events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'SETTLED' | 'VOIDED'`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialTransaction = await client.financialAccounts.financialTransactions.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(financialTransaction);\n```",
perLanguage: {
- go: {
- method: 'client.FinancialAccounts.FinancialTransactions.Get',
+ typescript: {
+ method: 'client.financialAccounts.financialTransactions.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialTransaction, err := client.FinancialAccounts.FinancialTransactions.Get(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialTransaction.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialTransaction = await client.financialAccounts.financialTransactions.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(financialTransaction.token);",
},
- http: {
+ python: {
+ method: 'financial_accounts.financial_transactions.retrieve',
example:
- 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/financial_transactions/$FINANCIAL_TRANSACTION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_transaction = client.financial_accounts.financial_transactions.retrieve(\n financial_transaction_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(financial_transaction.token)',
},
java: {
method: 'financialAccounts().financialTransactions().retrieve',
@@ -5208,20 +5209,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialTransaction\nimport com.lithic.api.models.FinancialTransactionRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FinancialTransactionRetrieveParams = FinancialTransactionRetrieveParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .financialTransactionToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val financialTransaction: FinancialTransaction = client.financialAccounts().financialTransactions().retrieve(params)\n}',
},
- python: {
- method: 'financial_accounts.financial_transactions.retrieve',
+ go: {
+ method: 'client.FinancialAccounts.FinancialTransactions.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_transaction = client.financial_accounts.financial_transactions.retrieve(\n financial_transaction_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(financial_transaction.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialTransaction, err := client.FinancialAccounts.FinancialTransactions.Get(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialTransaction.Token)\n}\n',
},
ruby: {
method: 'financial_accounts.financial_transactions.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nfinancial_transaction = lithic.financial_accounts.financial_transactions.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(financial_transaction)',
},
- typescript: {
- method: 'client.financialAccounts.financialTransactions.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialTransaction = await client.financialAccounts.financialTransactions.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(financialTransaction.token);",
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/financial_transactions/$FINANCIAL_TRANSACTION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -5239,14 +5239,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.financialAccounts.creditConfiguration.retrieve(financial_account_token: string): { account_token: string; auto_collection_configuration: object; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/credit_configuration`\n\nGet an Account's credit configuration\n\n### Parameters\n\n- `financial_account_token: string`\n\n### Returns\n\n- `{ account_token: string; auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n\n - `account_token: string`\n - `auto_collection_configuration: { auto_collection_enabled: boolean; }`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `external_bank_account_token: string`\n - `tier: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialAccountCreditConfig = await client.financialAccounts.creditConfiguration.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(financialAccountCreditConfig);\n```",
perLanguage: {
- go: {
- method: 'client.FinancialAccounts.CreditConfiguration.Get',
+ typescript: {
+ method: 'client.financialAccounts.creditConfiguration.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialAccountCreditConfig, err := client.FinancialAccounts.CreditConfiguration.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialAccountCreditConfig.AccountToken)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialAccountCreditConfig = await client.financialAccounts.creditConfiguration.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(financialAccountCreditConfig.account_token);",
},
- http: {
+ python: {
+ method: 'financial_accounts.credit_configuration.retrieve',
example:
- 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/credit_configuration \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_account_credit_config = client.financial_accounts.credit_configuration.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(financial_account_credit_config.account_token)',
},
java: {
method: 'financialAccounts().creditConfiguration().retrieve',
@@ -5258,20 +5259,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountCreditConfig\nimport com.lithic.api.models.FinancialAccountCreditConfigurationRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val financialAccountCreditConfig: FinancialAccountCreditConfig = client.financialAccounts().creditConfiguration().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'financial_accounts.credit_configuration.retrieve',
+ go: {
+ method: 'client.FinancialAccounts.CreditConfiguration.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_account_credit_config = client.financial_accounts.credit_configuration.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(financial_account_credit_config.account_token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialAccountCreditConfig, err := client.FinancialAccounts.CreditConfiguration.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialAccountCreditConfig.AccountToken)\n}\n',
},
ruby: {
method: 'financial_accounts.credit_configuration.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nfinancial_account_credit_config = lithic.financial_accounts.credit_configuration.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(financial_account_credit_config)',
},
- typescript: {
- method: 'client.financialAccounts.creditConfiguration.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialAccountCreditConfig = await client.financialAccounts.creditConfiguration.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(financialAccountCreditConfig.account_token);",
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/credit_configuration \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -5296,14 +5296,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## update\n\n`client.financialAccounts.creditConfiguration.update(financial_account_token: string, auto_collection_configuration?: { auto_collection_enabled?: boolean; }, credit_limit?: number, credit_product_token?: string, external_bank_account_token?: string, tier?: string): { account_token: string; auto_collection_configuration: object; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n\n**patch** `/v1/financial_accounts/{financial_account_token}/credit_configuration`\n\nUpdate an account's credit configuration\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `auto_collection_configuration?: { auto_collection_enabled?: boolean; }`\n - `auto_collection_enabled?: boolean`\n If auto collection is enabled for this account\n\n- `credit_limit?: number`\n\n- `credit_product_token?: string`\n Globally unique identifier for the credit product\n\n- `external_bank_account_token?: string`\n\n- `tier?: string`\n Tier to assign to a financial account\n\n### Returns\n\n- `{ account_token: string; auto_collection_configuration: { auto_collection_enabled: boolean; }; credit_limit: number; credit_product_token: string; external_bank_account_token: string; tier: string; }`\n\n - `account_token: string`\n - `auto_collection_configuration: { auto_collection_enabled: boolean; }`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `external_bank_account_token: string`\n - `tier: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst financialAccountCreditConfig = await client.financialAccounts.creditConfiguration.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(financialAccountCreditConfig);\n```",
perLanguage: {
- go: {
- method: 'client.FinancialAccounts.CreditConfiguration.Update',
+ typescript: {
+ method: 'client.financialAccounts.creditConfiguration.update',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialAccountCreditConfig, err := client.FinancialAccounts.CreditConfiguration.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountCreditConfigurationUpdateParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialAccountCreditConfig.AccountToken)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialAccountCreditConfig = await client.financialAccounts.creditConfiguration.update(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(financialAccountCreditConfig.account_token);",
},
- http: {
+ python: {
+ method: 'financial_accounts.credit_configuration.update',
example:
- 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/credit_configuration \\\n -X PATCH \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_account_credit_config = client.financial_accounts.credit_configuration.update(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(financial_account_credit_config.account_token)',
},
java: {
method: 'financialAccounts().creditConfiguration().update',
@@ -5315,20 +5316,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountCreditConfig\nimport com.lithic.api.models.FinancialAccountCreditConfigurationUpdateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val financialAccountCreditConfig: FinancialAccountCreditConfig = client.financialAccounts().creditConfiguration().update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'financial_accounts.credit_configuration.update',
+ go: {
+ method: 'client.FinancialAccounts.CreditConfiguration.Update',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfinancial_account_credit_config = client.financial_accounts.credit_configuration.update(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(financial_account_credit_config.account_token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfinancialAccountCreditConfig, err := client.FinancialAccounts.CreditConfiguration.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountCreditConfigurationUpdateParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialAccountCreditConfig.AccountToken)\n}\n',
},
ruby: {
method: 'financial_accounts.credit_configuration.update',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nfinancial_account_credit_config = lithic.financial_accounts.credit_configuration.update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(financial_account_credit_config)',
},
- typescript: {
- method: 'client.financialAccounts.creditConfiguration.update',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst financialAccountCreditConfig = await client.financialAccounts.creditConfiguration.update(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(financialAccountCreditConfig.account_token);",
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/credit_configuration \\\n -X PATCH \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -5354,14 +5354,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.financialAccounts.statements.list(financial_account_token: string, begin?: string, end?: string, ending_before?: string, include_initial_statements?: boolean, page_size?: number, starting_after?: string): { token: string; account_standing: object; amount_due: object; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: statement_totals; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: statement_totals; interest_details?: object; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: object; statement_totals?: statement_totals; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/statements`\n\nList the statements for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified date will be included.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified date will be included.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `include_initial_statements?: boolean`\n Whether to include the initial statement. It is not included by default.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }; amount_due: { amount: number; past_due: number; }; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; interest_details?: { actual_interest_charged: number; daily_balance_amounts: object; effective_apr: object; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: object; prime_rate: string; minimum_interest_charged?: number; }; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: { minimum_payment_months: string; minimum_payment_total: string; payoff_period_length_months: number; payoff_period_monthly_payment_amount: number; payoff_period_payment_total: number; }; statement_totals?: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; }`\n\n - `token: string`\n - `account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }`\n - `amount_due: { amount: number; past_due: number; }`\n - `available_credit: number`\n - `created: string`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `days_in_billing_cycle: number`\n - `ending_balance: number`\n - `financial_account_token: string`\n - `payment_due_date: string`\n - `period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `starting_balance: number`\n - `statement_end_date: string`\n - `statement_start_date: string`\n - `statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'`\n - `updated: string`\n - `ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `interest_details?: { actual_interest_charged: number; daily_balance_amounts: { balance_transfers: string; cash_advances: string; purchases: string; }; effective_apr: { balance_transfers: string; cash_advances: string; purchases: string; }; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: { balance_transfers: string; cash_advances: string; purchases: string; }; prime_rate: string; minimum_interest_charged?: number; }`\n - `next_payment_due_date?: string`\n - `next_statement_end_date?: string`\n - `payoff_details?: { minimum_payment_months: string; minimum_payment_total: string; payoff_period_length_months: number; payoff_period_monthly_payment_amount: number; payoff_period_payment_total: number; }`\n - `statement_totals?: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const statement of client.financialAccounts.statements.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(statement);\n}\n```",
perLanguage: {
- go: {
- method: 'client.FinancialAccounts.Statements.List',
+ typescript: {
+ method: 'client.financialAccounts.statements.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FinancialAccounts.Statements.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountStatementListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const statement of client.financialAccounts.statements.list(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(statement.token);\n}",
},
- http: {
+ python: {
+ method: 'financial_accounts.statements.list',
example:
- 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/statements \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.financial_accounts.statements.list(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
},
java: {
method: 'financialAccounts().statements().list',
@@ -5372,21 +5373,20 @@ const EMBEDDED_METHODS: MethodEntry[] = [
method: 'financialAccounts().statements().list',
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountStatementListPage\nimport com.lithic.api.models.FinancialAccountStatementListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: FinancialAccountStatementListPage = client.financialAccounts().statements().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
- },
- python: {
- method: 'financial_accounts.statements.list',
+ },
+ go: {
+ method: 'client.FinancialAccounts.Statements.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.financial_accounts.statements.list(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FinancialAccounts.Statements.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountStatementListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'financial_accounts.statements.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.financial_accounts.statements.list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(page)',
},
- typescript: {
- method: 'client.financialAccounts.statements.list',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const statement of client.financialAccounts.statements.list(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(statement.token);\n}",
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/statements \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -5404,14 +5404,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.financialAccounts.statements.retrieve(financial_account_token: string, statement_token: string): { token: string; account_standing: object; amount_due: object; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: statement_totals; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: statement_totals; interest_details?: object; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: object; statement_totals?: statement_totals; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/statements/{statement_token}`\n\nGet a specific statement for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n- `statement_token: string`\n Globally unique identifier for statements.\n\n### Returns\n\n- `{ token: string; account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }; amount_due: { amount: number; past_due: number; }; available_credit: number; created: string; credit_limit: number; credit_product_token: string; days_in_billing_cycle: number; ending_balance: number; financial_account_token: string; payment_due_date: string; period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; starting_balance: number; statement_end_date: string; statement_start_date: string; statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'; updated: string; ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; interest_details?: { actual_interest_charged: number; daily_balance_amounts: object; effective_apr: object; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: object; prime_rate: string; minimum_interest_charged?: number; }; next_payment_due_date?: string; next_statement_end_date?: string; payoff_details?: { minimum_payment_months: string; minimum_payment_total: string; payoff_period_length_months: number; payoff_period_monthly_payment_amount: number; payoff_period_payment_total: number; }; statement_totals?: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; }`\n\n - `token: string`\n - `account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }`\n - `amount_due: { amount: number; past_due: number; }`\n - `available_credit: number`\n - `created: string`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `days_in_billing_cycle: number`\n - `ending_balance: number`\n - `financial_account_token: string`\n - `payment_due_date: string`\n - `period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `starting_balance: number`\n - `statement_end_date: string`\n - `statement_start_date: string`\n - `statement_type: 'INITIAL' | 'PERIOD_END' | 'FINAL'`\n - `updated: string`\n - `ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `interest_details?: { actual_interest_charged: number; daily_balance_amounts: { balance_transfers: string; cash_advances: string; purchases: string; }; effective_apr: { balance_transfers: string; cash_advances: string; purchases: string; }; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: { balance_transfers: string; cash_advances: string; purchases: string; }; prime_rate: string; minimum_interest_charged?: number; }`\n - `next_payment_due_date?: string`\n - `next_statement_end_date?: string`\n - `payoff_details?: { minimum_payment_months: string; minimum_payment_total: string; payoff_period_length_months: number; payoff_period_monthly_payment_amount: number; payoff_period_payment_total: number; }`\n - `statement_totals?: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst statement = await client.financialAccounts.statements.retrieve('statement_token', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(statement);\n```",
perLanguage: {
- go: {
- method: 'client.FinancialAccounts.Statements.Get',
+ typescript: {
+ method: 'client.financialAccounts.statements.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tstatement, err := client.FinancialAccounts.Statements.Get(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"statement_token",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", statement.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst statement = await client.financialAccounts.statements.retrieve('statement_token', {\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(statement.token);",
},
- http: {
+ python: {
+ method: 'financial_accounts.statements.retrieve',
example:
- 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/statements/$STATEMENT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nstatement = client.financial_accounts.statements.retrieve(\n statement_token="statement_token",\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(statement.token)',
},
java: {
method: 'financialAccounts().statements().retrieve',
@@ -5423,20 +5424,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountStatementRetrieveParams\nimport com.lithic.api.models.Statement\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FinancialAccountStatementRetrieveParams = FinancialAccountStatementRetrieveParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .statementToken("statement_token")\n .build()\n val statement: Statement = client.financialAccounts().statements().retrieve(params)\n}',
},
- python: {
- method: 'financial_accounts.statements.retrieve',
+ go: {
+ method: 'client.FinancialAccounts.Statements.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nstatement = client.financial_accounts.statements.retrieve(\n statement_token="statement_token",\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(statement.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tstatement, err := client.FinancialAccounts.Statements.Get(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"statement_token",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", statement.Token)\n}\n',
},
ruby: {
method: 'financial_accounts.statements.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nstatement = lithic.financial_accounts.statements.retrieve(\n "statement_token",\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(statement)',
},
- typescript: {
- method: 'client.financialAccounts.statements.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst statement = await client.financialAccounts.statements.retrieve('statement_token', {\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(statement.token);",
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/statements/$STATEMENT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -5460,14 +5460,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.financialAccounts.statements.lineItems.list(financial_account_token: string, statement_token: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; amount: number; category: string; created: string; currency: string; effective_date: string; event_type: string; financial_account_token: string; financial_transaction_event_token: string; financial_transaction_token: string; card_token?: string; descriptor?: string; event_subtype?: string; loan_tape_date?: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/statements/{statement_token}/line_items`\n\nList the line items for a given statement within a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n- `statement_token: string`\n Globally unique identifier for statements.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; amount: number; category: string; created: string; currency: string; effective_date: string; event_type: string; financial_account_token: string; financial_transaction_event_token: string; financial_transaction_token: string; card_token?: string; descriptor?: string; event_subtype?: string; loan_tape_date?: string; }`\n\n - `token: string`\n - `amount: number`\n - `category: string`\n - `created: string`\n - `currency: string`\n - `effective_date: string`\n - `event_type: string`\n - `financial_account_token: string`\n - `financial_transaction_event_token: string`\n - `financial_transaction_token: string`\n - `card_token?: string`\n - `descriptor?: string`\n - `event_subtype?: string`\n - `loan_tape_date?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const lineItem of client.financialAccounts.statements.lineItems.list('statement_token', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' })) {\n console.log(lineItem);\n}\n```",
perLanguage: {
- go: {
- method: 'client.FinancialAccounts.Statements.LineItems.List',
+ typescript: {
+ method: 'client.financialAccounts.statements.lineItems.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FinancialAccounts.Statements.LineItems.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"statement_token",\n\t\tlithic.FinancialAccountStatementLineItemListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const lineItem of client.financialAccounts.statements.lineItems.list('statement_token', {\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n})) {\n console.log(lineItem.token);\n}",
},
- http: {
+ python: {
+ method: 'financial_accounts.statements.line_items.list',
example:
- 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/statements/$STATEMENT_TOKEN/line_items \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.financial_accounts.statements.line_items.list(\n statement_token="statement_token",\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
},
java: {
method: 'financialAccounts().statements().lineItems().list',
@@ -5479,20 +5480,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountStatementLineItemListPage\nimport com.lithic.api.models.FinancialAccountStatementLineItemListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FinancialAccountStatementLineItemListParams = FinancialAccountStatementLineItemListParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .statementToken("statement_token")\n .build()\n val page: FinancialAccountStatementLineItemListPage = client.financialAccounts().statements().lineItems().list(params)\n}',
},
- python: {
- method: 'financial_accounts.statements.line_items.list',
+ go: {
+ method: 'client.FinancialAccounts.Statements.LineItems.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.financial_accounts.statements.line_items.list(\n statement_token="statement_token",\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FinancialAccounts.Statements.LineItems.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"statement_token",\n\t\tlithic.FinancialAccountStatementLineItemListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'financial_accounts.statements.line_items.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.financial_accounts.statements.line_items.list(\n "statement_token",\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(page)',
},
- typescript: {
- method: 'client.financialAccounts.statements.lineItems.list',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const lineItem of client.financialAccounts.statements.lineItems.list('statement_token', {\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n})) {\n console.log(lineItem.token);\n}",
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/statements/$STATEMENT_TOKEN/line_items \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -5517,14 +5517,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.financialAccounts.loanTapes.list(financial_account_token: string, begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; account_standing: object; available_credit: number; balances: object; created: string; credit_limit: number; credit_product_token: string; date: string; day_totals: statement_totals; ending_balance: number; excess_credits: number; financial_account_token: string; interest_details: object; minimum_payment_balance: object; payment_allocation: object; period_totals: statement_totals; previous_statement_balance: object; starting_balance: number; updated: string; version: number; ytd_totals: statement_totals; tier?: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/loan_tapes`\n\nList the loan tapes for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified date will be included.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified date will be included.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }; available_credit: number; balances: { due: object; next_statement_due: object; past_due: object; past_statements_due: object; }; created: string; credit_limit: number; credit_product_token: string; date: string; day_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; ending_balance: number; excess_credits: number; financial_account_token: string; interest_details: { actual_interest_charged: number; daily_balance_amounts: object; effective_apr: object; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: object; prime_rate: string; minimum_interest_charged?: number; }; minimum_payment_balance: { amount: number; remaining: number; }; payment_allocation: { fee_details: object; fees: number; interest: number; interest_details: object; principal: number; principal_details: object; }; period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; previous_statement_balance: { amount: number; remaining: number; }; starting_balance: number; updated: string; version: number; ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; tier?: string; }`\n\n - `token: string`\n - `account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }`\n - `available_credit: number`\n - `balances: { due: { fees: number; interest: number; principal: number; }; next_statement_due: { fees: number; interest: number; principal: number; }; past_due: { fees: number; interest: number; principal: number; }; past_statements_due: { fees: number; interest: number; principal: number; }; }`\n - `created: string`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `date: string`\n - `day_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `ending_balance: number`\n - `excess_credits: number`\n - `financial_account_token: string`\n - `interest_details: { actual_interest_charged: number; daily_balance_amounts: { balance_transfers: string; cash_advances: string; purchases: string; }; effective_apr: { balance_transfers: string; cash_advances: string; purchases: string; }; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: { balance_transfers: string; cash_advances: string; purchases: string; }; prime_rate: string; minimum_interest_charged?: number; }`\n - `minimum_payment_balance: { amount: number; remaining: number; }`\n - `payment_allocation: { fee_details: { balance_transfers: string; cash_advances: string; purchases: string; }; fees: number; interest: number; interest_details: { balance_transfers: string; cash_advances: string; purchases: string; }; principal: number; principal_details: { balance_transfers: string; cash_advances: string; purchases: string; }; }`\n - `period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `previous_statement_balance: { amount: number; remaining: number; }`\n - `starting_balance: number`\n - `updated: string`\n - `version: number`\n - `ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `tier?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const loanTape of client.financialAccounts.loanTapes.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(loanTape);\n}\n```",
perLanguage: {
- go: {
- method: 'client.FinancialAccounts.LoanTapes.List',
+ typescript: {
+ method: 'client.financialAccounts.loanTapes.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FinancialAccounts.LoanTapes.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountLoanTapeListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const loanTape of client.financialAccounts.loanTapes.list(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(loanTape.token);\n}",
},
- http: {
+ python: {
+ method: 'financial_accounts.loan_tapes.list',
example:
- 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/loan_tapes \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.financial_accounts.loan_tapes.list(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
},
java: {
method: 'financialAccounts().loanTapes().list',
@@ -5536,20 +5537,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountLoanTapeListPage\nimport com.lithic.api.models.FinancialAccountLoanTapeListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: FinancialAccountLoanTapeListPage = client.financialAccounts().loanTapes().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'financial_accounts.loan_tapes.list',
+ go: {
+ method: 'client.FinancialAccounts.LoanTapes.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.financial_accounts.loan_tapes.list(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FinancialAccounts.LoanTapes.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountLoanTapeListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'financial_accounts.loan_tapes.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.financial_accounts.loan_tapes.list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(page)',
},
- typescript: {
- method: 'client.financialAccounts.loanTapes.list',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const loanTape of client.financialAccounts.loanTapes.list(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(loanTape.token);\n}",
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/loan_tapes \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -5567,14 +5567,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.financialAccounts.loanTapes.retrieve(financial_account_token: string, loan_tape_token: string): { token: string; account_standing: object; available_credit: number; balances: object; created: string; credit_limit: number; credit_product_token: string; date: string; day_totals: statement_totals; ending_balance: number; excess_credits: number; financial_account_token: string; interest_details: object; minimum_payment_balance: object; payment_allocation: object; period_totals: statement_totals; previous_statement_balance: object; starting_balance: number; updated: string; version: number; ytd_totals: statement_totals; tier?: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/loan_tapes/{loan_tape_token}`\n\nGet a specific loan tape for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n- `loan_tape_token: string`\n Globally unique identifier for loan tape.\n\n### Returns\n\n- `{ token: string; account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }; available_credit: number; balances: { due: object; next_statement_due: object; past_due: object; past_statements_due: object; }; created: string; credit_limit: number; credit_product_token: string; date: string; day_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; ending_balance: number; excess_credits: number; financial_account_token: string; interest_details: { actual_interest_charged: number; daily_balance_amounts: object; effective_apr: object; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: object; prime_rate: string; minimum_interest_charged?: number; }; minimum_payment_balance: { amount: number; remaining: number; }; payment_allocation: { fee_details: object; fees: number; interest: number; interest_details: object; principal: number; principal_details: object; }; period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; previous_statement_balance: { amount: number; remaining: number; }; starting_balance: number; updated: string; version: number; ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }; tier?: string; }`\n\n - `token: string`\n - `account_standing: { consecutive_full_payments_made: number; consecutive_minimum_payments_made: number; consecutive_minimum_payments_missed: number; days_past_due: number; financial_account_state: { status: 'OPEN' | 'CLOSED' | 'SUSPENDED' | 'PENDING'; substatus?: string; }; has_grace: boolean; period_number: number; period_state: 'STANDARD' | 'PROMO' | 'PENALTY'; }`\n - `available_credit: number`\n - `balances: { due: { fees: number; interest: number; principal: number; }; next_statement_due: { fees: number; interest: number; principal: number; }; past_due: { fees: number; interest: number; principal: number; }; past_statements_due: { fees: number; interest: number; principal: number; }; }`\n - `created: string`\n - `credit_limit: number`\n - `credit_product_token: string`\n - `date: string`\n - `day_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `ending_balance: number`\n - `excess_credits: number`\n - `financial_account_token: string`\n - `interest_details: { actual_interest_charged: number; daily_balance_amounts: { balance_transfers: string; cash_advances: string; purchases: string; }; effective_apr: { balance_transfers: string; cash_advances: string; purchases: string; }; interest_calculation_method: 'DAILY' | 'AVERAGE_DAILY'; interest_for_period: { balance_transfers: string; cash_advances: string; purchases: string; }; prime_rate: string; minimum_interest_charged?: number; }`\n - `minimum_payment_balance: { amount: number; remaining: number; }`\n - `payment_allocation: { fee_details: { balance_transfers: string; cash_advances: string; purchases: string; }; fees: number; interest: number; interest_details: { balance_transfers: string; cash_advances: string; purchases: string; }; principal: number; principal_details: { balance_transfers: string; cash_advances: string; purchases: string; }; }`\n - `period_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `previous_statement_balance: { amount: number; remaining: number; }`\n - `starting_balance: number`\n - `updated: string`\n - `version: number`\n - `ytd_totals: { balance_transfers: number; cash_advances: number; credits: number; debits: number; fees: number; interest: number; payments: number; purchases: number; credit_details?: object; debit_details?: object; payment_details?: object; }`\n - `tier?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst loanTape = await client.financialAccounts.loanTapes.retrieve('loan_tape_token', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(loanTape);\n```",
perLanguage: {
- go: {
- method: 'client.FinancialAccounts.LoanTapes.Get',
+ typescript: {
+ method: 'client.financialAccounts.loanTapes.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tloanTape, err := client.FinancialAccounts.LoanTapes.Get(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"loan_tape_token",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", loanTape.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst loanTape = await client.financialAccounts.loanTapes.retrieve('loan_tape_token', {\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(loanTape.token);",
},
- http: {
+ python: {
+ method: 'financial_accounts.loan_tapes.retrieve',
example:
- 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/loan_tapes/$LOAN_TAPE_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nloan_tape = client.financial_accounts.loan_tapes.retrieve(\n loan_tape_token="loan_tape_token",\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(loan_tape.token)',
},
java: {
method: 'financialAccounts().loanTapes().retrieve',
@@ -5586,20 +5587,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountLoanTapeRetrieveParams\nimport com.lithic.api.models.LoanTape\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FinancialAccountLoanTapeRetrieveParams = FinancialAccountLoanTapeRetrieveParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .loanTapeToken("loan_tape_token")\n .build()\n val loanTape: LoanTape = client.financialAccounts().loanTapes().retrieve(params)\n}',
},
- python: {
- method: 'financial_accounts.loan_tapes.retrieve',
+ go: {
+ method: 'client.FinancialAccounts.LoanTapes.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nloan_tape = client.financial_accounts.loan_tapes.retrieve(\n loan_tape_token="loan_tape_token",\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(loan_tape.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tloanTape, err := client.FinancialAccounts.LoanTapes.Get(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\t"loan_tape_token",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", loanTape.Token)\n}\n',
},
ruby: {
method: 'financial_accounts.loan_tapes.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nloan_tape = lithic.financial_accounts.loan_tapes.retrieve(\n "loan_tape_token",\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(loan_tape)',
},
- typescript: {
- method: 'client.financialAccounts.loanTapes.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst loanTape = await client.financialAccounts.loanTapes.retrieve('loan_tape_token', {\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(loanTape.token);",
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/loan_tapes/$LOAN_TAPE_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -5617,14 +5617,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.financialAccounts.loanTapeConfiguration.retrieve(financial_account_token: string): { created_at: string; financial_account_token: string; instance_token: string; updated_at: string; credit_product_token?: string; loan_tape_rebuild_configuration?: loan_tape_rebuild_configuration; tier_schedule_changed_at?: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/loan_tape_configuration`\n\nGet the loan tape configuration for a given financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n Globally unique identifier for financial account.\n\n### Returns\n\n- `{ created_at: string; financial_account_token: string; instance_token: string; updated_at: string; credit_product_token?: string; loan_tape_rebuild_configuration?: { rebuild_needed: boolean; last_rebuild?: string; rebuild_from?: string; }; tier_schedule_changed_at?: string; }`\n Configuration for loan tapes\n\n - `created_at: string`\n - `financial_account_token: string`\n - `instance_token: string`\n - `updated_at: string`\n - `credit_product_token?: string`\n - `loan_tape_rebuild_configuration?: { rebuild_needed: boolean; last_rebuild?: string; rebuild_from?: string; }`\n - `tier_schedule_changed_at?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst loanTapeConfiguration = await client.financialAccounts.loanTapeConfiguration.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(loanTapeConfiguration);\n```",
perLanguage: {
- go: {
- method: 'client.FinancialAccounts.LoanTapeConfiguration.Get',
+ typescript: {
+ method: 'client.financialAccounts.loanTapeConfiguration.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tloanTapeConfiguration, err := client.FinancialAccounts.LoanTapeConfiguration.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", loanTapeConfiguration.CreatedAt)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst loanTapeConfiguration = await client.financialAccounts.loanTapeConfiguration.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(loanTapeConfiguration.created_at);",
},
- http: {
+ python: {
+ method: 'financial_accounts.loan_tape_configuration.retrieve',
example:
- 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/loan_tape_configuration \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nloan_tape_configuration = client.financial_accounts.loan_tape_configuration.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(loan_tape_configuration.created_at)',
},
java: {
method: 'financialAccounts().loanTapeConfiguration().retrieve',
@@ -5636,20 +5637,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountLoanTapeConfigurationRetrieveParams\nimport com.lithic.api.models.LoanTapeConfiguration\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val loanTapeConfiguration: LoanTapeConfiguration = client.financialAccounts().loanTapeConfiguration().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'financial_accounts.loan_tape_configuration.retrieve',
+ go: {
+ method: 'client.FinancialAccounts.LoanTapeConfiguration.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nloan_tape_configuration = client.financial_accounts.loan_tape_configuration.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(loan_tape_configuration.created_at)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tloanTapeConfiguration, err := client.FinancialAccounts.LoanTapeConfiguration.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", loanTapeConfiguration.CreatedAt)\n}\n',
},
ruby: {
method: 'financial_accounts.loan_tape_configuration.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nloan_tape_configuration = lithic.financial_accounts.loan_tape_configuration.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(loan_tape_configuration)',
},
- typescript: {
- method: 'client.financialAccounts.loanTapeConfiguration.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst loanTapeConfiguration = await client.financialAccounts.loanTapeConfiguration.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(loanTapeConfiguration.created_at);",
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/loan_tape_configuration \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -5673,14 +5673,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.financialAccounts.interestTierSchedule.list(financial_account_token: string, after_date?: string, before_date?: string, for_date?: string): { credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/interest_tier_schedule`\n\nList interest tier schedules for a financial account with optional date filtering.\n\nIf no date parameters are provided, returns all tier schedules.\nIf date parameters are provided, uses filtering to return matching schedules (max 100).\n- for_date: Returns exact match (takes precedence over other dates)\n- before_date: Returns schedules with effective_date <= before_date\n- after_date: Returns schedules with effective_date >= after_date\n- Both before_date and after_date: Returns schedules in range\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `after_date?: string`\n Return schedules with effective_date >= after_date (ISO format YYYY-MM-DD)\n\n- `before_date?: string`\n Return schedules with effective_date <= before_date (ISO format YYYY-MM-DD)\n\n- `for_date?: string`\n Return schedule with effective_date == for_date (ISO format YYYY-MM-DD)\n\n### Returns\n\n- `{ credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n Entry in the Tier Schedule of an account\n\n - `credit_product_token: string`\n - `effective_date: string`\n - `penalty_rates?: object`\n - `tier_name?: string`\n - `tier_rates?: object`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const interestTierSchedule of client.financialAccounts.interestTierSchedule.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(interestTierSchedule);\n}\n```",
perLanguage: {
- go: {
- method: 'client.FinancialAccounts.InterestTierSchedule.List',
+ typescript: {
+ method: 'client.financialAccounts.interestTierSchedule.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FinancialAccounts.InterestTierSchedule.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountInterestTierScheduleListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const interestTierSchedule of client.financialAccounts.interestTierSchedule.list(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(interestTierSchedule.credit_product_token);\n}",
},
- http: {
+ python: {
+ method: 'financial_accounts.interest_tier_schedule.list',
example:
- 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/interest_tier_schedule \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.financial_accounts.interest_tier_schedule.list(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.credit_product_token)',
},
java: {
method: 'financialAccounts().interestTierSchedule().list',
@@ -5692,20 +5693,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountInterestTierScheduleListPage\nimport com.lithic.api.models.FinancialAccountInterestTierScheduleListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: FinancialAccountInterestTierScheduleListPage = client.financialAccounts().interestTierSchedule().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'financial_accounts.interest_tier_schedule.list',
+ go: {
+ method: 'client.FinancialAccounts.InterestTierSchedule.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.financial_accounts.interest_tier_schedule.list(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.credit_product_token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FinancialAccounts.InterestTierSchedule.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountInterestTierScheduleListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'financial_accounts.interest_tier_schedule.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.financial_accounts.interest_tier_schedule.list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(page)',
},
- typescript: {
- method: 'client.financialAccounts.interestTierSchedule.list',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const interestTierSchedule of client.financialAccounts.interestTierSchedule.list(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n)) {\n console.log(interestTierSchedule.credit_product_token);\n}",
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/interest_tier_schedule \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -5730,14 +5730,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## create\n\n`client.financialAccounts.interestTierSchedule.create(financial_account_token: string, credit_product_token: string, effective_date: string, penalty_rates?: object, tier_name?: string, tier_rates?: object): { credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n\n**post** `/v1/financial_accounts/{financial_account_token}/interest_tier_schedule`\n\nCreate a new interest tier schedule entry for a supported financial account\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `credit_product_token: string`\n Globally unique identifier for a credit product\n\n- `effective_date: string`\n Date the tier should be effective in YYYY-MM-DD format\n\n- `penalty_rates?: object`\n Custom rates per category for penalties\n\n- `tier_name?: string`\n Name of a tier contained in the credit product. Mutually exclusive with tier_rates\n\n- `tier_rates?: object`\n Custom rates per category. Mutually exclusive with tier_name\n\n### Returns\n\n- `{ credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n Entry in the Tier Schedule of an account\n\n - `credit_product_token: string`\n - `effective_date: string`\n - `penalty_rates?: object`\n - `tier_name?: string`\n - `tier_rates?: object`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst interestTierSchedule = await client.financialAccounts.interestTierSchedule.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { credit_product_token: 'credit_product_token', effective_date: '2019-12-27' });\n\nconsole.log(interestTierSchedule);\n```",
perLanguage: {
- go: {
- method: 'client.FinancialAccounts.InterestTierSchedule.New',
+ typescript: {
+ method: 'client.financialAccounts.interestTierSchedule.create',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tinterestTierSchedule, err := client.FinancialAccounts.InterestTierSchedule.New(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountInterestTierScheduleNewParams{\n\t\t\tInterestTierSchedule: lithic.InterestTierScheduleParam{\n\t\t\t\tCreditProductToken: lithic.F("credit_product_token"),\n\t\t\t\tEffectiveDate: lithic.F(time.Now()),\n\t\t\t},\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", interestTierSchedule.CreditProductToken)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst interestTierSchedule = await client.financialAccounts.interestTierSchedule.create(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { credit_product_token: 'credit_product_token', effective_date: '2019-12-27' },\n);\n\nconsole.log(interestTierSchedule.credit_product_token);",
},
- http: {
+ python: {
+ method: 'financial_accounts.interest_tier_schedule.create',
example:
- 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/interest_tier_schedule \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "credit_product_token": "credit_product_token",\n "effective_date": "2019-12-27"\n }\'',
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ninterest_tier_schedule = client.financial_accounts.interest_tier_schedule.create(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n credit_product_token="credit_product_token",\n effective_date=date.fromisoformat("2019-12-27"),\n)\nprint(interest_tier_schedule.credit_product_token)',
},
java: {
method: 'financialAccounts().interestTierSchedule().create',
@@ -5749,20 +5750,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountInterestTierScheduleCreateParams\nimport com.lithic.api.models.InterestTierSchedule\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FinancialAccountInterestTierScheduleCreateParams = FinancialAccountInterestTierScheduleCreateParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .interestTierSchedule(InterestTierSchedule.builder()\n .creditProductToken("credit_product_token")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build())\n .build()\n val interestTierSchedule: InterestTierSchedule = client.financialAccounts().interestTierSchedule().create(params)\n}',
},
- python: {
- method: 'financial_accounts.interest_tier_schedule.create',
+ go: {
+ method: 'client.FinancialAccounts.InterestTierSchedule.New',
example:
- 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ninterest_tier_schedule = client.financial_accounts.interest_tier_schedule.create(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n credit_product_token="credit_product_token",\n effective_date=date.fromisoformat("2019-12-27"),\n)\nprint(interest_tier_schedule.credit_product_token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tinterestTierSchedule, err := client.FinancialAccounts.InterestTierSchedule.New(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.FinancialAccountInterestTierScheduleNewParams{\n\t\t\tInterestTierSchedule: lithic.InterestTierScheduleParam{\n\t\t\t\tCreditProductToken: lithic.F("credit_product_token"),\n\t\t\t\tEffectiveDate: lithic.F(time.Now()),\n\t\t\t},\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", interestTierSchedule.CreditProductToken)\n}\n',
},
ruby: {
method: 'financial_accounts.interest_tier_schedule.create',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ninterest_tier_schedule = lithic.financial_accounts.interest_tier_schedule.create(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n credit_product_token: "credit_product_token",\n effective_date: "2019-12-27"\n)\n\nputs(interest_tier_schedule)',
},
- typescript: {
- method: 'client.financialAccounts.interestTierSchedule.create',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst interestTierSchedule = await client.financialAccounts.interestTierSchedule.create(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { credit_product_token: 'credit_product_token', effective_date: '2019-12-27' },\n);\n\nconsole.log(interestTierSchedule.credit_product_token);",
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/interest_tier_schedule \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "credit_product_token": "credit_product_token",\n "effective_date": "2019-12-27"\n }\'',
},
},
},
@@ -5780,14 +5780,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.financialAccounts.interestTierSchedule.retrieve(financial_account_token: string, effective_date: string): { credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/interest_tier_schedule/{effective_date}`\n\nGet a specific interest tier schedule by effective date\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `effective_date: string`\n\n### Returns\n\n- `{ credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n Entry in the Tier Schedule of an account\n\n - `credit_product_token: string`\n - `effective_date: string`\n - `penalty_rates?: object`\n - `tier_name?: string`\n - `tier_rates?: object`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst interestTierSchedule = await client.financialAccounts.interestTierSchedule.retrieve('2019-12-27', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(interestTierSchedule);\n```",
perLanguage: {
- go: {
- method: 'client.FinancialAccounts.InterestTierSchedule.Get',
+ typescript: {
+ method: 'client.financialAccounts.interestTierSchedule.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tinterestTierSchedule, err := client.FinancialAccounts.InterestTierSchedule.Get(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\ttime.Now(),\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", interestTierSchedule.CreditProductToken)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst interestTierSchedule = await client.financialAccounts.interestTierSchedule.retrieve(\n '2019-12-27',\n { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(interestTierSchedule.credit_product_token);",
},
- http: {
+ python: {
+ method: 'financial_accounts.interest_tier_schedule.retrieve',
example:
- 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/interest_tier_schedule/$EFFECTIVE_DATE \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ninterest_tier_schedule = client.financial_accounts.interest_tier_schedule.retrieve(\n effective_date=date.fromisoformat("2019-12-27"),\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(interest_tier_schedule.credit_product_token)',
},
java: {
method: 'financialAccounts().interestTierSchedule().retrieve',
@@ -5799,20 +5800,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountInterestTierScheduleRetrieveParams\nimport com.lithic.api.models.InterestTierSchedule\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FinancialAccountInterestTierScheduleRetrieveParams = FinancialAccountInterestTierScheduleRetrieveParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build()\n val interestTierSchedule: InterestTierSchedule = client.financialAccounts().interestTierSchedule().retrieve(params)\n}',
},
- python: {
- method: 'financial_accounts.interest_tier_schedule.retrieve',
+ go: {
+ method: 'client.FinancialAccounts.InterestTierSchedule.Get',
example:
- 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ninterest_tier_schedule = client.financial_accounts.interest_tier_schedule.retrieve(\n effective_date=date.fromisoformat("2019-12-27"),\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(interest_tier_schedule.credit_product_token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tinterestTierSchedule, err := client.FinancialAccounts.InterestTierSchedule.Get(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\ttime.Now(),\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", interestTierSchedule.CreditProductToken)\n}\n',
},
ruby: {
method: 'financial_accounts.interest_tier_schedule.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ninterest_tier_schedule = lithic.financial_accounts.interest_tier_schedule.retrieve(\n "2019-12-27",\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(interest_tier_schedule)',
},
- typescript: {
- method: 'client.financialAccounts.interestTierSchedule.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst interestTierSchedule = await client.financialAccounts.interestTierSchedule.retrieve(\n '2019-12-27',\n { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(interestTierSchedule.credit_product_token);",
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/interest_tier_schedule/$EFFECTIVE_DATE \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -5836,14 +5836,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## update\n\n`client.financialAccounts.interestTierSchedule.update(financial_account_token: string, effective_date: string, penalty_rates?: object, tier_name?: string, tier_rates?: object): { credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n\n**put** `/v1/financial_accounts/{financial_account_token}/interest_tier_schedule/{effective_date}`\n\nUpdate an existing interest tier schedule\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `effective_date: string`\n\n- `penalty_rates?: object`\n Custom rates per category for penalties\n\n- `tier_name?: string`\n Name of a tier contained in the credit product. Mutually exclusive with tier_rates\n\n- `tier_rates?: object`\n Custom rates per category. Mutually exclusive with tier_name\n\n### Returns\n\n- `{ credit_product_token: string; effective_date: string; penalty_rates?: object; tier_name?: string; tier_rates?: object; }`\n Entry in the Tier Schedule of an account\n\n - `credit_product_token: string`\n - `effective_date: string`\n - `penalty_rates?: object`\n - `tier_name?: string`\n - `tier_rates?: object`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst interestTierSchedule = await client.financialAccounts.interestTierSchedule.update('2019-12-27', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(interestTierSchedule);\n```",
perLanguage: {
- go: {
- method: 'client.FinancialAccounts.InterestTierSchedule.Update',
+ typescript: {
+ method: 'client.financialAccounts.interestTierSchedule.update',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tinterestTierSchedule, err := client.FinancialAccounts.InterestTierSchedule.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\ttime.Now(),\n\t\tlithic.FinancialAccountInterestTierScheduleUpdateParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", interestTierSchedule.CreditProductToken)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst interestTierSchedule = await client.financialAccounts.interestTierSchedule.update(\n '2019-12-27',\n { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(interestTierSchedule.credit_product_token);",
},
- http: {
+ python: {
+ method: 'financial_accounts.interest_tier_schedule.update',
example:
- "curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/interest_tier_schedule/$EFFECTIVE_DATE \\\n -X PUT \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ninterest_tier_schedule = client.financial_accounts.interest_tier_schedule.update(\n effective_date=date.fromisoformat("2019-12-27"),\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(interest_tier_schedule.credit_product_token)',
},
java: {
method: 'financialAccounts().interestTierSchedule().update',
@@ -5855,20 +5856,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountInterestTierScheduleUpdateParams\nimport com.lithic.api.models.InterestTierSchedule\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FinancialAccountInterestTierScheduleUpdateParams = FinancialAccountInterestTierScheduleUpdateParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build()\n val interestTierSchedule: InterestTierSchedule = client.financialAccounts().interestTierSchedule().update(params)\n}',
},
- python: {
- method: 'financial_accounts.interest_tier_schedule.update',
+ go: {
+ method: 'client.FinancialAccounts.InterestTierSchedule.Update',
example:
- 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ninterest_tier_schedule = client.financial_accounts.interest_tier_schedule.update(\n effective_date=date.fromisoformat("2019-12-27"),\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(interest_tier_schedule.credit_product_token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tinterestTierSchedule, err := client.FinancialAccounts.InterestTierSchedule.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\ttime.Now(),\n\t\tlithic.FinancialAccountInterestTierScheduleUpdateParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", interestTierSchedule.CreditProductToken)\n}\n',
},
ruby: {
method: 'financial_accounts.interest_tier_schedule.update',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ninterest_tier_schedule = lithic.financial_accounts.interest_tier_schedule.update(\n "2019-12-27",\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(interest_tier_schedule)',
},
- typescript: {
- method: 'client.financialAccounts.interestTierSchedule.update',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst interestTierSchedule = await client.financialAccounts.interestTierSchedule.update(\n '2019-12-27',\n { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(interestTierSchedule.credit_product_token);",
+ "curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/interest_tier_schedule/$EFFECTIVE_DATE \\\n -X PUT \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
},
},
},
@@ -5885,14 +5885,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## delete\n\n`client.financialAccounts.interestTierSchedule.delete(financial_account_token: string, effective_date: string): void`\n\n**delete** `/v1/financial_accounts/{financial_account_token}/interest_tier_schedule/{effective_date}`\n\nDelete an interest tier schedule entry.\n\nReturns:\n- 400 Bad Request: Invalid effective_date format OR attempting to delete the earliest\n tier schedule entry for a non-PENDING account\n- 404 Not Found: Tier schedule entry not found for the given effective_date OR ledger account not found\n\nNote: PENDING accounts can delete the earliest tier schedule entry (account hasn't opened yet).\nActive/non-PENDING accounts cannot delete the earliest entry to prevent orphaning the account.\n\nIf the deleted tier schedule has a past effective_date and the account is ACTIVE,\nthe loan tape rebuild configuration will be updated to trigger rebuilds from that date.\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `effective_date: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.financialAccounts.interestTierSchedule.delete('2019-12-27', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' })\n```",
perLanguage: {
- go: {
- method: 'client.FinancialAccounts.InterestTierSchedule.Delete',
+ typescript: {
+ method: 'client.financialAccounts.interestTierSchedule.delete',
example:
- 'package main\n\nimport (\n\t"context"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.FinancialAccounts.InterestTierSchedule.Delete(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\ttime.Now(),\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.financialAccounts.interestTierSchedule.delete('2019-12-27', {\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});",
},
- http: {
+ python: {
+ method: 'financial_accounts.interest_tier_schedule.delete',
example:
- 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/interest_tier_schedule/$EFFECTIVE_DATE \\\n -X DELETE \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.financial_accounts.interest_tier_schedule.delete(\n effective_date=date.fromisoformat("2019-12-27"),\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)',
},
java: {
method: 'financialAccounts().interestTierSchedule().delete',
@@ -5904,20 +5905,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FinancialAccountInterestTierScheduleDeleteParams\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FinancialAccountInterestTierScheduleDeleteParams = FinancialAccountInterestTierScheduleDeleteParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build()\n client.financialAccounts().interestTierSchedule().delete(params)\n}',
},
- python: {
- method: 'financial_accounts.interest_tier_schedule.delete',
+ go: {
+ method: 'client.FinancialAccounts.InterestTierSchedule.Delete',
example:
- 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.financial_accounts.interest_tier_schedule.delete(\n effective_date=date.fromisoformat("2019-12-27"),\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)',
+ 'package main\n\nimport (\n\t"context"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.FinancialAccounts.InterestTierSchedule.Delete(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\ttime.Now(),\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
},
ruby: {
method: 'financial_accounts.interest_tier_schedule.delete',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.financial_accounts.interest_tier_schedule.delete(\n "2019-12-27",\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(result)',
},
- typescript: {
- method: 'client.financialAccounts.interestTierSchedule.delete',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.financialAccounts.interestTierSchedule.delete('2019-12-27', {\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});",
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/interest_tier_schedule/$EFFECTIVE_DATE \\\n -X DELETE \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -5946,13 +5946,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.transactions.list(account_token?: string, begin?: string, card_token?: string, end?: string, ending_before?: string, page_size?: number, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'PENDING' | 'VOIDED' | 'SETTLED' | 'DECLINED' | 'EXPIRED'): { token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: object; authorization_amount: number; authorization_code: string; avs: object; card_token: string; cardholder_authentication: cardholder_authentication; created: string; financial_account_token: string; merchant: merchant; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: object; result: string; service_location: object; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: token_info; updated: string; events?: object[]; }`\n\n**get** `/v1/transactions`\n\nList card transactions. All amounts are in the smallest unit of their respective currency (e.g., cents for USD) and inclusive of any acquirer fees.\n\n\n### Parameters\n\n- `account_token?: string`\n Filters for transactions associated with a specific account.\n\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `card_token?: string`\n Filters for transactions associated with a specific card.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `result?: 'APPROVED' | 'DECLINED'`\n Filters for transactions using transaction result field. Can filter by `APPROVED`, and `DECLINED`.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'PENDING' | 'VOIDED' | 'SETTLED' | 'DECLINED' | 'EXPIRED'`\n Filters for transactions using transaction status field.\n\n### Returns\n\n- `{ token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: { cardholder: { amount: number; conversion_rate: string; currency: currency; }; hold: { amount: number; currency: currency; }; merchant: { amount: number; currency: currency; }; settlement: { amount: number; currency: currency; }; }; authorization_amount: number; authorization_code: string; avs: { address: string; zipcode: string; }; card_token: string; cardholder_authentication: { authentication_method: 'FRICTIONLESS' | 'CHALLENGE' | 'NONE'; authentication_result: 'ATTEMPTS' | 'DECLINE' | 'NONE' | 'SUCCESS'; decision_made_by: 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'LITHIC_DEFAULT' | 'LITHIC_RULES' | 'NETWORK' | 'UNKNOWN'; liability_shift: '3DS_AUTHENTICATED' | 'TOKEN_AUTHENTICATED' | 'NONE'; three_ds_authentication_token: string; }; created: string; financial_account_token: string; merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: { entry_mode: { card: 'NOT_PRESENT' | 'PREAUTHORIZED' | 'PRESENT' | 'UNKNOWN'; cardholder: string; pan: string; pin_entered: boolean; }; terminal: { attended: boolean; card_retention_capable: boolean; on_premise: boolean; operator: 'ADMINISTRATIVE' | 'CARDHOLDER' | 'CARD_ACCEPTOR' | 'UNKNOWN'; partial_approval_capable: boolean; pin_capability: 'CAPABLE' | 'INOPERATIVE' | 'NOT_CAPABLE' | 'UNSPECIFIED'; type: string; acceptor_terminal_id?: string; }; }; result: string; service_location: { city: string; country: string; postal_code: string; state: string; street_address: string; }; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: { wallet_type: 'APPLE_PAY' | 'GOOGLE_PAY' | 'MASTERPASS' | 'MERCHANT' | 'OTHER' | 'SAMSUNG_PAY'; }; updated: string; events?: { token: string; amount: number; amounts: { cardholder: object; merchant: object; settlement: object; }; created: string; detailed_results: string[]; effective_polarity: 'CREDIT' | 'DEBIT'; network_info: { acquirer: object; amex: object; mastercard: object; visa: object; }; result: string; rule_results: { auth_rule_token: string; explanation: string; name: string; result: string; }[]; type: string; account_type?: 'CHECKING' | 'SAVINGS'; network_specific_data?: { mastercard: object; visa: object; }; }[]; }`\n\n - `token: string`\n - `account_token: string`\n - `acquirer_fee: number`\n - `acquirer_reference_number: string`\n - `amount: number`\n - `amounts: { cardholder: { amount: number; conversion_rate: string; currency: string; }; hold: { amount: number; currency: string; }; merchant: { amount: number; currency: string; }; settlement: { amount: number; currency: string; }; }`\n - `authorization_amount: number`\n - `authorization_code: string`\n - `avs: { address: string; zipcode: string; }`\n - `card_token: string`\n - `cardholder_authentication: { authentication_method: 'FRICTIONLESS' | 'CHALLENGE' | 'NONE'; authentication_result: 'ATTEMPTS' | 'DECLINE' | 'NONE' | 'SUCCESS'; decision_made_by: 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'LITHIC_DEFAULT' | 'LITHIC_RULES' | 'NETWORK' | 'UNKNOWN'; liability_shift: '3DS_AUTHENTICATED' | 'TOKEN_AUTHENTICATED' | 'NONE'; three_ds_authentication_token: string; }`\n - `created: string`\n - `financial_account_token: string`\n - `merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }`\n - `merchant_amount: number`\n - `merchant_authorization_amount: number`\n - `merchant_currency: string`\n - `network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'`\n - `network_risk_score: number`\n - `pos: { entry_mode: { card: 'NOT_PRESENT' | 'PREAUTHORIZED' | 'PRESENT' | 'UNKNOWN'; cardholder: string; pan: string; pin_entered: boolean; }; terminal: { attended: boolean; card_retention_capable: boolean; on_premise: boolean; operator: 'ADMINISTRATIVE' | 'CARDHOLDER' | 'CARD_ACCEPTOR' | 'UNKNOWN'; partial_approval_capable: boolean; pin_capability: 'CAPABLE' | 'INOPERATIVE' | 'NOT_CAPABLE' | 'UNSPECIFIED'; type: string; acceptor_terminal_id?: string; }; }`\n - `result: string`\n - `service_location: { city: string; country: string; postal_code: string; state: string; street_address: string; }`\n - `settled_amount: number`\n - `status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'`\n - `tags: object`\n - `token_info: { wallet_type: 'APPLE_PAY' | 'GOOGLE_PAY' | 'MASTERPASS' | 'MERCHANT' | 'OTHER' | 'SAMSUNG_PAY'; }`\n - `updated: string`\n - `events?: { token: string; amount: number; amounts: { cardholder: { amount: number; conversion_rate: string; currency: string; }; merchant: { amount: number; currency: string; }; settlement: { amount: number; conversion_rate: string; currency: string; }; }; created: string; detailed_results: string[]; effective_polarity: 'CREDIT' | 'DEBIT'; network_info: { acquirer: { acquirer_reference_number: string; retrieval_reference_number: string; }; amex: { original_transaction_id: string; transaction_id: string; }; mastercard: { banknet_reference_number: string; original_banknet_reference_number: string; original_switch_serial_number: string; switch_serial_number: string; }; visa: { original_transaction_id: string; transaction_id: string; }; }; result: string; rule_results: { auth_rule_token: string; explanation: string; name: string; result: string; }[]; type: string; account_type?: 'CHECKING' | 'SAVINGS'; network_specific_data?: { mastercard: { ecommerce_security_level_indicator: string; on_behalf_service_result: { result_1: string; result_2: string; service: string; }[]; transaction_type_identifier: string; }; visa: { business_application_identifier: string; }; }; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const transaction of client.transactions.list()) {\n console.log(transaction);\n}\n```",
perLanguage: {
- go: {
- method: 'client.Transactions.List',
+ typescript: {
+ method: 'client.transactions.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Transactions.List(context.TODO(), lithic.TransactionListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const transaction of client.transactions.list()) {\n console.log(transaction.token);\n}",
},
- http: {
- example: 'curl https://api.lithic.com/v1/transactions \\\n -H "Authorization: $LITHIC_API_KEY"',
+ python: {
+ method: 'transactions.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.transactions.list()\npage = page.data[0]\nprint(page.token)',
},
java: {
method: 'transactions().list',
@@ -5964,20 +5966,18 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TransactionListPage\nimport com.lithic.api.models.TransactionListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: TransactionListPage = client.transactions().list()\n}',
},
- python: {
- method: 'transactions.list',
+ go: {
+ method: 'client.Transactions.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.transactions.list()\npage = page.data[0]\nprint(page.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Transactions.List(context.TODO(), lithic.TransactionListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'transactions.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.transactions.list\n\nputs(page)',
},
- typescript: {
- method: 'client.transactions.list',
- example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const transaction of client.transactions.list()) {\n console.log(transaction.token);\n}",
+ http: {
+ example: 'curl https://api.lithic.com/v1/transactions \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -5996,14 +5996,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.transactions.retrieve(transaction_token: string): { token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: object; authorization_amount: number; authorization_code: string; avs: object; card_token: string; cardholder_authentication: cardholder_authentication; created: string; financial_account_token: string; merchant: merchant; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: object; result: string; service_location: object; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: token_info; updated: string; events?: object[]; }`\n\n**get** `/v1/transactions/{transaction_token}`\n\nGet a specific card transaction. All amounts are in the smallest unit of their respective currency (e.g., cents for USD).\n\n\n### Parameters\n\n- `transaction_token: string`\n\n### Returns\n\n- `{ token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: { cardholder: { amount: number; conversion_rate: string; currency: currency; }; hold: { amount: number; currency: currency; }; merchant: { amount: number; currency: currency; }; settlement: { amount: number; currency: currency; }; }; authorization_amount: number; authorization_code: string; avs: { address: string; zipcode: string; }; card_token: string; cardholder_authentication: { authentication_method: 'FRICTIONLESS' | 'CHALLENGE' | 'NONE'; authentication_result: 'ATTEMPTS' | 'DECLINE' | 'NONE' | 'SUCCESS'; decision_made_by: 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'LITHIC_DEFAULT' | 'LITHIC_RULES' | 'NETWORK' | 'UNKNOWN'; liability_shift: '3DS_AUTHENTICATED' | 'TOKEN_AUTHENTICATED' | 'NONE'; three_ds_authentication_token: string; }; created: string; financial_account_token: string; merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: { entry_mode: { card: 'NOT_PRESENT' | 'PREAUTHORIZED' | 'PRESENT' | 'UNKNOWN'; cardholder: string; pan: string; pin_entered: boolean; }; terminal: { attended: boolean; card_retention_capable: boolean; on_premise: boolean; operator: 'ADMINISTRATIVE' | 'CARDHOLDER' | 'CARD_ACCEPTOR' | 'UNKNOWN'; partial_approval_capable: boolean; pin_capability: 'CAPABLE' | 'INOPERATIVE' | 'NOT_CAPABLE' | 'UNSPECIFIED'; type: string; acceptor_terminal_id?: string; }; }; result: string; service_location: { city: string; country: string; postal_code: string; state: string; street_address: string; }; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: { wallet_type: 'APPLE_PAY' | 'GOOGLE_PAY' | 'MASTERPASS' | 'MERCHANT' | 'OTHER' | 'SAMSUNG_PAY'; }; updated: string; events?: { token: string; amount: number; amounts: { cardholder: object; merchant: object; settlement: object; }; created: string; detailed_results: string[]; effective_polarity: 'CREDIT' | 'DEBIT'; network_info: { acquirer: object; amex: object; mastercard: object; visa: object; }; result: string; rule_results: { auth_rule_token: string; explanation: string; name: string; result: string; }[]; type: string; account_type?: 'CHECKING' | 'SAVINGS'; network_specific_data?: { mastercard: object; visa: object; }; }[]; }`\n\n - `token: string`\n - `account_token: string`\n - `acquirer_fee: number`\n - `acquirer_reference_number: string`\n - `amount: number`\n - `amounts: { cardholder: { amount: number; conversion_rate: string; currency: string; }; hold: { amount: number; currency: string; }; merchant: { amount: number; currency: string; }; settlement: { amount: number; currency: string; }; }`\n - `authorization_amount: number`\n - `authorization_code: string`\n - `avs: { address: string; zipcode: string; }`\n - `card_token: string`\n - `cardholder_authentication: { authentication_method: 'FRICTIONLESS' | 'CHALLENGE' | 'NONE'; authentication_result: 'ATTEMPTS' | 'DECLINE' | 'NONE' | 'SUCCESS'; decision_made_by: 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'LITHIC_DEFAULT' | 'LITHIC_RULES' | 'NETWORK' | 'UNKNOWN'; liability_shift: '3DS_AUTHENTICATED' | 'TOKEN_AUTHENTICATED' | 'NONE'; three_ds_authentication_token: string; }`\n - `created: string`\n - `financial_account_token: string`\n - `merchant: { acceptor_id: string; acquiring_institution_id: string; city: string; country: string; descriptor: string; mcc: string; state: string; }`\n - `merchant_amount: number`\n - `merchant_authorization_amount: number`\n - `merchant_currency: string`\n - `network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'`\n - `network_risk_score: number`\n - `pos: { entry_mode: { card: 'NOT_PRESENT' | 'PREAUTHORIZED' | 'PRESENT' | 'UNKNOWN'; cardholder: string; pan: string; pin_entered: boolean; }; terminal: { attended: boolean; card_retention_capable: boolean; on_premise: boolean; operator: 'ADMINISTRATIVE' | 'CARDHOLDER' | 'CARD_ACCEPTOR' | 'UNKNOWN'; partial_approval_capable: boolean; pin_capability: 'CAPABLE' | 'INOPERATIVE' | 'NOT_CAPABLE' | 'UNSPECIFIED'; type: string; acceptor_terminal_id?: string; }; }`\n - `result: string`\n - `service_location: { city: string; country: string; postal_code: string; state: string; street_address: string; }`\n - `settled_amount: number`\n - `status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'`\n - `tags: object`\n - `token_info: { wallet_type: 'APPLE_PAY' | 'GOOGLE_PAY' | 'MASTERPASS' | 'MERCHANT' | 'OTHER' | 'SAMSUNG_PAY'; }`\n - `updated: string`\n - `events?: { token: string; amount: number; amounts: { cardholder: { amount: number; conversion_rate: string; currency: string; }; merchant: { amount: number; currency: string; }; settlement: { amount: number; conversion_rate: string; currency: string; }; }; created: string; detailed_results: string[]; effective_polarity: 'CREDIT' | 'DEBIT'; network_info: { acquirer: { acquirer_reference_number: string; retrieval_reference_number: string; }; amex: { original_transaction_id: string; transaction_id: string; }; mastercard: { banknet_reference_number: string; original_banknet_reference_number: string; original_switch_serial_number: string; switch_serial_number: string; }; visa: { original_transaction_id: string; transaction_id: string; }; }; result: string; rule_results: { auth_rule_token: string; explanation: string; name: string; result: string; }[]; type: string; account_type?: 'CHECKING' | 'SAVINGS'; network_specific_data?: { mastercard: { ecommerce_security_level_indicator: string; on_behalf_service_result: { result_1: string; result_2: string; service: string; }[]; transaction_type_identifier: string; }; visa: { business_application_identifier: string; }; }; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst transaction = await client.transactions.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(transaction);\n```",
perLanguage: {
- go: {
- method: 'client.Transactions.Get',
+ typescript: {
+ method: 'client.transactions.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\ttransaction, err := client.Transactions.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", transaction.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst transaction = await client.transactions.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(transaction.token);",
},
- http: {
+ python: {
+ method: 'transactions.retrieve',
example:
- 'curl https://api.lithic.com/v1/transactions/$TRANSACTION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ntransaction = client.transactions.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(transaction.token)',
},
java: {
method: 'transactions().retrieve',
@@ -6015,20 +6016,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Transaction\nimport com.lithic.api.models.TransactionRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val transaction: Transaction = client.transactions().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'transactions.retrieve',
+ go: {
+ method: 'client.Transactions.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ntransaction = client.transactions.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(transaction.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\ttransaction, err := client.Transactions.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", transaction.Token)\n}\n',
},
ruby: {
method: 'transactions.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ntransaction = lithic.transactions.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(transaction)',
},
- typescript: {
- method: 'client.transactions.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst transaction = await client.transactions.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(transaction.token);",
+ 'curl https://api.lithic.com/v1/transactions/$TRANSACTION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -6060,14 +6060,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## simulate_authorization\n\n`client.transactions.simulateAuthorization(amount: number, descriptor: string, pan: string, mcc?: string, merchant_acceptor_city?: string, merchant_acceptor_country?: string, merchant_acceptor_id?: string, merchant_acceptor_state?: string, merchant_amount?: number, merchant_currency?: string, partial_approval_capable?: boolean, pin?: string, status?: string): { token?: string; debugging_request_id?: string; }`\n\n**post** `/v1/simulate/authorize`\n\nSimulates an authorization request from the card network as if it came from a merchant acquirer.\nIf you are configured for ASA, simulating authorizations requires your ASA client to be set up properly, i.e. be able to respond to the ASA request with a valid JSON. For users that are not configured for ASA, a daily transaction limit of $5000 USD is applied by default. You can update this limit via the [update account](https://docs.lithic.com/reference/patchaccountbytoken) endpoint.\n\n\n### Parameters\n\n- `amount: number`\n Amount (in cents) to authorize. For credit authorizations and financial credit authorizations, any value entered will be converted into a negative amount in the simulated transaction. For example, entering 100 in this field will result in a -100 amount in the transaction. For balance inquiries, this field must be set to 0.\n\n- `descriptor: string`\n Merchant descriptor.\n\n- `pan: string`\n Sixteen digit card number.\n\n- `mcc?: string`\n Merchant category code for the transaction to be simulated. A four-digit number listed in ISO 18245.\nSupported merchant category codes can be found [here](https://docs.lithic.com/docs/transactions#merchant-category-codes-mccs).\n\n\n- `merchant_acceptor_city?: string`\n Merchant acceptor city\n\n- `merchant_acceptor_country?: string`\n Merchant acceptor country code (ISO 3166-1 alpha-3)\n\n- `merchant_acceptor_id?: string`\n Unique identifier to identify the payment card acceptor.\n\n- `merchant_acceptor_state?: string`\n Merchant acceptor state/province (ISO 3166-2 subdivision code)\n\n- `merchant_amount?: number`\n Amount of the transaction to be simulated in currency specified in merchant_currency, including any acquirer fees.\n\n- `merchant_currency?: string`\n 3-character alphabetic ISO 4217 currency code. Note: Simulator only accepts USD, GBP, EUR and defaults to GBP if another ISO 4217 code is provided\n\n- `partial_approval_capable?: boolean`\n Set to true if the terminal is capable of partial approval otherwise false.\nPartial approval is when part of a transaction is approved and another\npayment must be used for the remainder.\n\n\n- `pin?: string`\n Simulate entering a PIN. If omitted, PIN check will not be performed.\n\n- `status?: string`\n Type of event to simulate.\n* `AUTHORIZATION` is a dual message purchase authorization, meaning a subsequent clearing step is required to settle the transaction.\n* `BALANCE_INQUIRY` is a $0 authorization requesting the balance held on the card, and is most often observed when a cardholder requests to view a card's balance at an ATM.\n* `CREDIT_AUTHORIZATION` is a dual message request from a merchant to authorize a refund, meaning a subsequent clearing step is required to settle the transaction.\n* `FINANCIAL_AUTHORIZATION` is a single message request from a merchant to debit funds immediately (such as an ATM withdrawal), and no subsequent clearing is required to settle the transaction.\n* `FINANCIAL_CREDIT_AUTHORIZATION` is a single message request from a merchant to credit funds immediately, and no subsequent clearing is required to settle the transaction.\n\n### Returns\n\n- `{ token?: string; debugging_request_id?: string; }`\n\n - `token?: string`\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateAuthorization({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n});\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.Transactions.SimulateAuthorization',
+ typescript: {
+ method: 'client.transactions.simulateAuthorization',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateAuthorization(context.TODO(), lithic.TransactionSimulateAuthorizationParams{\n\t\tAmount: lithic.F(int64(3831)),\n\t\tDescriptor: lithic.F("COFFEE SHOP"),\n\t\tPan: lithic.F("4111111289144142"),\n\t\tMerchantAcceptorCity: lithic.F("LOS ANGELES"),\n\t\tMerchantAcceptorCountry: lithic.F("USA"),\n\t\tMerchantAcceptorState: lithic.F("CA"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateAuthorization({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n merchant_acceptor_city: 'LOS ANGELES',\n merchant_acceptor_country: 'USA',\n merchant_acceptor_state: 'CA',\n});\n\nconsole.log(response.debugging_request_id);",
},
- http: {
+ python: {
+ method: 'transactions.simulate_authorization',
example:
- 'curl https://api.lithic.com/v1/simulate/authorize \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 3831,\n "descriptor": "COFFEE SHOP",\n "pan": "4111111289144142",\n "mcc": "5812",\n "merchant_acceptor_city": "LOS ANGELES",\n "merchant_acceptor_country": "USA",\n "merchant_acceptor_id": "OODKZAPJVN4YS7O",\n "merchant_acceptor_state": "CA",\n "merchant_currency": "GBP",\n "pin": "1234",\n "status": "AUTHORIZATION"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_authorization(\n amount=3831,\n descriptor="COFFEE SHOP",\n pan="4111111289144142",\n merchant_acceptor_city="LOS ANGELES",\n merchant_acceptor_country="USA",\n merchant_acceptor_state="CA",\n)\nprint(response.debugging_request_id)',
},
java: {
method: 'transactions().simulateAuthorization',
@@ -6079,20 +6080,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TransactionSimulateAuthorizationParams\nimport com.lithic.api.models.TransactionSimulateAuthorizationResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: TransactionSimulateAuthorizationParams = TransactionSimulateAuthorizationParams.builder()\n .amount(3831L)\n .descriptor("COFFEE SHOP")\n .pan("4111111289144142")\n .build()\n val response: TransactionSimulateAuthorizationResponse = client.transactions().simulateAuthorization(params)\n}',
},
- python: {
- method: 'transactions.simulate_authorization',
+ go: {
+ method: 'client.Transactions.SimulateAuthorization',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_authorization(\n amount=3831,\n descriptor="COFFEE SHOP",\n pan="4111111289144142",\n merchant_acceptor_city="LOS ANGELES",\n merchant_acceptor_country="USA",\n merchant_acceptor_state="CA",\n)\nprint(response.debugging_request_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateAuthorization(context.TODO(), lithic.TransactionSimulateAuthorizationParams{\n\t\tAmount: lithic.F(int64(3831)),\n\t\tDescriptor: lithic.F("COFFEE SHOP"),\n\t\tPan: lithic.F("4111111289144142"),\n\t\tMerchantAcceptorCity: lithic.F("LOS ANGELES"),\n\t\tMerchantAcceptorCountry: lithic.F("USA"),\n\t\tMerchantAcceptorState: lithic.F("CA"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
},
ruby: {
method: 'transactions.simulate_authorization',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.transactions.simulate_authorization(\n amount: 3831,\n descriptor: "COFFEE SHOP",\n pan: "4111111289144142"\n)\n\nputs(response)',
},
- typescript: {
- method: 'client.transactions.simulateAuthorization',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateAuthorization({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n merchant_acceptor_city: 'LOS ANGELES',\n merchant_acceptor_country: 'USA',\n merchant_acceptor_state: 'CA',\n});\n\nconsole.log(response.debugging_request_id);",
+ 'curl https://api.lithic.com/v1/simulate/authorize \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 3831,\n "descriptor": "COFFEE SHOP",\n "pan": "4111111289144142",\n "mcc": "5812",\n "merchant_acceptor_city": "LOS ANGELES",\n "merchant_acceptor_country": "USA",\n "merchant_acceptor_id": "OODKZAPJVN4YS7O",\n "merchant_acceptor_state": "CA",\n "merchant_currency": "GBP",\n "pin": "1234",\n "status": "AUTHORIZATION"\n }\'',
},
},
},
@@ -6110,14 +6110,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## simulate_clearing\n\n`client.transactions.simulateClearing(token: string, amount?: number): { debugging_request_id?: string; }`\n\n**post** `/v1/simulate/clearing`\n\nClears an existing authorization, either debit or credit. After this event, the transaction transitions from `PENDING` to `SETTLED` status.\n\nIf `amount` is not set, the full amount of the transaction will be cleared. Transactions that have already cleared, either partially or fully, cannot be cleared again using this endpoint.\n\n\n### Parameters\n\n- `token: string`\n The transaction token returned from the /v1/simulate/authorize response.\n\n- `amount?: number`\n Amount (in cents) to clear. Typically this will match the amount in the original authorization, but can be higher or lower. The sign of this amount will automatically match the sign of the original authorization's amount. For example, entering 100 in this field will result in a -100 amount in the transaction, if the original authorization is a credit authorization.\n\nIf `amount` is not set, the full amount of the transaction will be cleared. Transactions that have already cleared, either partially or fully, cannot be cleared again using this endpoint.\n\n\n### Returns\n\n- `{ debugging_request_id?: string; }`\n\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateClearing({ token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac' });\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.Transactions.SimulateClearing',
+ typescript: {
+ method: 'client.transactions.simulateClearing',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateClearing(context.TODO(), lithic.TransactionSimulateClearingParams{\n\t\tToken: lithic.F("fabd829d-7f7b-4432-a8f2-07ea4889aaac"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateClearing({\n token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac',\n});\n\nconsole.log(response.debugging_request_id);",
},
- http: {
+ python: {
+ method: 'transactions.simulate_clearing',
example:
- 'curl https://api.lithic.com/v1/simulate/clearing \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "token": "fabd829d-7f7b-4432-a8f2-07ea4889aaac"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_clearing(\n token="fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n amount=0,\n)\nprint(response.debugging_request_id)',
},
java: {
method: 'transactions().simulateClearing',
@@ -6129,20 +6130,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TransactionSimulateClearingParams\nimport com.lithic.api.models.TransactionSimulateClearingResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: TransactionSimulateClearingParams = TransactionSimulateClearingParams.builder()\n .token("fabd829d-7f7b-4432-a8f2-07ea4889aaac")\n .build()\n val response: TransactionSimulateClearingResponse = client.transactions().simulateClearing(params)\n}',
},
- python: {
- method: 'transactions.simulate_clearing',
+ go: {
+ method: 'client.Transactions.SimulateClearing',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_clearing(\n token="fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n amount=0,\n)\nprint(response.debugging_request_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateClearing(context.TODO(), lithic.TransactionSimulateClearingParams{\n\t\tToken: lithic.F("fabd829d-7f7b-4432-a8f2-07ea4889aaac"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
},
ruby: {
method: 'transactions.simulate_clearing',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.transactions.simulate_clearing(token: "fabd829d-7f7b-4432-a8f2-07ea4889aaac")\n\nputs(response)',
},
- typescript: {
- method: 'client.transactions.simulateClearing',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateClearing({\n token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac',\n});\n\nconsole.log(response.debugging_request_id);",
+ 'curl https://api.lithic.com/v1/simulate/clearing \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "token": "fabd829d-7f7b-4432-a8f2-07ea4889aaac"\n }\'',
},
},
},
@@ -6160,14 +6160,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## simulate_return\n\n`client.transactions.simulateReturn(amount: number, descriptor: string, pan: string): { token?: string; debugging_request_id?: string; }`\n\n**post** `/v1/simulate/return`\n\nReturns, or refunds, an amount back to a card. Returns simulated via this endpoint clear immediately, without prior authorization, and result in a `SETTLED` transaction status.\n\n\n### Parameters\n\n- `amount: number`\n Amount (in cents) to authorize.\n\n- `descriptor: string`\n Merchant descriptor.\n\n- `pan: string`\n Sixteen digit card number.\n\n### Returns\n\n- `{ token?: string; debugging_request_id?: string; }`\n\n - `token?: string`\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateReturn({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n});\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.Transactions.SimulateReturn',
+ typescript: {
+ method: 'client.transactions.simulateReturn',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateReturn(context.TODO(), lithic.TransactionSimulateReturnParams{\n\t\tAmount: lithic.F(int64(3831)),\n\t\tDescriptor: lithic.F("COFFEE SHOP"),\n\t\tPan: lithic.F("4111111289144142"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateReturn({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n});\n\nconsole.log(response.debugging_request_id);",
},
- http: {
+ python: {
+ method: 'transactions.simulate_return',
example:
- 'curl https://api.lithic.com/v1/simulate/return \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 3831,\n "descriptor": "COFFEE SHOP",\n "pan": "4111111289144142"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_return(\n amount=3831,\n descriptor="COFFEE SHOP",\n pan="4111111289144142",\n)\nprint(response.debugging_request_id)',
},
java: {
method: 'transactions().simulateReturn',
@@ -6179,20 +6180,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TransactionSimulateReturnParams\nimport com.lithic.api.models.TransactionSimulateReturnResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: TransactionSimulateReturnParams = TransactionSimulateReturnParams.builder()\n .amount(3831L)\n .descriptor("COFFEE SHOP")\n .pan("4111111289144142")\n .build()\n val response: TransactionSimulateReturnResponse = client.transactions().simulateReturn(params)\n}',
},
- python: {
- method: 'transactions.simulate_return',
+ go: {
+ method: 'client.Transactions.SimulateReturn',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_return(\n amount=3831,\n descriptor="COFFEE SHOP",\n pan="4111111289144142",\n)\nprint(response.debugging_request_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateReturn(context.TODO(), lithic.TransactionSimulateReturnParams{\n\t\tAmount: lithic.F(int64(3831)),\n\t\tDescriptor: lithic.F("COFFEE SHOP"),\n\t\tPan: lithic.F("4111111289144142"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
},
ruby: {
method: 'transactions.simulate_return',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.transactions.simulate_return(amount: 3831, descriptor: "COFFEE SHOP", pan: "4111111289144142")\n\nputs(response)',
},
- typescript: {
- method: 'client.transactions.simulateReturn',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateReturn({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n});\n\nconsole.log(response.debugging_request_id);",
+ 'curl https://api.lithic.com/v1/simulate/return \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 3831,\n "descriptor": "COFFEE SHOP",\n "pan": "4111111289144142"\n }\'',
},
},
},
@@ -6210,14 +6210,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## simulate_return_reversal\n\n`client.transactions.simulateReturnReversal(token: string): { debugging_request_id?: string; }`\n\n**post** `/v1/simulate/return_reversal`\n\nReverses a return, i.e. a credit transaction with a `SETTLED` status. Returns can be financial credit authorizations, or credit authorizations that have cleared.\n\n\n### Parameters\n\n- `token: string`\n The transaction token returned from the /v1/simulate/authorize response.\n\n### Returns\n\n- `{ debugging_request_id?: string; }`\n\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateReturnReversal({ token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac' });\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.Transactions.SimulateReturnReversal',
+ typescript: {
+ method: 'client.transactions.simulateReturnReversal',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateReturnReversal(context.TODO(), lithic.TransactionSimulateReturnReversalParams{\n\t\tToken: lithic.F("fabd829d-7f7b-4432-a8f2-07ea4889aaac"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateReturnReversal({\n token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac',\n});\n\nconsole.log(response.debugging_request_id);",
},
- http: {
+ python: {
+ method: 'transactions.simulate_return_reversal',
example:
- 'curl https://api.lithic.com/v1/simulate/return_reversal \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "token": "fabd829d-7f7b-4432-a8f2-07ea4889aaac"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_return_reversal(\n token="fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n)\nprint(response.debugging_request_id)',
},
java: {
method: 'transactions().simulateReturnReversal',
@@ -6229,20 +6230,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TransactionSimulateReturnReversalParams\nimport com.lithic.api.models.TransactionSimulateReturnReversalResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: TransactionSimulateReturnReversalParams = TransactionSimulateReturnReversalParams.builder()\n .token("fabd829d-7f7b-4432-a8f2-07ea4889aaac")\n .build()\n val response: TransactionSimulateReturnReversalResponse = client.transactions().simulateReturnReversal(params)\n}',
},
- python: {
- method: 'transactions.simulate_return_reversal',
+ go: {
+ method: 'client.Transactions.SimulateReturnReversal',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_return_reversal(\n token="fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n)\nprint(response.debugging_request_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateReturnReversal(context.TODO(), lithic.TransactionSimulateReturnReversalParams{\n\t\tToken: lithic.F("fabd829d-7f7b-4432-a8f2-07ea4889aaac"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
},
ruby: {
method: 'transactions.simulate_return_reversal',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.transactions.simulate_return_reversal(token: "fabd829d-7f7b-4432-a8f2-07ea4889aaac")\n\nputs(response)',
},
- typescript: {
- method: 'client.transactions.simulateReturnReversal',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateReturnReversal({\n token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac',\n});\n\nconsole.log(response.debugging_request_id);",
+ 'curl https://api.lithic.com/v1/simulate/return_reversal \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "token": "fabd829d-7f7b-4432-a8f2-07ea4889aaac"\n }\'',
},
},
},
@@ -6264,14 +6264,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## simulate_void\n\n`client.transactions.simulateVoid(token: string, amount?: number, type?: 'AUTHORIZATION_EXPIRY' | 'AUTHORIZATION_REVERSAL'): { debugging_request_id?: string; }`\n\n**post** `/v1/simulate/void`\n\nVoids a pending authorization. If `amount` is not set, the full amount will be voided. Can be used on partially voided transactions but not partially cleared transactions. _Simulating an authorization expiry on credit authorizations or credit authorization advice is not currently supported but will be added soon._\n\n\n### Parameters\n\n- `token: string`\n The transaction token returned from the /v1/simulate/authorize response.\n\n- `amount?: number`\n Amount (in cents) to void. Typically this will match the amount in the original authorization, but can be less. Applies to authorization reversals only. An authorization expiry will always apply to the full pending amount.\n\n- `type?: 'AUTHORIZATION_EXPIRY' | 'AUTHORIZATION_REVERSAL'`\n Type of event to simulate. Defaults to `AUTHORIZATION_REVERSAL`.\n\n* `AUTHORIZATION_EXPIRY` indicates authorization has expired and been reversed by Lithic.\n* `AUTHORIZATION_REVERSAL` indicates authorization was reversed by the merchant.\n\n### Returns\n\n- `{ debugging_request_id?: string; }`\n\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateVoid({ token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac' });\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.Transactions.SimulateVoid',
+ typescript: {
+ method: 'client.transactions.simulateVoid',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateVoid(context.TODO(), lithic.TransactionSimulateVoidParams{\n\t\tToken: lithic.F("fabd829d-7f7b-4432-a8f2-07ea4889aaac"),\n\t\tAmount: lithic.F(int64(100)),\n\t\tType: lithic.F(lithic.TransactionSimulateVoidParamsTypeAuthorizationExpiry),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateVoid({\n token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac',\n amount: 100,\n type: 'AUTHORIZATION_EXPIRY',\n});\n\nconsole.log(response.debugging_request_id);",
},
- http: {
+ python: {
+ method: 'transactions.simulate_void',
example:
- 'curl https://api.lithic.com/v1/simulate/void \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "token": "fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n "type": "AUTHORIZATION_EXPIRY"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_void(\n token="fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n amount=100,\n type="AUTHORIZATION_EXPIRY",\n)\nprint(response.debugging_request_id)',
},
java: {
method: 'transactions().simulateVoid',
@@ -6283,20 +6284,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TransactionSimulateVoidParams\nimport com.lithic.api.models.TransactionSimulateVoidResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: TransactionSimulateVoidParams = TransactionSimulateVoidParams.builder()\n .token("fabd829d-7f7b-4432-a8f2-07ea4889aaac")\n .build()\n val response: TransactionSimulateVoidResponse = client.transactions().simulateVoid(params)\n}',
},
- python: {
- method: 'transactions.simulate_void',
+ go: {
+ method: 'client.Transactions.SimulateVoid',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_void(\n token="fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n amount=100,\n type="AUTHORIZATION_EXPIRY",\n)\nprint(response.debugging_request_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateVoid(context.TODO(), lithic.TransactionSimulateVoidParams{\n\t\tToken: lithic.F("fabd829d-7f7b-4432-a8f2-07ea4889aaac"),\n\t\tAmount: lithic.F(int64(100)),\n\t\tType: lithic.F(lithic.TransactionSimulateVoidParamsTypeAuthorizationExpiry),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
},
ruby: {
method: 'transactions.simulate_void',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.transactions.simulate_void(token: "fabd829d-7f7b-4432-a8f2-07ea4889aaac")\n\nputs(response)',
},
- typescript: {
- method: 'client.transactions.simulateVoid',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateVoid({\n token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac',\n amount: 100,\n type: 'AUTHORIZATION_EXPIRY',\n});\n\nconsole.log(response.debugging_request_id);",
+ 'curl https://api.lithic.com/v1/simulate/void \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "token": "fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n "type": "AUTHORIZATION_EXPIRY"\n }\'',
},
},
},
@@ -6323,10 +6323,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## simulate_credit_authorization\n\n`client.transactions.simulateCreditAuthorization(amount: number, descriptor: string, pan: string, mcc?: string, merchant_acceptor_city?: string, merchant_acceptor_country?: string, merchant_acceptor_id?: string, merchant_acceptor_state?: string): { token?: string; debugging_request_id?: string; }`\n\n**post** `/v1/simulate/credit_authorization_advice`\n\nSimulates a credit authorization advice from the card network.\nThis message indicates that the network approved a credit authorization on your behalf.\n\n\n### Parameters\n\n- `amount: number`\n Amount (in cents). Any value entered will be converted into a negative amount in the simulated transaction. For example, entering 100 in this field will appear as a -100 amount in the transaction.\n\n- `descriptor: string`\n Merchant descriptor.\n\n- `pan: string`\n Sixteen digit card number.\n\n- `mcc?: string`\n Merchant category code for the transaction to be simulated. A four-digit number listed in ISO 18245.\nSupported merchant category codes can be found [here](https://docs.lithic.com/docs/transactions#merchant-category-codes-mccs).\n\n\n- `merchant_acceptor_city?: string`\n Merchant acceptor city\n\n- `merchant_acceptor_country?: string`\n Merchant acceptor country code (ISO 3166-1 alpha-3)\n\n- `merchant_acceptor_id?: string`\n Unique identifier to identify the payment card acceptor.\n\n- `merchant_acceptor_state?: string`\n Merchant acceptor state/province (ISO 3166-2 subdivision code)\n\n### Returns\n\n- `{ token?: string; debugging_request_id?: string; }`\n\n - `token?: string`\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateCreditAuthorization({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n});\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.Transactions.SimulateCreditAuthorization',
+ typescript: {
+ method: 'client.transactions.simulateCreditAuthorization',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateCreditAuthorization(context.TODO(), lithic.TransactionSimulateCreditAuthorizationParams{\n\t\tAmount: lithic.F(int64(3831)),\n\t\tDescriptor: lithic.F("COFFEE SHOP"),\n\t\tPan: lithic.F("4111111289144142"),\n\t\tMerchantAcceptorCity: lithic.F("SEATTLE"),\n\t\tMerchantAcceptorCountry: lithic.F("USA"),\n\t\tMerchantAcceptorID: lithic.F("XRKGDPOWEWQRRWU"),\n\t\tMerchantAcceptorState: lithic.F("WA"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateCreditAuthorization({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n merchant_acceptor_city: 'SEATTLE',\n merchant_acceptor_country: 'USA',\n merchant_acceptor_id: 'XRKGDPOWEWQRRWU',\n merchant_acceptor_state: 'WA',\n});\n\nconsole.log(response.debugging_request_id);",
+ },
+ python: {
+ method: 'transactions.simulate_credit_authorization',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_credit_authorization(\n amount=3831,\n descriptor="COFFEE SHOP",\n pan="4111111289144142",\n merchant_acceptor_city="SEATTLE",\n merchant_acceptor_country="USA",\n merchant_acceptor_id="XRKGDPOWEWQRRWU",\n merchant_acceptor_state="WA",\n)\nprint(response.debugging_request_id)',
},
java: {
method: 'transactions().simulateCreditAuthorization',
@@ -6338,15 +6343,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TransactionSimulateCreditAuthorizationParams\nimport com.lithic.api.models.TransactionSimulateCreditAuthorizationResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: TransactionSimulateCreditAuthorizationParams = TransactionSimulateCreditAuthorizationParams.builder()\n .amount(3831L)\n .descriptor("COFFEE SHOP")\n .pan("4111111289144142")\n .build()\n val response: TransactionSimulateCreditAuthorizationResponse = client.transactions().simulateCreditAuthorization(params)\n}',
},
- python: {
- method: 'transactions.simulate_credit_authorization',
- example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_credit_authorization(\n amount=3831,\n descriptor="COFFEE SHOP",\n pan="4111111289144142",\n merchant_acceptor_city="SEATTLE",\n merchant_acceptor_country="USA",\n merchant_acceptor_id="XRKGDPOWEWQRRWU",\n merchant_acceptor_state="WA",\n)\nprint(response.debugging_request_id)',
- },
- typescript: {
- method: 'client.transactions.simulateCreditAuthorization',
+ go: {
+ method: 'client.Transactions.SimulateCreditAuthorization',
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateCreditAuthorization({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n merchant_acceptor_city: 'SEATTLE',\n merchant_acceptor_country: 'USA',\n merchant_acceptor_id: 'XRKGDPOWEWQRRWU',\n merchant_acceptor_state: 'WA',\n});\n\nconsole.log(response.debugging_request_id);",
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateCreditAuthorization(context.TODO(), lithic.TransactionSimulateCreditAuthorizationParams{\n\t\tAmount: lithic.F(int64(3831)),\n\t\tDescriptor: lithic.F("COFFEE SHOP"),\n\t\tPan: lithic.F("4111111289144142"),\n\t\tMerchantAcceptorCity: lithic.F("SEATTLE"),\n\t\tMerchantAcceptorCountry: lithic.F("USA"),\n\t\tMerchantAcceptorID: lithic.F("XRKGDPOWEWQRRWU"),\n\t\tMerchantAcceptorState: lithic.F("WA"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
},
},
},
@@ -6373,14 +6373,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## simulate_credit_authorization_advice\n\n`client.transactions.simulateCreditAuthorizationAdvice(amount: number, descriptor: string, pan: string, mcc?: string, merchant_acceptor_city?: string, merchant_acceptor_country?: string, merchant_acceptor_id?: string, merchant_acceptor_state?: string): { token?: string; debugging_request_id?: string; }`\n\n**post** `/v1/simulate/credit_authorization_advice`\n\nSimulates a credit authorization advice from the card network.\nThis message indicates that the network approved a credit authorization on your behalf.\n\n\n### Parameters\n\n- `amount: number`\n Amount (in cents). Any value entered will be converted into a negative amount in the simulated transaction. For example, entering 100 in this field will appear as a -100 amount in the transaction.\n\n- `descriptor: string`\n Merchant descriptor.\n\n- `pan: string`\n Sixteen digit card number.\n\n- `mcc?: string`\n Merchant category code for the transaction to be simulated. A four-digit number listed in ISO 18245.\nSupported merchant category codes can be found [here](https://docs.lithic.com/docs/transactions#merchant-category-codes-mccs).\n\n\n- `merchant_acceptor_city?: string`\n Merchant acceptor city\n\n- `merchant_acceptor_country?: string`\n Merchant acceptor country code (ISO 3166-1 alpha-3)\n\n- `merchant_acceptor_id?: string`\n Unique identifier to identify the payment card acceptor.\n\n- `merchant_acceptor_state?: string`\n Merchant acceptor state/province (ISO 3166-2 subdivision code)\n\n### Returns\n\n- `{ token?: string; debugging_request_id?: string; }`\n\n - `token?: string`\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateCreditAuthorizationAdvice({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n});\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.Transactions.SimulateCreditAuthorizationAdvice',
+ typescript: {
+ method: 'client.transactions.simulateCreditAuthorizationAdvice',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateCreditAuthorizationAdvice(context.TODO(), lithic.TransactionSimulateCreditAuthorizationAdviceParams{\n\t\tAmount: lithic.F(int64(3831)),\n\t\tDescriptor: lithic.F("COFFEE SHOP"),\n\t\tPan: lithic.F("4111111289144142"),\n\t\tMerchantAcceptorCity: lithic.F("SEATTLE"),\n\t\tMerchantAcceptorCountry: lithic.F("USA"),\n\t\tMerchantAcceptorID: lithic.F("XRKGDPOWEWQRRWU"),\n\t\tMerchantAcceptorState: lithic.F("WA"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateCreditAuthorizationAdvice({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n merchant_acceptor_city: 'SEATTLE',\n merchant_acceptor_country: 'USA',\n merchant_acceptor_id: 'XRKGDPOWEWQRRWU',\n merchant_acceptor_state: 'WA',\n});\n\nconsole.log(response.debugging_request_id);",
},
- http: {
+ python: {
+ method: 'transactions.simulate_credit_authorization_advice',
example:
- 'curl https://api.lithic.com/v1/simulate/credit_authorization_advice \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 3831,\n "descriptor": "COFFEE SHOP",\n "pan": "4111111289144142",\n "mcc": "5812",\n "merchant_acceptor_city": "SEATTLE",\n "merchant_acceptor_country": "USA",\n "merchant_acceptor_id": "XRKGDPOWEWQRRWU",\n "merchant_acceptor_state": "WA"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_credit_authorization_advice(\n amount=3831,\n descriptor="COFFEE SHOP",\n pan="4111111289144142",\n merchant_acceptor_city="SEATTLE",\n merchant_acceptor_country="USA",\n merchant_acceptor_id="XRKGDPOWEWQRRWU",\n merchant_acceptor_state="WA",\n)\nprint(response.debugging_request_id)',
},
java: {
method: 'transactions().simulateCreditAuthorizationAdvice',
@@ -6392,20 +6393,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TransactionSimulateCreditAuthorizationAdviceParams\nimport com.lithic.api.models.TransactionSimulateCreditAuthorizationAdviceResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: TransactionSimulateCreditAuthorizationAdviceParams = TransactionSimulateCreditAuthorizationAdviceParams.builder()\n .amount(3831L)\n .descriptor("COFFEE SHOP")\n .pan("4111111289144142")\n .build()\n val response: TransactionSimulateCreditAuthorizationAdviceResponse = client.transactions().simulateCreditAuthorizationAdvice(params)\n}',
},
- python: {
- method: 'transactions.simulate_credit_authorization_advice',
+ go: {
+ method: 'client.Transactions.SimulateCreditAuthorizationAdvice',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_credit_authorization_advice(\n amount=3831,\n descriptor="COFFEE SHOP",\n pan="4111111289144142",\n merchant_acceptor_city="SEATTLE",\n merchant_acceptor_country="USA",\n merchant_acceptor_id="XRKGDPOWEWQRRWU",\n merchant_acceptor_state="WA",\n)\nprint(response.debugging_request_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateCreditAuthorizationAdvice(context.TODO(), lithic.TransactionSimulateCreditAuthorizationAdviceParams{\n\t\tAmount: lithic.F(int64(3831)),\n\t\tDescriptor: lithic.F("COFFEE SHOP"),\n\t\tPan: lithic.F("4111111289144142"),\n\t\tMerchantAcceptorCity: lithic.F("SEATTLE"),\n\t\tMerchantAcceptorCountry: lithic.F("USA"),\n\t\tMerchantAcceptorID: lithic.F("XRKGDPOWEWQRRWU"),\n\t\tMerchantAcceptorState: lithic.F("WA"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
},
ruby: {
method: 'transactions.simulate_credit_authorization_advice',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.transactions.simulate_credit_authorization_advice(\n amount: 3831,\n descriptor: "COFFEE SHOP",\n pan: "4111111289144142"\n)\n\nputs(response)',
},
- typescript: {
- method: 'client.transactions.simulateCreditAuthorizationAdvice',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateCreditAuthorizationAdvice({\n amount: 3831,\n descriptor: 'COFFEE SHOP',\n pan: '4111111289144142',\n merchant_acceptor_city: 'SEATTLE',\n merchant_acceptor_country: 'USA',\n merchant_acceptor_id: 'XRKGDPOWEWQRRWU',\n merchant_acceptor_state: 'WA',\n});\n\nconsole.log(response.debugging_request_id);",
+ 'curl https://api.lithic.com/v1/simulate/credit_authorization_advice \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 3831,\n "descriptor": "COFFEE SHOP",\n "pan": "4111111289144142",\n "mcc": "5812",\n "merchant_acceptor_city": "SEATTLE",\n "merchant_acceptor_country": "USA",\n "merchant_acceptor_id": "XRKGDPOWEWQRRWU",\n "merchant_acceptor_state": "WA"\n }\'',
},
},
},
@@ -6423,14 +6423,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## simulate_authorization_advice\n\n`client.transactions.simulateAuthorizationAdvice(token: string, amount: number): { token?: string; debugging_request_id?: string; }`\n\n**post** `/v1/simulate/authorization_advice`\n\nSimulates an authorization advice from the card network as if it came from a merchant acquirer. An authorization advice changes the pending amount of the transaction.\n\n\n### Parameters\n\n- `token: string`\n The transaction token returned from the /v1/simulate/authorize. response.\n\n- `amount: number`\n Amount (in cents) to authorize. This amount will override the transaction's amount that was originally set by /v1/simulate/authorize.\n\n### Returns\n\n- `{ token?: string; debugging_request_id?: string; }`\n\n - `token?: string`\n - `debugging_request_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.transactions.simulateAuthorizationAdvice({ token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac', amount: 3831 });\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.Transactions.SimulateAuthorizationAdvice',
+ typescript: {
+ method: 'client.transactions.simulateAuthorizationAdvice',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateAuthorizationAdvice(context.TODO(), lithic.TransactionSimulateAuthorizationAdviceParams{\n\t\tToken: lithic.F("fabd829d-7f7b-4432-a8f2-07ea4889aaac"),\n\t\tAmount: lithic.F(int64(3831)),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateAuthorizationAdvice({\n token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac',\n amount: 3831,\n});\n\nconsole.log(response.debugging_request_id);",
},
- http: {
+ python: {
+ method: 'transactions.simulate_authorization_advice',
example:
- 'curl https://api.lithic.com/v1/simulate/authorization_advice \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "token": "fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n "amount": 3831\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_authorization_advice(\n token="fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n amount=3831,\n)\nprint(response.debugging_request_id)',
},
java: {
method: 'transactions().simulateAuthorizationAdvice',
@@ -6442,20 +6443,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TransactionSimulateAuthorizationAdviceParams\nimport com.lithic.api.models.TransactionSimulateAuthorizationAdviceResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: TransactionSimulateAuthorizationAdviceParams = TransactionSimulateAuthorizationAdviceParams.builder()\n .token("fabd829d-7f7b-4432-a8f2-07ea4889aaac")\n .amount(3831L)\n .build()\n val response: TransactionSimulateAuthorizationAdviceResponse = client.transactions().simulateAuthorizationAdvice(params)\n}',
},
- python: {
- method: 'transactions.simulate_authorization_advice',
+ go: {
+ method: 'client.Transactions.SimulateAuthorizationAdvice',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.transactions.simulate_authorization_advice(\n token="fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n amount=3831,\n)\nprint(response.debugging_request_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Transactions.SimulateAuthorizationAdvice(context.TODO(), lithic.TransactionSimulateAuthorizationAdviceParams{\n\t\tToken: lithic.F("fabd829d-7f7b-4432-a8f2-07ea4889aaac"),\n\t\tAmount: lithic.F(int64(3831)),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
},
ruby: {
method: 'transactions.simulate_authorization_advice',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.transactions.simulate_authorization_advice(\n token: "fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n amount: 3831\n)\n\nputs(response)',
},
- typescript: {
- method: 'client.transactions.simulateAuthorizationAdvice',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.transactions.simulateAuthorizationAdvice({\n token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac',\n amount: 3831,\n});\n\nconsole.log(response.debugging_request_id);",
+ 'curl https://api.lithic.com/v1/simulate/authorization_advice \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "token": "fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n "amount": 3831\n }\'',
},
},
},
@@ -6471,14 +6471,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## expire_authorization\n\n`client.transactions.expireAuthorization(transaction_token: string): void`\n\n**post** `/v1/transactions/{transaction_token}/expire_authorization`\n\nExpire authorization\n\n### Parameters\n\n- `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.transactions.expireAuthorization('00000000-0000-0000-0000-000000000000')\n```",
perLanguage: {
- go: {
- method: 'client.Transactions.ExpireAuthorization',
+ typescript: {
+ method: 'client.transactions.expireAuthorization',
example:
- 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Transactions.ExpireAuthorization(context.TODO(), "00000000-0000-0000-0000-000000000000")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.transactions.expireAuthorization('00000000-0000-0000-0000-000000000000');",
},
- http: {
+ python: {
+ method: 'transactions.expire_authorization',
example:
- 'curl https://api.lithic.com/v1/transactions/$TRANSACTION_TOKEN/expire_authorization \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.transactions.expire_authorization(\n "00000000-0000-0000-0000-000000000000",\n)',
},
java: {
method: 'transactions().expireAuthorization',
@@ -6490,20 +6491,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TransactionExpireAuthorizationParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.transactions().expireAuthorization("00000000-0000-0000-0000-000000000000")\n}',
},
- python: {
- method: 'transactions.expire_authorization',
+ go: {
+ method: 'client.Transactions.ExpireAuthorization',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.transactions.expire_authorization(\n "00000000-0000-0000-0000-000000000000",\n)',
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Transactions.ExpireAuthorization(context.TODO(), "00000000-0000-0000-0000-000000000000")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
},
ruby: {
method: 'transactions.expire_authorization',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.transactions.expire_authorization("00000000-0000-0000-0000-000000000000")\n\nputs(result)',
},
- typescript: {
- method: 'client.transactions.expireAuthorization',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.transactions.expireAuthorization('00000000-0000-0000-0000-000000000000');",
+ 'curl https://api.lithic.com/v1/transactions/$TRANSACTION_TOKEN/expire_authorization \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -6522,14 +6522,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.transactions.enhancedCommercialData.retrieve(transaction_token: string): { data: enhanced_data[]; }`\n\n**get** `/v1/transactions/{transaction_token}/enhanced_commercial_data`\n\nGet all L2/L3 enhanced commercial data associated with a transaction. Not available in sandbox.\n\n### Parameters\n\n- `transaction_token: string`\n\n### Returns\n\n- `{ data: { token: string; common: object; event_token: string; fleet: object[]; transaction_token: string; }[]; }`\n\n - `data: { token: string; common: { line_items: { amount?: string; description?: string; product_code?: string; quantity?: string; }[]; tax: { amount?: number; exempt?: 'TAX_INCLUDED' | 'TAX_NOT_INCLUDED' | 'NOT_SUPPORTED'; merchant_tax_id?: string; }; customer_reference_number?: string; merchant_reference_number?: string; order_date?: string; }; event_token: string; fleet: { amount_totals: { discount?: number; gross_sale?: number; net_sale?: number; }; fuel: { quantity?: string; type?: string; unit_of_measure?: 'GALLONS' | 'LITERS' | 'POUNDS' | 'KILOGRAMS' | 'IMPERIAL_GALLONS' | 'NOT_APPLICABLE' | 'UNKNOWN'; unit_price?: number; }; driver_number?: string; odometer?: number; service_type?: 'UNKNOWN' | 'UNDEFINED' | 'SELF_SERVICE' | 'FULL_SERVICE' | 'NON_FUEL_ONLY'; vehicle_number?: string; }[]; transaction_token: string; }[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst enhancedCommercialData = await client.transactions.enhancedCommercialData.retrieve('00000000-0000-0000-0000-000000000000');\n\nconsole.log(enhancedCommercialData);\n```",
perLanguage: {
- go: {
- method: 'client.Transactions.EnhancedCommercialData.Get',
+ typescript: {
+ method: 'client.transactions.enhancedCommercialData.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tenhancedCommercialData, err := client.Transactions.EnhancedCommercialData.Get(context.TODO(), "00000000-0000-0000-0000-000000000000")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", enhancedCommercialData.Data)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst enhancedCommercialData = await client.transactions.enhancedCommercialData.retrieve(\n '00000000-0000-0000-0000-000000000000',\n);\n\nconsole.log(enhancedCommercialData.data);",
},
- http: {
+ python: {
+ method: 'transactions.enhanced_commercial_data.retrieve',
example:
- 'curl https://api.lithic.com/v1/transactions/$TRANSACTION_TOKEN/enhanced_commercial_data \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nenhanced_commercial_data = client.transactions.enhanced_commercial_data.retrieve(\n "00000000-0000-0000-0000-000000000000",\n)\nprint(enhanced_commercial_data.data)',
},
java: {
method: 'transactions().enhancedCommercialData().retrieve',
@@ -6541,20 +6542,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EnhancedCommercialDataRetrieveResponse\nimport com.lithic.api.models.TransactionEnhancedCommercialDataRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val enhancedCommercialData: EnhancedCommercialDataRetrieveResponse = client.transactions().enhancedCommercialData().retrieve("00000000-0000-0000-0000-000000000000")\n}',
},
- python: {
- method: 'transactions.enhanced_commercial_data.retrieve',
+ go: {
+ method: 'client.Transactions.EnhancedCommercialData.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nenhanced_commercial_data = client.transactions.enhanced_commercial_data.retrieve(\n "00000000-0000-0000-0000-000000000000",\n)\nprint(enhanced_commercial_data.data)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tenhancedCommercialData, err := client.Transactions.EnhancedCommercialData.Get(context.TODO(), "00000000-0000-0000-0000-000000000000")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", enhancedCommercialData.Data)\n}\n',
},
ruby: {
method: 'transactions.enhanced_commercial_data.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nenhanced_commercial_data = lithic.transactions.enhanced_commercial_data.retrieve("00000000-0000-0000-0000-000000000000")\n\nputs(enhanced_commercial_data)',
},
- typescript: {
- method: 'client.transactions.enhancedCommercialData.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst enhancedCommercialData = await client.transactions.enhancedCommercialData.retrieve(\n '00000000-0000-0000-0000-000000000000',\n);\n\nconsole.log(enhancedCommercialData.data);",
+ 'curl https://api.lithic.com/v1/transactions/$TRANSACTION_TOKEN/enhanced_commercial_data \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -6573,14 +6573,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.transactions.events.enhancedCommercialData.retrieve(event_token: string): { token: string; common: object; event_token: string; fleet: object[]; transaction_token: string; }`\n\n**get** `/v1/transactions/events/{event_token}/enhanced_commercial_data`\n\nGet L2/L3 enhanced commercial data associated with a transaction event. Not available in sandbox.\n\n### Parameters\n\n- `event_token: string`\n\n### Returns\n\n- `{ token: string; common: { line_items: { amount?: string; description?: string; product_code?: string; quantity?: string; }[]; tax: { amount?: number; exempt?: 'TAX_INCLUDED' | 'TAX_NOT_INCLUDED' | 'NOT_SUPPORTED'; merchant_tax_id?: string; }; customer_reference_number?: string; merchant_reference_number?: string; order_date?: string; }; event_token: string; fleet: { amount_totals: { discount?: number; gross_sale?: number; net_sale?: number; }; fuel: { quantity?: string; type?: string; unit_of_measure?: 'GALLONS' | 'LITERS' | 'POUNDS' | 'KILOGRAMS' | 'IMPERIAL_GALLONS' | 'NOT_APPLICABLE' | 'UNKNOWN'; unit_price?: number; }; driver_number?: string; odometer?: number; service_type?: 'UNKNOWN' | 'UNDEFINED' | 'SELF_SERVICE' | 'FULL_SERVICE' | 'NON_FUEL_ONLY'; vehicle_number?: string; }[]; transaction_token: string; }`\n\n - `token: string`\n - `common: { line_items: { amount?: string; description?: string; product_code?: string; quantity?: string; }[]; tax: { amount?: number; exempt?: 'TAX_INCLUDED' | 'TAX_NOT_INCLUDED' | 'NOT_SUPPORTED'; merchant_tax_id?: string; }; customer_reference_number?: string; merchant_reference_number?: string; order_date?: string; }`\n - `event_token: string`\n - `fleet: { amount_totals: { discount?: number; gross_sale?: number; net_sale?: number; }; fuel: { quantity?: string; type?: string; unit_of_measure?: 'GALLONS' | 'LITERS' | 'POUNDS' | 'KILOGRAMS' | 'IMPERIAL_GALLONS' | 'NOT_APPLICABLE' | 'UNKNOWN'; unit_price?: number; }; driver_number?: string; odometer?: number; service_type?: 'UNKNOWN' | 'UNDEFINED' | 'SELF_SERVICE' | 'FULL_SERVICE' | 'NON_FUEL_ONLY'; vehicle_number?: string; }[]`\n - `transaction_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst enhancedData = await client.transactions.events.enhancedCommercialData.retrieve('00000000-0000-0000-0000-000000000000');\n\nconsole.log(enhancedData);\n```",
perLanguage: {
- go: {
- method: 'client.Transactions.Events.EnhancedCommercialData.Get',
+ typescript: {
+ method: 'client.transactions.events.enhancedCommercialData.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tenhancedData, err := client.Transactions.Events.EnhancedCommercialData.Get(context.TODO(), "00000000-0000-0000-0000-000000000000")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", enhancedData.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst enhancedData = await client.transactions.events.enhancedCommercialData.retrieve(\n '00000000-0000-0000-0000-000000000000',\n);\n\nconsole.log(enhancedData.token);",
},
- http: {
+ python: {
+ method: 'transactions.events.enhanced_commercial_data.retrieve',
example:
- 'curl https://api.lithic.com/v1/transactions/events/$EVENT_TOKEN/enhanced_commercial_data \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nenhanced_data = client.transactions.events.enhanced_commercial_data.retrieve(\n "00000000-0000-0000-0000-000000000000",\n)\nprint(enhanced_data.token)',
},
java: {
method: 'transactions().events().enhancedCommercialData().retrieve',
@@ -6592,20 +6593,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.EnhancedData\nimport com.lithic.api.models.TransactionEventEnhancedCommercialDataRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val enhancedData: EnhancedData = client.transactions().events().enhancedCommercialData().retrieve("00000000-0000-0000-0000-000000000000")\n}',
},
- python: {
- method: 'transactions.events.enhanced_commercial_data.retrieve',
+ go: {
+ method: 'client.Transactions.Events.EnhancedCommercialData.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nenhanced_data = client.transactions.events.enhanced_commercial_data.retrieve(\n "00000000-0000-0000-0000-000000000000",\n)\nprint(enhanced_data.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tenhancedData, err := client.Transactions.Events.EnhancedCommercialData.Get(context.TODO(), "00000000-0000-0000-0000-000000000000")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", enhancedData.Token)\n}\n',
},
ruby: {
method: 'transactions.events.enhanced_commercial_data.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nenhanced_data = lithic.transactions.events.enhanced_commercial_data.retrieve("00000000-0000-0000-0000-000000000000")\n\nputs(enhanced_data)',
},
- typescript: {
- method: 'client.transactions.events.enhancedCommercialData.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst enhancedData = await client.transactions.events.enhancedCommercialData.retrieve(\n '00000000-0000-0000-0000-000000000000',\n);\n\nconsole.log(enhancedData.token);",
+ 'curl https://api.lithic.com/v1/transactions/events/$EVENT_TOKEN/enhanced_commercial_data \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -6625,14 +6625,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## create\n\n`client.responderEndpoints.create(type?: 'AUTH_STREAM_ACCESS' | 'THREE_DS_DECISIONING' | 'TOKENIZATION_DECISIONING', url?: string): { enrolled?: boolean; }`\n\n**post** `/v1/responder_endpoints`\n\nEnroll a responder endpoint\n\n### Parameters\n\n- `type?: 'AUTH_STREAM_ACCESS' | 'THREE_DS_DECISIONING' | 'TOKENIZATION_DECISIONING'`\n The type of the endpoint.\n\n- `url?: string`\n The URL for the responder endpoint (must be http(s)).\n\n### Returns\n\n- `{ enrolled?: boolean; }`\n\n - `enrolled?: boolean`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst responderEndpoint = await client.responderEndpoints.create();\n\nconsole.log(responderEndpoint);\n```",
perLanguage: {
- go: {
- method: 'client.ResponderEndpoints.New',
+ typescript: {
+ method: 'client.responderEndpoints.create',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponderEndpoint, err := client.ResponderEndpoints.New(context.TODO(), lithic.ResponderEndpointNewParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", responderEndpoint.Enrolled)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst responderEndpoint = await client.responderEndpoints.create();\n\nconsole.log(responderEndpoint.enrolled);",
},
- http: {
+ python: {
+ method: 'responder_endpoints.create',
example:
- "curl https://api.lithic.com/v1/responder_endpoints \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponder_endpoint = client.responder_endpoints.create()\nprint(responder_endpoint.enrolled)',
},
java: {
method: 'responderEndpoints().create',
@@ -6644,20 +6645,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ResponderEndpointCreateParams\nimport com.lithic.api.models.ResponderEndpointCreateResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val responderEndpoint: ResponderEndpointCreateResponse = client.responderEndpoints().create()\n}',
},
- python: {
- method: 'responder_endpoints.create',
+ go: {
+ method: 'client.ResponderEndpoints.New',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponder_endpoint = client.responder_endpoints.create()\nprint(responder_endpoint.enrolled)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponderEndpoint, err := client.ResponderEndpoints.New(context.TODO(), lithic.ResponderEndpointNewParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", responderEndpoint.Enrolled)\n}\n',
},
ruby: {
method: 'responder_endpoints.create',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponder_endpoint = lithic.responder_endpoints.create\n\nputs(responder_endpoint)',
},
- typescript: {
- method: 'client.responderEndpoints.create',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst responderEndpoint = await client.responderEndpoints.create();\n\nconsole.log(responderEndpoint.enrolled);",
+ "curl https://api.lithic.com/v1/responder_endpoints \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
},
},
},
@@ -6673,14 +6673,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## delete\n\n`client.responderEndpoints.delete(type: 'AUTH_STREAM_ACCESS' | 'THREE_DS_DECISIONING' | 'TOKENIZATION_DECISIONING'): void`\n\n**delete** `/v1/responder_endpoints`\n\nDisenroll a responder endpoint\n\n### Parameters\n\n- `type: 'AUTH_STREAM_ACCESS' | 'THREE_DS_DECISIONING' | 'TOKENIZATION_DECISIONING'`\n The type of the endpoint.\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.responderEndpoints.delete({ type: 'AUTH_STREAM_ACCESS' })\n```",
perLanguage: {
- go: {
- method: 'client.ResponderEndpoints.Delete',
+ typescript: {
+ method: 'client.responderEndpoints.delete',
example:
- 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.ResponderEndpoints.Delete(context.TODO(), lithic.ResponderEndpointDeleteParams{\n\t\tType: lithic.F(lithic.ResponderEndpointDeleteParamsTypeAuthStreamAccess),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.responderEndpoints.delete({ type: 'AUTH_STREAM_ACCESS' });",
},
- http: {
+ python: {
+ method: 'responder_endpoints.delete',
example:
- 'curl https://api.lithic.com/v1/responder_endpoints \\\n -X DELETE \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.responder_endpoints.delete(\n type="AUTH_STREAM_ACCESS",\n)',
},
java: {
method: 'responderEndpoints().delete',
@@ -6692,20 +6693,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ResponderEndpointDeleteParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ResponderEndpointDeleteParams = ResponderEndpointDeleteParams.builder()\n .type(ResponderEndpointDeleteParams.Type.AUTH_STREAM_ACCESS)\n .build()\n client.responderEndpoints().delete(params)\n}',
},
- python: {
- method: 'responder_endpoints.delete',
+ go: {
+ method: 'client.ResponderEndpoints.Delete',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.responder_endpoints.delete(\n type="AUTH_STREAM_ACCESS",\n)',
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.ResponderEndpoints.Delete(context.TODO(), lithic.ResponderEndpointDeleteParams{\n\t\tType: lithic.F(lithic.ResponderEndpointDeleteParamsTypeAuthStreamAccess),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
},
ruby: {
method: 'responder_endpoints.delete',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.responder_endpoints.delete(type: :AUTH_STREAM_ACCESS)\n\nputs(result)',
},
- typescript: {
- method: 'client.responderEndpoints.delete',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.responderEndpoints.delete({ type: 'AUTH_STREAM_ACCESS' });",
+ 'curl https://api.lithic.com/v1/responder_endpoints \\\n -X DELETE \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -6722,14 +6722,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## check_status\n\n`client.responderEndpoints.checkStatus(type: 'AUTH_STREAM_ACCESS' | 'THREE_DS_DECISIONING' | 'TOKENIZATION_DECISIONING'): { enrolled?: boolean; url?: string; }`\n\n**get** `/v1/responder_endpoints`\n\nCheck the status of a responder endpoint\n\n### Parameters\n\n- `type: 'AUTH_STREAM_ACCESS' | 'THREE_DS_DECISIONING' | 'TOKENIZATION_DECISIONING'`\n The type of the endpoint.\n\n### Returns\n\n- `{ enrolled?: boolean; url?: string; }`\n\n - `enrolled?: boolean`\n - `url?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst responderEndpointStatus = await client.responderEndpoints.checkStatus({ type: 'AUTH_STREAM_ACCESS' });\n\nconsole.log(responderEndpointStatus);\n```",
perLanguage: {
- go: {
- method: 'client.ResponderEndpoints.CheckStatus',
+ typescript: {
+ method: 'client.responderEndpoints.checkStatus',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponderEndpointStatus, err := client.ResponderEndpoints.CheckStatus(context.TODO(), lithic.ResponderEndpointCheckStatusParams{\n\t\tType: lithic.F(lithic.ResponderEndpointCheckStatusParamsTypeAuthStreamAccess),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", responderEndpointStatus.Enrolled)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst responderEndpointStatus = await client.responderEndpoints.checkStatus({\n type: 'AUTH_STREAM_ACCESS',\n});\n\nconsole.log(responderEndpointStatus.enrolled);",
},
- http: {
+ python: {
+ method: 'responder_endpoints.check_status',
example:
- 'curl https://api.lithic.com/v1/responder_endpoints \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponder_endpoint_status = client.responder_endpoints.check_status(\n type="AUTH_STREAM_ACCESS",\n)\nprint(responder_endpoint_status.enrolled)',
},
java: {
method: 'responderEndpoints().checkStatus',
@@ -6741,20 +6742,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ResponderEndpointCheckStatusParams\nimport com.lithic.api.models.ResponderEndpointStatus\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ResponderEndpointCheckStatusParams = ResponderEndpointCheckStatusParams.builder()\n .type(ResponderEndpointCheckStatusParams.Type.AUTH_STREAM_ACCESS)\n .build()\n val responderEndpointStatus: ResponderEndpointStatus = client.responderEndpoints().checkStatus(params)\n}',
},
- python: {
- method: 'responder_endpoints.check_status',
+ go: {
+ method: 'client.ResponderEndpoints.CheckStatus',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponder_endpoint_status = client.responder_endpoints.check_status(\n type="AUTH_STREAM_ACCESS",\n)\nprint(responder_endpoint_status.enrolled)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponderEndpointStatus, err := client.ResponderEndpoints.CheckStatus(context.TODO(), lithic.ResponderEndpointCheckStatusParams{\n\t\tType: lithic.F(lithic.ResponderEndpointCheckStatusParamsTypeAuthStreamAccess),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", responderEndpointStatus.Enrolled)\n}\n',
},
ruby: {
method: 'responder_endpoints.check_status',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponder_endpoint_status = lithic.responder_endpoints.check_status(type: :AUTH_STREAM_ACCESS)\n\nputs(responder_endpoint_status)',
},
- typescript: {
- method: 'client.responderEndpoints.checkStatus',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst responderEndpointStatus = await client.responderEndpoints.checkStatus({\n type: 'AUTH_STREAM_ACCESS',\n});\n\nconsole.log(responderEndpointStatus.enrolled);",
+ 'curl https://api.lithic.com/v1/responder_endpoints \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -6782,14 +6782,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.externalBankAccounts.list(account_token?: string, account_types?: 'CHECKING' | 'SAVINGS'[], countries?: string[], ending_before?: string, owner_types?: 'INDIVIDUAL' | 'BUSINESS'[], page_size?: number, starting_after?: string, states?: 'ENABLED' | 'CLOSED' | 'PAUSED'[], verification_states?: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'[]): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**get** `/v1/external_bank_accounts`\n\nList all the external bank accounts for the provided search criteria.\n\n### Parameters\n\n- `account_token?: string`\n\n- `account_types?: 'CHECKING' | 'SAVINGS'[]`\n\n- `countries?: string[]`\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `owner_types?: 'INDIVIDUAL' | 'BUSINESS'[]`\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `states?: 'ENABLED' | 'CLOSED' | 'PAUSED'[]`\n\n- `verification_states?: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'[]`\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'BUSINESS' | 'INDIVIDUAL'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const externalBankAccountListResponse of client.externalBankAccounts.list()) {\n console.log(externalBankAccountListResponse);\n}\n```",
perLanguage: {
- go: {
- method: 'client.ExternalBankAccounts.List',
+ typescript: {
+ method: 'client.externalBankAccounts.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.ExternalBankAccounts.List(context.TODO(), lithic.ExternalBankAccountListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const externalBankAccountListResponse of client.externalBankAccounts.list()) {\n console.log(externalBankAccountListResponse.company_id);\n}",
},
- http: {
+ python: {
+ method: 'external_bank_accounts.list',
example:
- 'curl https://api.lithic.com/v1/external_bank_accounts \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.external_bank_accounts.list()\npage = page.data[0]\nprint(page.company_id)',
},
java: {
method: 'externalBankAccounts().list',
@@ -6801,20 +6802,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalBankAccountListPage\nimport com.lithic.api.models.ExternalBankAccountListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: ExternalBankAccountListPage = client.externalBankAccounts().list()\n}',
},
- python: {
- method: 'external_bank_accounts.list',
+ go: {
+ method: 'client.ExternalBankAccounts.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.external_bank_accounts.list()\npage = page.data[0]\nprint(page.company_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.ExternalBankAccounts.List(context.TODO(), lithic.ExternalBankAccountListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'external_bank_accounts.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.external_bank_accounts.list\n\nputs(page)',
},
- typescript: {
- method: 'client.externalBankAccounts.list',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const externalBankAccountListResponse of client.externalBankAccounts.list()) {\n console.log(externalBankAccountListResponse.company_id);\n}",
+ 'curl https://api.lithic.com/v1/external_bank_accounts \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -6832,14 +6832,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response:
"{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }",
perLanguage: {
- go: {
- method: 'client.ExternalBankAccounts.New',
+ typescript: {
+ method: 'client.externalBankAccounts.create',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalBankAccount, err := client.ExternalBankAccounts.New(context.TODO(), lithic.ExternalBankAccountNewParams{\n\t\tBody: lithic.ExternalBankAccountNewParamsBodyBankVerifiedCreateBankAccountAPIRequest{\n\t\t\tAccountNumber: lithic.F("13719713158835300"),\n\t\t\tCountry: lithic.F("USA"),\n\t\t\tCurrency: lithic.F("USD"),\n\t\t\tFinancialAccountToken: lithic.F("dabadb3b-700c-41e3-8801-d5dfc84ebea0"),\n\t\t\tOwner: lithic.F("John Doe"),\n\t\t\tOwnerType: lithic.F(lithic.OwnerTypeBusiness),\n\t\t\tRoutingNumber: lithic.F("011103093"),\n\t\t\tType: lithic.F(lithic.ExternalBankAccountNewParamsBodyBankVerifiedCreateBankAccountAPIRequestTypeChecking),\n\t\t\tVerificationMethod: lithic.F(lithic.VerificationMethodMicroDeposit),\n\t\t},\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalBankAccount.CompanyID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalBankAccount = await client.externalBankAccounts.create({\n account_number: '13719713158835300',\n country: 'USA',\n currency: 'USD',\n financial_account_token: 'dabadb3b-700c-41e3-8801-d5dfc84ebea0',\n owner: 'John Doe',\n owner_type: 'BUSINESS',\n routing_number: '011103093',\n type: 'CHECKING',\n verification_method: 'MICRO_DEPOSIT',\n address: {\n address1: '5 Broad Street',\n city: 'New York',\n country: 'USA',\n postal_code: '10001',\n state: 'NY',\n },\n name: 'John Does Checking',\n});\n\nconsole.log(externalBankAccount.company_id);",
},
- http: {
+ python: {
+ method: 'external_bank_accounts.create',
example:
- 'curl https://api.lithic.com/v1/external_bank_accounts \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "account_number": "12345678901234567",\n "country": "USD",\n "currency": "USD",\n "financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "owner": "owner",\n "owner_type": "INDIVIDUAL",\n "routing_number": "123456789",\n "type": "CHECKING",\n "verification_method": "MANUAL"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_bank_account = client.external_bank_accounts.create(\n account_number="13719713158835300",\n country="USA",\n currency="USD",\n financial_account_token="dabadb3b-700c-41e3-8801-d5dfc84ebea0",\n owner="John Doe",\n owner_type="BUSINESS",\n routing_number="011103093",\n type="CHECKING",\n verification_method="MICRO_DEPOSIT",\n address={\n "address1": "5 Broad Street",\n "city": "New York",\n "country": "USA",\n "postal_code": "10001",\n "state": "NY",\n },\n name="John Does Checking",\n)\nprint(external_bank_account.company_id)',
},
java: {
method: 'externalBankAccounts().create',
@@ -6851,20 +6852,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalBankAccountCreateParams\nimport com.lithic.api.models.ExternalBankAccountCreateResponse\nimport com.lithic.api.models.OwnerType\nimport com.lithic.api.models.VerificationMethod\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ExternalBankAccountCreateParams.Body.BankVerifiedCreateBankAccountApiRequest = ExternalBankAccountCreateParams.Body.BankVerifiedCreateBankAccountApiRequest.builder()\n .accountNumber("13719713158835300")\n .country("USA")\n .currency("USD")\n .financialAccountToken("dabadb3b-700c-41e3-8801-d5dfc84ebea0")\n .owner("John Doe")\n .ownerType(OwnerType.BUSINESS)\n .routingNumber("011103093")\n .type(ExternalBankAccountCreateParams.Body.BankVerifiedCreateBankAccountApiRequest.AccountType.CHECKING)\n .verificationMethod(VerificationMethod.MICRO_DEPOSIT)\n .build()\n val externalBankAccount: ExternalBankAccountCreateResponse = client.externalBankAccounts().create(params)\n}',
},
- python: {
- method: 'external_bank_accounts.create',
+ go: {
+ method: 'client.ExternalBankAccounts.New',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_bank_account = client.external_bank_accounts.create(\n account_number="13719713158835300",\n country="USA",\n currency="USD",\n financial_account_token="dabadb3b-700c-41e3-8801-d5dfc84ebea0",\n owner="John Doe",\n owner_type="BUSINESS",\n routing_number="011103093",\n type="CHECKING",\n verification_method="MICRO_DEPOSIT",\n address={\n "address1": "5 Broad Street",\n "city": "New York",\n "country": "USA",\n "postal_code": "10001",\n "state": "NY",\n },\n name="John Does Checking",\n)\nprint(external_bank_account.company_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalBankAccount, err := client.ExternalBankAccounts.New(context.TODO(), lithic.ExternalBankAccountNewParams{\n\t\tBody: lithic.ExternalBankAccountNewParamsBodyBankVerifiedCreateBankAccountAPIRequest{\n\t\t\tAccountNumber: lithic.F("13719713158835300"),\n\t\t\tCountry: lithic.F("USA"),\n\t\t\tCurrency: lithic.F("USD"),\n\t\t\tFinancialAccountToken: lithic.F("dabadb3b-700c-41e3-8801-d5dfc84ebea0"),\n\t\t\tOwner: lithic.F("John Doe"),\n\t\t\tOwnerType: lithic.F(lithic.OwnerTypeBusiness),\n\t\t\tRoutingNumber: lithic.F("011103093"),\n\t\t\tType: lithic.F(lithic.ExternalBankAccountNewParamsBodyBankVerifiedCreateBankAccountAPIRequestTypeChecking),\n\t\t\tVerificationMethod: lithic.F(lithic.VerificationMethodMicroDeposit),\n\t\t},\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalBankAccount.CompanyID)\n}\n',
},
ruby: {
method: 'external_bank_accounts.create',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_bank_account = lithic.external_bank_accounts.create(\n body: {\n account_number: "13719713158835300",\n country: "USA",\n currency: "USD",\n financial_account_token: "dabadb3b-700c-41e3-8801-d5dfc84ebea0",\n owner: "John Doe",\n owner_type: :BUSINESS,\n routing_number: "011103093",\n type: :CHECKING,\n verification_method: :MICRO_DEPOSIT\n }\n)\n\nputs(external_bank_account)',
},
- typescript: {
- method: 'client.externalBankAccounts.create',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalBankAccount = await client.externalBankAccounts.create({\n account_number: '13719713158835300',\n country: 'USA',\n currency: 'USD',\n financial_account_token: 'dabadb3b-700c-41e3-8801-d5dfc84ebea0',\n owner: 'John Doe',\n owner_type: 'BUSINESS',\n routing_number: '011103093',\n type: 'CHECKING',\n verification_method: 'MICRO_DEPOSIT',\n address: {\n address1: '5 Broad Street',\n city: 'New York',\n country: 'USA',\n postal_code: '10001',\n state: 'NY',\n },\n name: 'John Does Checking',\n});\n\nconsole.log(externalBankAccount.company_id);",
+ 'curl https://api.lithic.com/v1/external_bank_accounts \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "account_number": "12345678901234567",\n "country": "USD",\n "currency": "USD",\n "financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "owner": "owner",\n "owner_type": "INDIVIDUAL",\n "routing_number": "123456789",\n "type": "CHECKING",\n "verification_method": "MANUAL"\n }\'',
},
},
},
@@ -6882,14 +6882,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.externalBankAccounts.retrieve(external_bank_account_token: string): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**get** `/v1/external_bank_accounts/{external_bank_account_token}`\n\nGet the external bank account by token.\n\n### Parameters\n\n- `external_bank_account_token: string`\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'BUSINESS' | 'INDIVIDUAL'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalBankAccount = await client.externalBankAccounts.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(externalBankAccount);\n```",
perLanguage: {
- go: {
- method: 'client.ExternalBankAccounts.Get',
+ typescript: {
+ method: 'client.externalBankAccounts.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalBankAccount, err := client.ExternalBankAccounts.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalBankAccount.CompanyID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalBankAccount = await client.externalBankAccounts.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(externalBankAccount.company_id);",
},
- http: {
+ python: {
+ method: 'external_bank_accounts.retrieve',
example:
- 'curl https://api.lithic.com/v1/external_bank_accounts/$EXTERNAL_BANK_ACCOUNT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_bank_account = client.external_bank_accounts.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(external_bank_account.company_id)',
},
java: {
method: 'externalBankAccounts().retrieve',
@@ -6901,20 +6902,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalBankAccountRetrieveParams\nimport com.lithic.api.models.ExternalBankAccountRetrieveResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val externalBankAccount: ExternalBankAccountRetrieveResponse = client.externalBankAccounts().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'external_bank_accounts.retrieve',
+ go: {
+ method: 'client.ExternalBankAccounts.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_bank_account = client.external_bank_accounts.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(external_bank_account.company_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalBankAccount, err := client.ExternalBankAccounts.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalBankAccount.CompanyID)\n}\n',
},
ruby: {
method: 'external_bank_accounts.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_bank_account = lithic.external_bank_accounts.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(external_bank_account)',
},
- typescript: {
- method: 'client.externalBankAccounts.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalBankAccount = await client.externalBankAccounts.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(externalBankAccount.company_id);",
+ 'curl https://api.lithic.com/v1/external_bank_accounts/$EXTERNAL_BANK_ACCOUNT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -6943,14 +6943,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## update\n\n`client.externalBankAccounts.update(external_bank_account_token: string, address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }, company_id?: string, dob?: string, doing_business_as?: string, name?: string, owner?: string, owner_type?: 'INDIVIDUAL' | 'BUSINESS', type?: 'CHECKING' | 'SAVINGS', user_defined_id?: string): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**patch** `/v1/external_bank_accounts/{external_bank_account_token}`\n\nUpdate the external bank account by token.\n\n### Parameters\n\n- `external_bank_account_token: string`\n\n- `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n Address\n - `address1: string`\n - `city: string`\n - `country: string`\n - `postal_code: string`\n - `state: string`\n - `address2?: string`\n\n- `company_id?: string`\n Optional field that helps identify bank accounts in receipts\n\n- `dob?: string`\n Date of Birth of the Individual that owns the external bank account\n\n- `doing_business_as?: string`\n Doing Business As\n\n- `name?: string`\n The nickname for this External Bank Account\n\n- `owner?: string`\n Legal Name of the business or individual who owns the external account. This will appear in statements\n\n- `owner_type?: 'INDIVIDUAL' | 'BUSINESS'`\n Owner Type\n\n- `type?: 'CHECKING' | 'SAVINGS'`\n\n- `user_defined_id?: string`\n User Defined ID\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'BUSINESS' | 'INDIVIDUAL'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalBankAccount = await client.externalBankAccounts.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(externalBankAccount);\n```",
perLanguage: {
- go: {
- method: 'client.ExternalBankAccounts.Update',
+ typescript: {
+ method: 'client.externalBankAccounts.update',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalBankAccount, err := client.ExternalBankAccounts.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalBankAccountUpdateParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalBankAccount.CompanyID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalBankAccount = await client.externalBankAccounts.update(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(externalBankAccount.company_id);",
},
- http: {
+ python: {
+ method: 'external_bank_accounts.update',
example:
- "curl https://api.lithic.com/v1/external_bank_accounts/$EXTERNAL_BANK_ACCOUNT_TOKEN \\\n -X PATCH \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_bank_account = client.external_bank_accounts.update(\n external_bank_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(external_bank_account.company_id)',
},
java: {
method: 'externalBankAccounts().update',
@@ -6962,20 +6963,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalBankAccountUpdateParams\nimport com.lithic.api.models.ExternalBankAccountUpdateResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val externalBankAccount: ExternalBankAccountUpdateResponse = client.externalBankAccounts().update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'external_bank_accounts.update',
+ go: {
+ method: 'client.ExternalBankAccounts.Update',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_bank_account = client.external_bank_accounts.update(\n external_bank_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(external_bank_account.company_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalBankAccount, err := client.ExternalBankAccounts.Update(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalBankAccountUpdateParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalBankAccount.CompanyID)\n}\n',
},
ruby: {
method: 'external_bank_accounts.update',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_bank_account = lithic.external_bank_accounts.update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(external_bank_account)',
},
- typescript: {
- method: 'client.externalBankAccounts.update',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalBankAccount = await client.externalBankAccounts.update(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(externalBankAccount.company_id);",
+ "curl https://api.lithic.com/v1/external_bank_accounts/$EXTERNAL_BANK_ACCOUNT_TOKEN \\\n -X PATCH \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
},
},
},
@@ -6993,14 +6993,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retry_micro_deposits\n\n`client.externalBankAccounts.retryMicroDeposits(external_bank_account_token: string, financial_account_token?: string): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**post** `/v1/external_bank_accounts/{external_bank_account_token}/retry_micro_deposits`\n\nRetry external bank account micro deposit verification.\n\n### Parameters\n\n- `external_bank_account_token: string`\n\n- `financial_account_token?: string`\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'BUSINESS' | 'INDIVIDUAL'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.externalBankAccounts.retryMicroDeposits('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.ExternalBankAccounts.RetryMicroDeposits',
+ typescript: {
+ method: 'client.externalBankAccounts.retryMicroDeposits',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.ExternalBankAccounts.RetryMicroDeposits(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalBankAccountRetryMicroDepositsParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.CompanyID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.externalBankAccounts.retryMicroDeposits(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(response.company_id);",
},
- http: {
+ python: {
+ method: 'external_bank_accounts.retry_micro_deposits',
example:
- 'curl https://api.lithic.com/v1/external_bank_accounts/$EXTERNAL_BANK_ACCOUNT_TOKEN/retry_micro_deposits \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.external_bank_accounts.retry_micro_deposits(\n external_bank_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.company_id)',
},
java: {
method: 'externalBankAccounts().retryMicroDeposits',
@@ -7012,20 +7013,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalBankAccountRetryMicroDepositsParams\nimport com.lithic.api.models.ExternalBankAccountRetryMicroDepositsResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: ExternalBankAccountRetryMicroDepositsResponse = client.externalBankAccounts().retryMicroDeposits("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'external_bank_accounts.retry_micro_deposits',
+ go: {
+ method: 'client.ExternalBankAccounts.RetryMicroDeposits',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.external_bank_accounts.retry_micro_deposits(\n external_bank_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.company_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.ExternalBankAccounts.RetryMicroDeposits(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalBankAccountRetryMicroDepositsParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.CompanyID)\n}\n',
},
ruby: {
method: 'external_bank_accounts.retry_micro_deposits',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.external_bank_accounts.retry_micro_deposits("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(response)',
},
- typescript: {
- method: 'client.externalBankAccounts.retryMicroDeposits',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.externalBankAccounts.retryMicroDeposits(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(response.company_id);",
+ 'curl https://api.lithic.com/v1/external_bank_accounts/$EXTERNAL_BANK_ACCOUNT_TOKEN/retry_micro_deposits \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -7043,14 +7043,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retry_prenote\n\n`client.externalBankAccounts.retryPrenote(external_bank_account_token: string, financial_account_token?: string): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: owner_type; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: verification_method; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**post** `/v1/external_bank_accounts/{external_bank_account_token}/retry_prenote`\n\nRetry external bank account prenote verification.\n\n### Parameters\n\n- `external_bank_account_token: string`\n\n- `financial_account_token?: string`\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'INDIVIDUAL' | 'BUSINESS'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED' | 'UNVERIFIED'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'INDIVIDUAL' | 'BUSINESS'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED' | 'UNVERIFIED'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalBankAccount = await client.externalBankAccounts.retryPrenote('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(externalBankAccount);\n```",
perLanguage: {
- go: {
- method: 'client.ExternalBankAccounts.RetryPrenote',
+ typescript: {
+ method: 'client.externalBankAccounts.retryPrenote',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalBankAccount, err := client.ExternalBankAccounts.RetryPrenote(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalBankAccountRetryPrenoteParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalBankAccount.CompanyID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalBankAccount = await client.externalBankAccounts.retryPrenote(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(externalBankAccount.company_id);",
},
- http: {
+ python: {
+ method: 'external_bank_accounts.retry_prenote',
example:
- 'curl https://api.lithic.com/v1/external_bank_accounts/$EXTERNAL_BANK_ACCOUNT_TOKEN/retry_prenote \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_bank_account = client.external_bank_accounts.retry_prenote(\n external_bank_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(external_bank_account.company_id)',
},
java: {
method: 'externalBankAccounts().retryPrenote',
@@ -7062,20 +7063,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalBankAccount\nimport com.lithic.api.models.ExternalBankAccountRetryPrenoteParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val externalBankAccount: ExternalBankAccount = client.externalBankAccounts().retryPrenote("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'external_bank_accounts.retry_prenote',
+ go: {
+ method: 'client.ExternalBankAccounts.RetryPrenote',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_bank_account = client.external_bank_accounts.retry_prenote(\n external_bank_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(external_bank_account.company_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalBankAccount, err := client.ExternalBankAccounts.RetryPrenote(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalBankAccountRetryPrenoteParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalBankAccount.CompanyID)\n}\n',
},
ruby: {
method: 'external_bank_accounts.retry_prenote',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_bank_account = lithic.external_bank_accounts.retry_prenote("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(external_bank_account)',
},
- typescript: {
- method: 'client.externalBankAccounts.retryPrenote',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalBankAccount = await client.externalBankAccounts.retryPrenote(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(externalBankAccount.company_id);",
+ 'curl https://api.lithic.com/v1/external_bank_accounts/$EXTERNAL_BANK_ACCOUNT_TOKEN/retry_prenote \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -7093,14 +7093,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## unpause\n\n`client.externalBankAccounts.unpause(external_bank_account_token: string): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: owner_type; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: verification_method; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**post** `/v1/external_bank_accounts/{external_bank_account_token}/unpause`\n\nUnpause an external bank account\n\n\n### Parameters\n\n- `external_bank_account_token: string`\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'INDIVIDUAL' | 'BUSINESS'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED' | 'UNVERIFIED'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'INDIVIDUAL' | 'BUSINESS'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED' | 'UNVERIFIED'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalBankAccount = await client.externalBankAccounts.unpause('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(externalBankAccount);\n```",
perLanguage: {
- go: {
- method: 'client.ExternalBankAccounts.Unpause',
+ typescript: {
+ method: 'client.externalBankAccounts.unpause',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalBankAccount, err := client.ExternalBankAccounts.Unpause(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalBankAccount.CompanyID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalBankAccount = await client.externalBankAccounts.unpause(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(externalBankAccount.company_id);",
},
- http: {
+ python: {
+ method: 'external_bank_accounts.unpause',
example:
- 'curl https://api.lithic.com/v1/external_bank_accounts/$EXTERNAL_BANK_ACCOUNT_TOKEN/unpause \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_bank_account = client.external_bank_accounts.unpause(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(external_bank_account.company_id)',
},
java: {
method: 'externalBankAccounts().unpause',
@@ -7112,20 +7113,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalBankAccount\nimport com.lithic.api.models.ExternalBankAccountUnpauseParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val externalBankAccount: ExternalBankAccount = client.externalBankAccounts().unpause("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'external_bank_accounts.unpause',
+ go: {
+ method: 'client.ExternalBankAccounts.Unpause',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_bank_account = client.external_bank_accounts.unpause(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(external_bank_account.company_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalBankAccount, err := client.ExternalBankAccounts.Unpause(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalBankAccount.CompanyID)\n}\n',
},
ruby: {
method: 'external_bank_accounts.unpause',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_bank_account = lithic.external_bank_accounts.unpause("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(external_bank_account)',
},
- typescript: {
- method: 'client.externalBankAccounts.unpause',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalBankAccount = await client.externalBankAccounts.unpause(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(externalBankAccount.company_id);",
+ 'curl https://api.lithic.com/v1/external_bank_accounts/$EXTERNAL_BANK_ACCOUNT_TOKEN/unpause \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -7148,14 +7148,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## set_verification_method\n\n`client.externalBankAccounts.setVerificationMethod(external_bank_account_token: string, verification_method: 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED', financial_account_token?: string): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: owner_type; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: verification_method; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**post** `/v1/external_bank_accounts/{external_bank_account_token}/set_verification_method`\n\nUpdate the verification method for an external bank account. Verification method can only be updated\nif the `verification_state` is `PENDING`.\n\n\n### Parameters\n\n- `external_bank_account_token: string`\n\n- `verification_method: 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED'`\n The verification method to set for the external bank account\n\n- `financial_account_token?: string`\n The financial account token of the operating account to fund the micro deposits. Required when verification_method is MICRO_DEPOSIT or PRENOTE.\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'INDIVIDUAL' | 'BUSINESS'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED' | 'UNVERIFIED'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'INDIVIDUAL' | 'BUSINESS'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED' | 'UNVERIFIED'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalBankAccount = await client.externalBankAccounts.setVerificationMethod('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { verification_method: 'MICRO_DEPOSIT' });\n\nconsole.log(externalBankAccount);\n```",
perLanguage: {
- go: {
- method: 'client.ExternalBankAccounts.SetVerificationMethod',
+ typescript: {
+ method: 'client.externalBankAccounts.setVerificationMethod',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalBankAccount, err := client.ExternalBankAccounts.SetVerificationMethod(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalBankAccountSetVerificationMethodParams{\n\t\t\tVerificationMethod: lithic.F(lithic.ExternalBankAccountSetVerificationMethodParamsVerificationMethodMicroDeposit),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalBankAccount.CompanyID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalBankAccount = await client.externalBankAccounts.setVerificationMethod(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { verification_method: 'MICRO_DEPOSIT' },\n);\n\nconsole.log(externalBankAccount.company_id);",
},
- http: {
+ python: {
+ method: 'external_bank_accounts.set_verification_method',
example:
- 'curl https://api.lithic.com/v1/external_bank_accounts/$EXTERNAL_BANK_ACCOUNT_TOKEN/set_verification_method \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "verification_method": "MICRO_DEPOSIT"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_bank_account = client.external_bank_accounts.set_verification_method(\n external_bank_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n verification_method="MICRO_DEPOSIT",\n)\nprint(external_bank_account.company_id)',
},
java: {
method: 'externalBankAccounts().setVerificationMethod',
@@ -7167,20 +7168,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalBankAccount\nimport com.lithic.api.models.ExternalBankAccountSetVerificationMethodParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ExternalBankAccountSetVerificationMethodParams = ExternalBankAccountSetVerificationMethodParams.builder()\n .externalBankAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .verificationMethod(ExternalBankAccountSetVerificationMethodParams.SetVerificationMethodAllowedVerificationMethods.MICRO_DEPOSIT)\n .build()\n val externalBankAccount: ExternalBankAccount = client.externalBankAccounts().setVerificationMethod(params)\n}',
},
- python: {
- method: 'external_bank_accounts.set_verification_method',
+ go: {
+ method: 'client.ExternalBankAccounts.SetVerificationMethod',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_bank_account = client.external_bank_accounts.set_verification_method(\n external_bank_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n verification_method="MICRO_DEPOSIT",\n)\nprint(external_bank_account.company_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalBankAccount, err := client.ExternalBankAccounts.SetVerificationMethod(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalBankAccountSetVerificationMethodParams{\n\t\t\tVerificationMethod: lithic.F(lithic.ExternalBankAccountSetVerificationMethodParamsVerificationMethodMicroDeposit),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalBankAccount.CompanyID)\n}\n',
},
ruby: {
method: 'external_bank_accounts.set_verification_method',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_bank_account = lithic.external_bank_accounts.set_verification_method(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n verification_method: :MICRO_DEPOSIT\n)\n\nputs(external_bank_account)',
},
- typescript: {
- method: 'client.externalBankAccounts.setVerificationMethod',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalBankAccount = await client.externalBankAccounts.setVerificationMethod(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { verification_method: 'MICRO_DEPOSIT' },\n);\n\nconsole.log(externalBankAccount.company_id);",
+ 'curl https://api.lithic.com/v1/external_bank_accounts/$EXTERNAL_BANK_ACCOUNT_TOKEN/set_verification_method \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "verification_method": "MICRO_DEPOSIT"\n }\'',
},
},
},
@@ -7198,14 +7198,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## create\n\n`client.externalBankAccounts.microDeposits.create(external_bank_account_token: string, micro_deposits: number[]): { token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: external_bank_account_address; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n**post** `/v1/external_bank_accounts/{external_bank_account_token}/micro_deposits`\n\nVerify the external bank account by providing the micro deposit amounts.\n\n### Parameters\n\n- `external_bank_account_token: string`\n\n- `micro_deposits: number[]`\n\n### Returns\n\n- `{ token: string; country: string; created: string; currency: string; last_four: string; owner: string; owner_type: 'BUSINESS' | 'INDIVIDUAL'; routing_number: string; state: 'ENABLED' | 'CLOSED' | 'PAUSED'; type: 'CHECKING' | 'SAVINGS'; verification_attempts: number; verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'; verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'; account_token?: string; address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }; company_id?: string; dob?: string; doing_business_as?: string; financial_account_token?: string; name?: string; user_defined_id?: string; verification_failed_reason?: string; }`\n\n - `token: string`\n - `country: string`\n - `created: string`\n - `currency: string`\n - `last_four: string`\n - `owner: string`\n - `owner_type: 'BUSINESS' | 'INDIVIDUAL'`\n - `routing_number: string`\n - `state: 'ENABLED' | 'CLOSED' | 'PAUSED'`\n - `type: 'CHECKING' | 'SAVINGS'`\n - `verification_attempts: number`\n - `verification_method: 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE'`\n - `verification_state: 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS'`\n - `account_token?: string`\n - `address?: { address1: string; city: string; country: string; postal_code: string; state: string; address2?: string; }`\n - `company_id?: string`\n - `dob?: string`\n - `doing_business_as?: string`\n - `financial_account_token?: string`\n - `name?: string`\n - `user_defined_id?: string`\n - `verification_failed_reason?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst microDeposit = await client.externalBankAccounts.microDeposits.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { micro_deposits: [0, 0] });\n\nconsole.log(microDeposit);\n```",
perLanguage: {
- go: {
- method: 'client.ExternalBankAccounts.MicroDeposits.New',
+ typescript: {
+ method: 'client.externalBankAccounts.microDeposits.create',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tmicroDeposit, err := client.ExternalBankAccounts.MicroDeposits.New(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalBankAccountMicroDepositNewParams{\n\t\t\tMicroDeposits: lithic.F([]int64{int64(0), int64(0)}),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", microDeposit.CompanyID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst microDeposit = await client.externalBankAccounts.microDeposits.create(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { micro_deposits: [0, 0] },\n);\n\nconsole.log(microDeposit.company_id);",
},
- http: {
+ python: {
+ method: 'external_bank_accounts.micro_deposits.create',
example:
- 'curl https://api.lithic.com/v1/external_bank_accounts/$EXTERNAL_BANK_ACCOUNT_TOKEN/micro_deposits \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "micro_deposits": [\n 0,\n 0\n ]\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nmicro_deposit = client.external_bank_accounts.micro_deposits.create(\n external_bank_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n micro_deposits=[0, 0],\n)\nprint(micro_deposit.company_id)',
},
java: {
method: 'externalBankAccounts().microDeposits().create',
@@ -7217,20 +7218,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalBankAccountMicroDepositCreateParams\nimport com.lithic.api.models.MicroDepositCreateResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ExternalBankAccountMicroDepositCreateParams = ExternalBankAccountMicroDepositCreateParams.builder()\n .externalBankAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .addMicroDeposit(0L)\n .addMicroDeposit(0L)\n .build()\n val microDeposit: MicroDepositCreateResponse = client.externalBankAccounts().microDeposits().create(params)\n}',
},
- python: {
- method: 'external_bank_accounts.micro_deposits.create',
+ go: {
+ method: 'client.ExternalBankAccounts.MicroDeposits.New',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nmicro_deposit = client.external_bank_accounts.micro_deposits.create(\n external_bank_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n micro_deposits=[0, 0],\n)\nprint(micro_deposit.company_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tmicroDeposit, err := client.ExternalBankAccounts.MicroDeposits.New(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalBankAccountMicroDepositNewParams{\n\t\t\tMicroDeposits: lithic.F([]int64{int64(0), int64(0)}),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", microDeposit.CompanyID)\n}\n',
},
ruby: {
method: 'external_bank_accounts.micro_deposits.create',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nmicro_deposit = lithic.external_bank_accounts.micro_deposits.create(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n micro_deposits: [0, 0]\n)\n\nputs(micro_deposit)',
},
- typescript: {
- method: 'client.externalBankAccounts.microDeposits.create',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst microDeposit = await client.externalBankAccounts.microDeposits.create(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { micro_deposits: [0, 0] },\n);\n\nconsole.log(microDeposit.company_id);",
+ 'curl https://api.lithic.com/v1/external_bank_accounts/$EXTERNAL_BANK_ACCOUNT_TOKEN/micro_deposits \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "micro_deposits": [\n 0,\n 0\n ]\n }\'',
},
},
},
@@ -7260,13 +7260,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.payments.list(account_token?: string, begin?: string, business_account_token?: string, category?: 'ACH', end?: string, ending_before?: string, financial_account_token?: string, page_size?: number, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'DECLINED' | 'PENDING' | 'RETURNED' | 'SETTLED'): { token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: object[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: object | object; pending_amount: number; related_account_tokens: object; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n\n**get** `/v1/payments`\n\nList all the payments for the provided search criteria.\n\n### Parameters\n\n- `account_token?: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `business_account_token?: string`\n\n- `category?: 'ACH'`\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `financial_account_token?: string`\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `result?: 'APPROVED' | 'DECLINED'`\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'DECLINED' | 'PENDING' | 'RETURNED' | 'SETTLED'`\n\n### Returns\n\n- `{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: object; debtor?: object; message_id?: string; remittance_information?: string; }; pending_amount: number; related_account_tokens: { account_token: string; business_account_token: string; }; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n Payment transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `descriptor: string`\n - `direction: 'CREDIT' | 'DEBIT'`\n - `events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]`\n - `family: 'PAYMENT'`\n - `financial_account_token: string`\n - `method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'`\n - `method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: { account_number?: string; agent_id?: string; agent_name?: string; name?: string; }; debtor?: { account_number?: string; agent_id?: string; agent_name?: string; name?: string; }; message_id?: string; remittance_information?: string; }`\n - `pending_amount: number`\n - `related_account_tokens: { account_token: string; business_account_token: string; }`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `currency?: string`\n - `expected_release_date?: string`\n - `external_bank_account_token?: string`\n - `type?: string`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const payment of client.payments.list()) {\n console.log(payment);\n}\n```",
perLanguage: {
- go: {
- method: 'client.Payments.List',
+ typescript: {
+ method: 'client.payments.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Payments.List(context.TODO(), lithic.PaymentListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const payment of client.payments.list()) {\n console.log(payment.user_defined_id);\n}",
},
- http: {
- example: 'curl https://api.lithic.com/v1/payments \\\n -H "Authorization: $LITHIC_API_KEY"',
+ python: {
+ method: 'payments.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.payments.list()\npage = page.data[0]\nprint(page.user_defined_id)',
},
java: {
method: 'payments().list',
@@ -7278,20 +7280,18 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.PaymentListPage\nimport com.lithic.api.models.PaymentListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: PaymentListPage = client.payments().list()\n}',
},
- python: {
- method: 'payments.list',
+ go: {
+ method: 'client.Payments.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.payments.list()\npage = page.data[0]\nprint(page.user_defined_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Payments.List(context.TODO(), lithic.PaymentListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'payments.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.payments.list\n\nputs(page)',
},
- typescript: {
- method: 'client.payments.list',
- example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const payment of client.payments.list()) {\n console.log(payment.user_defined_id);\n}",
+ http: {
+ example: 'curl https://api.lithic.com/v1/payments \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -7320,14 +7320,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## create\n\n`client.payments.create(amount: number, external_bank_account_token: string, financial_account_token: string, method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY', method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB'; ach_hold_period?: number; addenda?: string; override_company_name?: string; }, type: 'COLLECTION' | 'PAYMENT', token?: string, hold?: { token: string; }, memo?: string, user_defined_id?: string): object`\n\n**post** `/v1/payments`\n\nInitiates a payment between a financial account and an external bank account.\n\n### Parameters\n\n- `amount: number`\n\n- `external_bank_account_token: string`\n\n- `financial_account_token: string`\n\n- `method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY'`\n\n- `method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB'; ach_hold_period?: number; addenda?: string; override_company_name?: string; }`\n - `sec_code: 'CCD' | 'PPD' | 'WEB'`\n - `ach_hold_period?: number`\n Number of days to hold the ACH payment\n - `addenda?: string`\n - `override_company_name?: string`\n Value to override the configured company name with. Can only be used if allowed to override\n\n- `type: 'COLLECTION' | 'PAYMENT'`\n\n- `token?: string`\n Customer-provided token that will serve as an idempotency token. This token will become the transaction token.\n\n- `hold?: { token: string; }`\n Optional hold to settle when this payment is initiated.\n - `token: string`\n Token of the hold to settle when this payment is initiated.\n\n- `memo?: string`\n\n- `user_defined_id?: string`\n\n### Returns\n\n- `{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: wire_party_details; debtor?: wire_party_details; message_id?: string; remittance_information?: string; }; pending_amount: number; related_account_tokens: { account_token: string; business_account_token: string; }; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n Payment transaction\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst payment = await client.payments.create({\n amount: 1,\n external_bank_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n method: 'ACH_NEXT_DAY',\n method_attributes: { sec_code: 'CCD' },\n type: 'COLLECTION',\n});\n\nconsole.log(payment);\n```",
perLanguage: {
- go: {
- method: 'client.Payments.New',
+ typescript: {
+ method: 'client.payments.create',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpayment, err := client.Payments.New(context.TODO(), lithic.PaymentNewParams{\n\t\tAmount: lithic.F(int64(1)),\n\t\tExternalBankAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tFinancialAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tMethod: lithic.F(lithic.PaymentNewParamsMethodACHNextDay),\n\t\tMethodAttributes: lithic.F(lithic.PaymentNewParamsMethodAttributes{\n\t\t\tSecCode: lithic.F(lithic.PaymentNewParamsMethodAttributesSecCodeCcd),\n\t\t}),\n\t\tType: lithic.F(lithic.PaymentNewParamsTypeCollection),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", payment)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst payment = await client.payments.create({\n amount: 1,\n external_bank_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n method: 'ACH_NEXT_DAY',\n method_attributes: { sec_code: 'CCD' },\n type: 'COLLECTION',\n});\n\nconsole.log(payment);",
},
- http: {
+ python: {
+ method: 'payments.create',
example:
- 'curl https://api.lithic.com/v1/payments \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 1,\n "external_bank_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "method": "ACH_NEXT_DAY",\n "method_attributes": {\n "sec_code": "CCD"\n },\n "type": "COLLECTION"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npayment = client.payments.create(\n amount=1,\n external_bank_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n method="ACH_NEXT_DAY",\n method_attributes={\n "sec_code": "CCD"\n },\n type="COLLECTION",\n)\nprint(payment)',
},
java: {
method: 'payments().create',
@@ -7339,20 +7340,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.PaymentCreateParams\nimport com.lithic.api.models.PaymentCreateResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: PaymentCreateParams = PaymentCreateParams.builder()\n .amount(1L)\n .externalBankAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .method(PaymentCreateParams.Method.ACH_NEXT_DAY)\n .methodAttributes(PaymentCreateParams.PaymentMethodRequestAttributes.builder()\n .secCode(PaymentCreateParams.PaymentMethodRequestAttributes.SecCode.CCD)\n .build())\n .type(PaymentCreateParams.Type.COLLECTION)\n .build()\n val payment: PaymentCreateResponse = client.payments().create(params)\n}',
},
- python: {
- method: 'payments.create',
+ go: {
+ method: 'client.Payments.New',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npayment = client.payments.create(\n amount=1,\n external_bank_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n method="ACH_NEXT_DAY",\n method_attributes={\n "sec_code": "CCD"\n },\n type="COLLECTION",\n)\nprint(payment)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpayment, err := client.Payments.New(context.TODO(), lithic.PaymentNewParams{\n\t\tAmount: lithic.F(int64(1)),\n\t\tExternalBankAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tFinancialAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tMethod: lithic.F(lithic.PaymentNewParamsMethodACHNextDay),\n\t\tMethodAttributes: lithic.F(lithic.PaymentNewParamsMethodAttributes{\n\t\t\tSecCode: lithic.F(lithic.PaymentNewParamsMethodAttributesSecCodeCcd),\n\t\t}),\n\t\tType: lithic.F(lithic.PaymentNewParamsTypeCollection),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", payment)\n}\n',
},
ruby: {
method: 'payments.create',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npayment = lithic.payments.create(\n amount: 1,\n external_bank_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n method_: :ACH_NEXT_DAY,\n method_attributes: {sec_code: :CCD},\n type: :COLLECTION\n)\n\nputs(payment)',
},
- typescript: {
- method: 'client.payments.create',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst payment = await client.payments.create({\n amount: 1,\n external_bank_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n method: 'ACH_NEXT_DAY',\n method_attributes: { sec_code: 'CCD' },\n type: 'COLLECTION',\n});\n\nconsole.log(payment);",
+ 'curl https://api.lithic.com/v1/payments \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 1,\n "external_bank_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "method": "ACH_NEXT_DAY",\n "method_attributes": {\n "sec_code": "CCD"\n },\n "type": "COLLECTION"\n }\'',
},
},
},
@@ -7370,14 +7370,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.payments.retrieve(payment_token: string): { token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: object[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: object | object; pending_amount: number; related_account_tokens: object; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n\n**get** `/v1/payments/{payment_token}`\n\nGet the payment by token.\n\n### Parameters\n\n- `payment_token: string`\n\n### Returns\n\n- `{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: object; debtor?: object; message_id?: string; remittance_information?: string; }; pending_amount: number; related_account_tokens: { account_token: string; business_account_token: string; }; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n Payment transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `descriptor: string`\n - `direction: 'CREDIT' | 'DEBIT'`\n - `events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]`\n - `family: 'PAYMENT'`\n - `financial_account_token: string`\n - `method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'`\n - `method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: { account_number?: string; agent_id?: string; agent_name?: string; name?: string; }; debtor?: { account_number?: string; agent_id?: string; agent_name?: string; name?: string; }; message_id?: string; remittance_information?: string; }`\n - `pending_amount: number`\n - `related_account_tokens: { account_token: string; business_account_token: string; }`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `currency?: string`\n - `expected_release_date?: string`\n - `external_bank_account_token?: string`\n - `type?: string`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst payment = await client.payments.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(payment);\n```",
perLanguage: {
- go: {
- method: 'client.Payments.Get',
+ typescript: {
+ method: 'client.payments.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpayment, err := client.Payments.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", payment.UserDefinedID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst payment = await client.payments.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(payment.user_defined_id);",
},
- http: {
+ python: {
+ method: 'payments.retrieve',
example:
- 'curl https://api.lithic.com/v1/payments/$PAYMENT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npayment = client.payments.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(payment.user_defined_id)',
},
java: {
method: 'payments().retrieve',
@@ -7389,20 +7390,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Payment\nimport com.lithic.api.models.PaymentRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val payment: Payment = client.payments().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'payments.retrieve',
+ go: {
+ method: 'client.Payments.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npayment = client.payments.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(payment.user_defined_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpayment, err := client.Payments.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", payment.UserDefinedID)\n}\n',
},
ruby: {
method: 'payments.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npayment = lithic.payments.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(payment)',
},
- typescript: {
- method: 'client.payments.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst payment = await client.payments.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(payment.user_defined_id);",
+ 'curl https://api.lithic.com/v1/payments/$PAYMENT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -7420,14 +7420,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## simulate_release\n\n`client.payments.simulateRelease(payment_token: string): { debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n**post** `/v1/simulate/payments/release`\n\nSimulates a release of a Payment.\n\n### Parameters\n\n- `payment_token: string`\n Payment Token\n\n### Returns\n\n- `{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n - `debugging_request_id: string`\n - `result: 'APPROVED' | 'DECLINED'`\n - `transaction_event_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.payments.simulateRelease({ payment_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.Payments.SimulateRelease',
+ typescript: {
+ method: 'client.payments.simulateRelease',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Payments.SimulateRelease(context.TODO(), lithic.PaymentSimulateReleaseParams{\n\t\tPaymentToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.payments.simulateRelease({\n payment_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(response.debugging_request_id);",
},
- http: {
+ python: {
+ method: 'payments.simulate_release',
example:
- 'curl https://api.lithic.com/v1/simulate/payments/release \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "payment_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.payments.simulate_release(\n payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.debugging_request_id)',
},
java: {
method: 'payments().simulateRelease',
@@ -7439,20 +7440,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.PaymentSimulateReleaseParams\nimport com.lithic.api.models.PaymentSimulateReleaseResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: PaymentSimulateReleaseParams = PaymentSimulateReleaseParams.builder()\n .paymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val response: PaymentSimulateReleaseResponse = client.payments().simulateRelease(params)\n}',
},
- python: {
- method: 'payments.simulate_release',
+ go: {
+ method: 'client.Payments.SimulateRelease',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.payments.simulate_release(\n payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.debugging_request_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Payments.SimulateRelease(context.TODO(), lithic.PaymentSimulateReleaseParams{\n\t\tPaymentToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
},
ruby: {
method: 'payments.simulate_release',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.payments.simulate_release(payment_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(response)',
},
- typescript: {
- method: 'client.payments.simulateRelease',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.payments.simulateRelease({\n payment_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(response.debugging_request_id);",
+ 'curl https://api.lithic.com/v1/simulate/payments/release \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "payment_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n }\'',
},
},
},
@@ -7470,14 +7470,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## simulate_return\n\n`client.payments.simulateReturn(payment_token: string, return_reason_code?: string): { debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n**post** `/v1/simulate/payments/return`\n\nSimulates a return of a Payment.\n\n### Parameters\n\n- `payment_token: string`\n Payment Token\n\n- `return_reason_code?: string`\n Return Reason Code\n\n### Returns\n\n- `{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n - `debugging_request_id: string`\n - `result: 'APPROVED' | 'DECLINED'`\n - `transaction_event_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.payments.simulateReturn({ payment_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.Payments.SimulateReturn',
+ typescript: {
+ method: 'client.payments.simulateReturn',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Payments.SimulateReturn(context.TODO(), lithic.PaymentSimulateReturnParams{\n\t\tPaymentToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.payments.simulateReturn({\n payment_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(response.debugging_request_id);",
},
- http: {
+ python: {
+ method: 'payments.simulate_return',
example:
- 'curl https://api.lithic.com/v1/simulate/payments/return \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "payment_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "return_reason_code": "R12"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.payments.simulate_return(\n payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.debugging_request_id)',
},
java: {
method: 'payments().simulateReturn',
@@ -7489,20 +7490,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.PaymentSimulateReturnParams\nimport com.lithic.api.models.PaymentSimulateReturnResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: PaymentSimulateReturnParams = PaymentSimulateReturnParams.builder()\n .paymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val response: PaymentSimulateReturnResponse = client.payments().simulateReturn(params)\n}',
},
- python: {
- method: 'payments.simulate_return',
+ go: {
+ method: 'client.Payments.SimulateReturn',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.payments.simulate_return(\n payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.debugging_request_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Payments.SimulateReturn(context.TODO(), lithic.PaymentSimulateReturnParams{\n\t\tPaymentToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
},
ruby: {
method: 'payments.simulate_return',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.payments.simulate_return(payment_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(response)',
},
- typescript: {
- method: 'client.payments.simulateReturn',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.payments.simulateReturn({\n payment_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(response.debugging_request_id);",
+ 'curl https://api.lithic.com/v1/simulate/payments/return \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "payment_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "return_reason_code": "R12"\n }\'',
},
},
},
@@ -7520,14 +7520,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retry\n\n`client.payments.retry(payment_token: string): object`\n\n**post** `/v1/payments/{payment_token}/retry`\n\nRetry an origination which has been returned.\n\n### Parameters\n\n- `payment_token: string`\n\n### Returns\n\n- `{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: wire_party_details; debtor?: wire_party_details; message_id?: string; remittance_information?: string; }; pending_amount: number; related_account_tokens: { account_token: string; business_account_token: string; }; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n Payment transaction\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.payments.retry('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.Payments.Retry',
+ typescript: {
+ method: 'client.payments.retry',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Payments.Retry(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.payments.retry('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);",
},
- http: {
+ python: {
+ method: 'payments.retry',
example:
- 'curl https://api.lithic.com/v1/payments/$PAYMENT_TOKEN/retry \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.payments.retry(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response)',
},
java: {
method: 'payments().retry',
@@ -7539,20 +7540,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.PaymentRetryParams\nimport com.lithic.api.models.PaymentRetryResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: PaymentRetryResponse = client.payments().retry("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'payments.retry',
+ go: {
+ method: 'client.Payments.Retry',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.payments.retry(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Payments.Retry(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response)\n}\n',
},
ruby: {
method: 'payments.retry_',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.payments.retry_("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(response)',
},
- typescript: {
- method: 'client.payments.retry',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.payments.retry('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);",
+ 'curl https://api.lithic.com/v1/payments/$PAYMENT_TOKEN/retry \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -7578,14 +7578,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## return\n\n`client.payments.return(payment_token: string, financial_account_token: string, return_reason_code: string, addenda?: string, date_of_death?: string, memo?: string): { token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: object[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: object | object; pending_amount: number; related_account_tokens: object; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n\n**post** `/v1/payments/{payment_token}/return`\n\nReturn an ACH payment with a specified return reason code. Returns must be initiated\nwithin the time window specified by NACHA rules for each return code (typically 2 banking\ndays for most codes, 60 calendar days for unauthorized debits). For a complete list of\nreturn codes and their meanings, see the [ACH Return Reasons documentation](https://docs.lithic.com/docs/ach-overview#ach-return-reasons).\n\nNote:\n * This endpoint does not modify the state of the financial account associated with the payment. If you would like to change the account state, use the [Update financial account status](https://docs.lithic.com/reference/updatefinancialaccountstatus) endpoint.\n * By default this endpoint is not enabled for your account. Please contact your implementations manager to enable this feature.\n\n\n### Parameters\n\n- `payment_token: string`\n\n- `financial_account_token: string`\n Globally unique identifier for the financial account\n\n- `return_reason_code: string`\n ACH return reason code indicating the reason for returning the payment. Supported codes include R01-R53 and R80-R85. For a complete list of return codes and their meanings, see [ACH Return Reasons](https://docs.lithic.com/docs/ach-overview#ach-return-reasons)\n\n- `addenda?: string`\n Optional additional information about the return. Limited to 44 characters\n\n- `date_of_death?: string`\n Date of death in YYYY-MM-DD format. Required when using return codes **R14** (representative payee deceased) or **R15** (beneficiary or account holder deceased)\n\n- `memo?: string`\n Optional memo for the return. Limited to 10 characters\n\n### Returns\n\n- `{ token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: object; debtor?: object; message_id?: string; remittance_information?: string; }; pending_amount: number; related_account_tokens: { account_token: string; business_account_token: string; }; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; }`\n Payment transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `descriptor: string`\n - `direction: 'CREDIT' | 'DEBIT'`\n - `events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]`\n - `family: 'PAYMENT'`\n - `financial_account_token: string`\n - `method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'`\n - `method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: { account_number?: string; agent_id?: string; agent_name?: string; name?: string; }; debtor?: { account_number?: string; agent_id?: string; agent_name?: string; name?: string; }; message_id?: string; remittance_information?: string; }`\n - `pending_amount: number`\n - `related_account_tokens: { account_token: string; business_account_token: string; }`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `currency?: string`\n - `expected_release_date?: string`\n - `external_bank_account_token?: string`\n - `type?: string`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst payment = await client.payments.return('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', return_reason_code: 'R01' });\n\nconsole.log(payment);\n```",
perLanguage: {
- go: {
- method: 'client.Payments.Return',
+ typescript: {
+ method: 'client.payments.return',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpayment, err := client.Payments.Return(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.PaymentReturnParams{\n\t\t\tFinancialAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\t\tReturnReasonCode: lithic.F("R01"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", payment.UserDefinedID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst payment = await client.payments.return('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n return_reason_code: 'R01',\n});\n\nconsole.log(payment.user_defined_id);",
},
- http: {
+ python: {
+ method: 'payments.return_',
example:
- 'curl https://api.lithic.com/v1/payments/$PAYMENT_TOKEN/return \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "return_reason_code": "R01",\n "date_of_death": "2025-01-15"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npayment = client.payments.return_(\n payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n return_reason_code="R01",\n)\nprint(payment.user_defined_id)',
},
java: {
method: 'payments().return_',
@@ -7597,20 +7598,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Payment\nimport com.lithic.api.models.PaymentReturnParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: PaymentReturnParams = PaymentReturnParams.builder()\n .paymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .returnReasonCode("R01")\n .build()\n val payment: Payment = client.payments().return_(params)\n}',
},
- python: {
- method: 'payments.return_',
+ go: {
+ method: 'client.Payments.Return',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npayment = client.payments.return_(\n payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n return_reason_code="R01",\n)\nprint(payment.user_defined_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpayment, err := client.Payments.Return(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.PaymentReturnParams{\n\t\t\tFinancialAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\t\tReturnReasonCode: lithic.F("R01"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", payment.UserDefinedID)\n}\n',
},
ruby: {
method: 'payments.return_',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npayment = lithic.payments.return_(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n return_reason_code: "R01"\n)\n\nputs(payment)',
},
- typescript: {
- method: 'client.payments.return',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst payment = await client.payments.return('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n return_reason_code: 'R01',\n});\n\nconsole.log(payment.user_defined_id);",
+ 'curl https://api.lithic.com/v1/payments/$PAYMENT_TOKEN/return \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "return_reason_code": "R01",\n "date_of_death": "2025-01-15"\n }\'',
},
},
},
@@ -7634,14 +7634,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## simulate_receipt\n\n`client.payments.simulateReceipt(token: string, amount: number, financial_account_token: string, receipt_type: 'RECEIPT_CREDIT' | 'RECEIPT_DEBIT', memo?: string): { debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n**post** `/v1/simulate/payments/receipt`\n\nSimulates a receipt of a Payment.\n\n### Parameters\n\n- `token: string`\n Customer-generated payment token used to uniquely identify the simulated payment\n\n- `amount: number`\n Amount\n\n- `financial_account_token: string`\n Financial Account Token\n\n- `receipt_type: 'RECEIPT_CREDIT' | 'RECEIPT_DEBIT'`\n Receipt Type\n\n- `memo?: string`\n Memo\n\n### Returns\n\n- `{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n - `debugging_request_id: string`\n - `result: 'APPROVED' | 'DECLINED'`\n - `transaction_event_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.payments.simulateReceipt({\n token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n amount: 0,\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n receipt_type: 'RECEIPT_CREDIT',\n});\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.Payments.SimulateReceipt',
+ typescript: {
+ method: 'client.payments.simulateReceipt',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Payments.SimulateReceipt(context.TODO(), lithic.PaymentSimulateReceiptParams{\n\t\tToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tAmount: lithic.F(int64(0)),\n\t\tFinancialAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tReceiptType: lithic.F(lithic.PaymentSimulateReceiptParamsReceiptTypeReceiptCredit),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.payments.simulateReceipt({\n token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n amount: 0,\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n receipt_type: 'RECEIPT_CREDIT',\n});\n\nconsole.log(response.debugging_request_id);",
},
- http: {
+ python: {
+ method: 'payments.simulate_receipt',
example:
- 'curl https://api.lithic.com/v1/simulate/payments/receipt \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "amount": 0,\n "financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "receipt_type": "RECEIPT_CREDIT"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.payments.simulate_receipt(\n token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n amount=0,\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n receipt_type="RECEIPT_CREDIT",\n)\nprint(response.debugging_request_id)',
},
java: {
method: 'payments().simulateReceipt',
@@ -7653,20 +7654,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.PaymentSimulateReceiptParams\nimport com.lithic.api.models.PaymentSimulateReceiptResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: PaymentSimulateReceiptParams = PaymentSimulateReceiptParams.builder()\n .token("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .amount(0L)\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .receiptType(PaymentSimulateReceiptParams.ReceiptType.RECEIPT_CREDIT)\n .build()\n val response: PaymentSimulateReceiptResponse = client.payments().simulateReceipt(params)\n}',
},
- python: {
- method: 'payments.simulate_receipt',
+ go: {
+ method: 'client.Payments.SimulateReceipt',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.payments.simulate_receipt(\n token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n amount=0,\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n receipt_type="RECEIPT_CREDIT",\n)\nprint(response.debugging_request_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Payments.SimulateReceipt(context.TODO(), lithic.PaymentSimulateReceiptParams{\n\t\tToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tAmount: lithic.F(int64(0)),\n\t\tFinancialAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tReceiptType: lithic.F(lithic.PaymentSimulateReceiptParamsReceiptTypeReceiptCredit),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
},
ruby: {
method: 'payments.simulate_receipt',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.payments.simulate_receipt(\n token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n amount: 0,\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n receipt_type: :RECEIPT_CREDIT\n)\n\nputs(response)',
},
- typescript: {
- method: 'client.payments.simulateReceipt',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.payments.simulateReceipt({\n token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n amount: 0,\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n receipt_type: 'RECEIPT_CREDIT',\n});\n\nconsole.log(response.debugging_request_id);",
+ 'curl https://api.lithic.com/v1/simulate/payments/receipt \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "amount": 0,\n "financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "receipt_type": "RECEIPT_CREDIT"\n }\'',
},
},
},
@@ -7691,14 +7691,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## simulate_action\n\n`client.payments.simulateAction(payment_token: string, event_type: string, date_of_death?: string, decline_reason?: string, return_addenda?: string, return_reason_code?: string): { debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n**post** `/v1/simulate/payments/{payment_token}/action`\n\nSimulate payment lifecycle event\n\n### Parameters\n\n- `payment_token: string`\n\n- `event_type: string`\n Event Type\n\n- `date_of_death?: string`\n Date of Death for ACH Return\n\n- `decline_reason?: string`\n Decline reason\n\n- `return_addenda?: string`\n Return Addenda\n\n- `return_reason_code?: string`\n Return Reason Code\n\n### Returns\n\n- `{ debugging_request_id: string; result: 'APPROVED' | 'DECLINED'; transaction_event_token: string; }`\n\n - `debugging_request_id: string`\n - `result: 'APPROVED' | 'DECLINED'`\n - `transaction_event_token: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.payments.simulateAction('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { event_type: 'ACH_ORIGINATION_REVIEWED' });\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.Payments.SimulateAction',
+ typescript: {
+ method: 'client.payments.simulateAction',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Payments.SimulateAction(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.PaymentSimulateActionParams{\n\t\t\tEventType: lithic.F(lithic.PaymentSimulateActionParamsEventTypeACHOriginationReviewed),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.payments.simulateAction('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n event_type: 'ACH_ORIGINATION_REVIEWED',\n});\n\nconsole.log(response.debugging_request_id);",
},
- http: {
+ python: {
+ method: 'payments.simulate_action',
example:
- 'curl https://api.lithic.com/v1/simulate/payments/$PAYMENT_TOKEN/action \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "event_type": "ACH_ORIGINATION_REVIEWED"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.payments.simulate_action(\n payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n event_type="ACH_ORIGINATION_REVIEWED",\n)\nprint(response.debugging_request_id)',
},
java: {
method: 'payments().simulateAction',
@@ -7710,20 +7711,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.PaymentSimulateActionParams\nimport com.lithic.api.models.PaymentSimulateActionResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: PaymentSimulateActionParams = PaymentSimulateActionParams.builder()\n .paymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .eventType(PaymentSimulateActionParams.SupportedSimulationTypes.ACH_ORIGINATION_REVIEWED)\n .build()\n val response: PaymentSimulateActionResponse = client.payments().simulateAction(params)\n}',
},
- python: {
- method: 'payments.simulate_action',
+ go: {
+ method: 'client.Payments.SimulateAction',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.payments.simulate_action(\n payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n event_type="ACH_ORIGINATION_REVIEWED",\n)\nprint(response.debugging_request_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Payments.SimulateAction(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.PaymentSimulateActionParams{\n\t\t\tEventType: lithic.F(lithic.PaymentSimulateActionParamsEventTypeACHOriginationReviewed),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DebuggingRequestID)\n}\n',
},
ruby: {
method: 'payments.simulate_action',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.payments.simulate_action(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n event_type: :ACH_ORIGINATION_REVIEWED\n)\n\nputs(response)',
},
- typescript: {
- method: 'client.payments.simulateAction',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.payments.simulateAction('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n event_type: 'ACH_ORIGINATION_REVIEWED',\n});\n\nconsole.log(response.debugging_request_id);",
+ 'curl https://api.lithic.com/v1/simulate/payments/$PAYMENT_TOKEN/action \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "event_type": "ACH_ORIGINATION_REVIEWED"\n }\'',
},
},
},
@@ -7741,14 +7741,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.threeDS.authentication.retrieve(three_ds_authentication_token: string): { token: string; account_type: 'CREDIT' | 'DEBIT' | 'NOT_APPLICABLE'; authentication_result: 'DECLINE' | 'SUCCESS' | 'PENDING_CHALLENGE' | 'PENDING_DECISION'; card_expiry_check: 'MATCH' | 'MISMATCH' | 'NOT_PRESENT'; card_token: string; cardholder: object; channel: 'APP_BASED' | 'BROWSER' | 'THREE_DS_REQUESTOR_INITIATED'; created: string; merchant: object; message_category: 'NON_PAYMENT_AUTHENTICATION' | 'PAYMENT_AUTHENTICATION'; three_ds_requestor_challenge_indicator: string; additional_data?: object; app?: object; authentication_request_type?: string; browser?: object; challenge_metadata?: object; challenge_orchestrated_by?: 'LITHIC' | 'CUSTOMER' | 'NO_CHALLENGE'; decision_made_by?: 'LITHIC_RULES' | 'LITHIC_DEFAULT' | 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'NETWORK' | 'UNKNOWN'; three_ri_request_type?: string; transaction?: object; }`\n\n**get** `/v1/three_ds_authentication/{three_ds_authentication_token}`\n\nGet 3DS Authentication by token\n\n### Parameters\n\n- `three_ds_authentication_token: string`\n\n### Returns\n\n- `{ token: string; account_type: 'CREDIT' | 'DEBIT' | 'NOT_APPLICABLE'; authentication_result: 'DECLINE' | 'SUCCESS' | 'PENDING_CHALLENGE' | 'PENDING_DECISION'; card_expiry_check: 'MATCH' | 'MISMATCH' | 'NOT_PRESENT'; card_token: string; cardholder: { address_match?: boolean; address_on_file_match?: 'MATCH' | 'MATCH_ADDRESS_ONLY' | 'MATCH_ZIP_ONLY' | 'MISMATCH' | 'NOT_PRESENT'; billing_address?: { address1?: string; address2?: string; address3?: string; city?: string; country?: string; postal_code?: string; }; email?: string; name?: string; phone_number_home?: string; phone_number_mobile?: string; phone_number_work?: string; shipping_address?: { address1?: string; address2?: string; address3?: string; city?: string; country?: string; postal_code?: string; }; }; channel: 'APP_BASED' | 'BROWSER' | 'THREE_DS_REQUESTOR_INITIATED'; created: string; merchant: { risk_indicator: { delivery_email_address?: string; delivery_time_frame?: 'ELECTRONIC_DELIVERY' | 'OVERNIGHT_SHIPPING' | 'SAME_DAY_SHIPPING' | 'TWO_DAY_OR_MORE_SHIPPING'; gift_card_amount?: number; gift_card_count?: number; gift_card_currency?: string; order_availability?: 'FUTURE_AVAILABILITY' | 'MERCHANDISE_AVAILABLE'; pre_order_available_date?: string; reorder_items?: 'FIRST_TIME_ORDERED' | 'REORDERED'; shipping_method?: string; }; id?: string; country?: string; mcc?: string; name?: string; }; message_category: 'NON_PAYMENT_AUTHENTICATION' | 'PAYMENT_AUTHENTICATION'; three_ds_requestor_challenge_indicator: string; additional_data?: { network_decision?: 'LOW_RISK' | 'NOT_LOW_RISK'; network_risk_score?: number; }; app?: { device?: string; device_info?: string; ip?: string; latitude?: number; locale?: string; longitude?: number; os?: string; platform?: string; screen_height?: number; screen_width?: number; time_zone?: string; }; authentication_request_type?: string; browser?: { accept_header?: string; ip?: string; java_enabled?: boolean; javascript_enabled?: boolean; language?: string; time_zone?: string; user_agent?: string; }; challenge_metadata?: { method_type: 'SMS_OTP' | 'OUT_OF_BAND'; status: string; phone_number?: string; }; challenge_orchestrated_by?: 'LITHIC' | 'CUSTOMER' | 'NO_CHALLENGE'; decision_made_by?: 'LITHIC_RULES' | 'LITHIC_DEFAULT' | 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'NETWORK' | 'UNKNOWN'; three_ri_request_type?: string; transaction?: { amount: number; cardholder_amount: number; currency: string; currency_exponent: number; date_time: string; type: string; }; }`\n Represents a 3DS authentication\n\n - `token: string`\n - `account_type: 'CREDIT' | 'DEBIT' | 'NOT_APPLICABLE'`\n - `authentication_result: 'DECLINE' | 'SUCCESS' | 'PENDING_CHALLENGE' | 'PENDING_DECISION'`\n - `card_expiry_check: 'MATCH' | 'MISMATCH' | 'NOT_PRESENT'`\n - `card_token: string`\n - `cardholder: { address_match?: boolean; address_on_file_match?: 'MATCH' | 'MATCH_ADDRESS_ONLY' | 'MATCH_ZIP_ONLY' | 'MISMATCH' | 'NOT_PRESENT'; billing_address?: { address1?: string; address2?: string; address3?: string; city?: string; country?: string; postal_code?: string; }; email?: string; name?: string; phone_number_home?: string; phone_number_mobile?: string; phone_number_work?: string; shipping_address?: { address1?: string; address2?: string; address3?: string; city?: string; country?: string; postal_code?: string; }; }`\n - `channel: 'APP_BASED' | 'BROWSER' | 'THREE_DS_REQUESTOR_INITIATED'`\n - `created: string`\n - `merchant: { risk_indicator: { delivery_email_address?: string; delivery_time_frame?: 'ELECTRONIC_DELIVERY' | 'OVERNIGHT_SHIPPING' | 'SAME_DAY_SHIPPING' | 'TWO_DAY_OR_MORE_SHIPPING'; gift_card_amount?: number; gift_card_count?: number; gift_card_currency?: string; order_availability?: 'FUTURE_AVAILABILITY' | 'MERCHANDISE_AVAILABLE'; pre_order_available_date?: string; reorder_items?: 'FIRST_TIME_ORDERED' | 'REORDERED'; shipping_method?: string; }; id?: string; country?: string; mcc?: string; name?: string; }`\n - `message_category: 'NON_PAYMENT_AUTHENTICATION' | 'PAYMENT_AUTHENTICATION'`\n - `three_ds_requestor_challenge_indicator: string`\n - `additional_data?: { network_decision?: 'LOW_RISK' | 'NOT_LOW_RISK'; network_risk_score?: number; }`\n - `app?: { device?: string; device_info?: string; ip?: string; latitude?: number; locale?: string; longitude?: number; os?: string; platform?: string; screen_height?: number; screen_width?: number; time_zone?: string; }`\n - `authentication_request_type?: string`\n - `browser?: { accept_header?: string; ip?: string; java_enabled?: boolean; javascript_enabled?: boolean; language?: string; time_zone?: string; user_agent?: string; }`\n - `challenge_metadata?: { method_type: 'SMS_OTP' | 'OUT_OF_BAND'; status: string; phone_number?: string; }`\n - `challenge_orchestrated_by?: 'LITHIC' | 'CUSTOMER' | 'NO_CHALLENGE'`\n - `decision_made_by?: 'LITHIC_RULES' | 'LITHIC_DEFAULT' | 'CUSTOMER_RULES' | 'CUSTOMER_ENDPOINT' | 'NETWORK' | 'UNKNOWN'`\n - `three_ri_request_type?: string`\n - `transaction?: { amount: number; cardholder_amount: number; currency: string; currency_exponent: number; date_time: string; type: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst threeDSAuthentication = await client.threeDS.authentication.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(threeDSAuthentication);\n```",
perLanguage: {
- go: {
- method: 'client.ThreeDS.Authentication.Get',
+ typescript: {
+ method: 'client.threeDS.authentication.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tthreeDSAuthentication, err := client.ThreeDS.Authentication.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", threeDSAuthentication.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst threeDSAuthentication = await client.threeDS.authentication.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(threeDSAuthentication.token);",
},
- http: {
+ python: {
+ method: 'three_ds.authentication.retrieve',
example:
- 'curl https://api.lithic.com/v1/three_ds_authentication/$THREE_DS_AUTHENTICATION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nthree_ds_authentication = client.three_ds.authentication.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(three_ds_authentication.token)',
},
java: {
method: 'threeDS().authentication().retrieve',
@@ -7760,20 +7761,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ThreeDSAuthentication\nimport com.lithic.api.models.ThreeDSAuthenticationRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val threeDSAuthentication: ThreeDSAuthentication = client.threeDS().authentication().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'three_ds.authentication.retrieve',
+ go: {
+ method: 'client.ThreeDS.Authentication.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nthree_ds_authentication = client.three_ds.authentication.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(three_ds_authentication.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tthreeDSAuthentication, err := client.ThreeDS.Authentication.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", threeDSAuthentication.Token)\n}\n',
},
ruby: {
method: 'three_ds.authentication.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nthree_ds_authentication = lithic.three_ds.authentication.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(three_ds_authentication)',
},
- typescript: {
- method: 'client.threeDS.authentication.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst threeDSAuthentication = await client.threeDS.authentication.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(threeDSAuthentication.token);",
+ 'curl https://api.lithic.com/v1/three_ds_authentication/$THREE_DS_AUTHENTICATION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -7796,14 +7796,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## simulate\n\n`client.threeDS.authentication.simulate(merchant: { id: string; country: string; mcc: string; name: string; }, pan: string, transaction: { amount: number; currency: string; }, card_expiry_check?: 'MATCH' | 'MISMATCH' | 'NOT_PRESENT'): { token?: string; }`\n\n**post** `/v1/three_ds_authentication/simulate`\n\nSimulates a 3DS authentication request from the payment network as if it came from an ACS. If you're configured for 3DS Customer Decisioning, simulating authentications requires your customer decisioning endpoint to be set up properly (respond with a valid JSON). If the authentication decision is to challenge, ensure that the account holder associated with the card transaction has a valid phone number configured to receive the OTP code via SMS. \n\n### Parameters\n\n- `merchant: { id: string; country: string; mcc: string; name: string; }`\n Merchant information for the simulated transaction\n - `id: string`\n Unique identifier to identify the payment card acceptor. Corresponds to `merchant_acceptor_id` in authorization.\n - `country: string`\n Country of the address provided by the cardholder in ISO 3166-1 alpha-3 format (e.g. USA)\n - `mcc: string`\n Merchant category code for the transaction to be simulated. A four-digit number listed in ISO 18245. Supported merchant category codes can be found [here](https://docs.lithic.com/docs/transactions#merchant-category-codes-mccs).\n - `name: string`\n Merchant descriptor, corresponds to `descriptor` in authorization. If CHALLENGE keyword is included, Lithic will trigger a challenge.\n\n- `pan: string`\n Sixteen digit card number.\n\n- `transaction: { amount: number; currency: string; }`\n Transaction details for the simulation\n - `amount: number`\n Amount (in cents) to authenticate.\n - `currency: string`\n 3-character alphabetic ISO 4217 currency code.\n\n- `card_expiry_check?: 'MATCH' | 'MISMATCH' | 'NOT_PRESENT'`\n When set will use the following values as part of the Simulated Authentication. When not set defaults to MATCH\n\n### Returns\n\n- `{ token?: string; }`\n\n - `token?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.threeDS.authentication.simulate({\n merchant: {\n id: 'OODKZAPJVN4YS7O',\n country: 'USA',\n mcc: '5812',\n name: 'COFFEE SHOP',\n},\n pan: '4111111289144142',\n transaction: { amount: 0, currency: 'GBP' },\n});\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.ThreeDS.Authentication.Simulate',
+ typescript: {
+ method: 'client.threeDS.authentication.simulate',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.ThreeDS.Authentication.Simulate(context.TODO(), lithic.ThreeDSAuthenticationSimulateParams{\n\t\tMerchant: lithic.F(lithic.ThreeDSAuthenticationSimulateParamsMerchant{\n\t\t\tID: lithic.F("OODKZAPJVN4YS7O"),\n\t\t\tCountry: lithic.F("USA"),\n\t\t\tMcc: lithic.F("5812"),\n\t\t\tName: lithic.F("COFFEE SHOP"),\n\t\t}),\n\t\tPan: lithic.F("4111111289144142"),\n\t\tTransaction: lithic.F(lithic.ThreeDSAuthenticationSimulateParamsTransaction{\n\t\t\tAmount: lithic.F(int64(0)),\n\t\t\tCurrency: lithic.F("GBP"),\n\t\t}),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.threeDS.authentication.simulate({\n merchant: {\n id: 'OODKZAPJVN4YS7O',\n country: 'USA',\n mcc: '5812',\n name: 'COFFEE SHOP',\n },\n pan: '4111111289144142',\n transaction: { amount: 0, currency: 'GBP' },\n});\n\nconsole.log(response.token);",
},
- http: {
+ python: {
+ method: 'three_ds.authentication.simulate',
example:
- 'curl https://api.lithic.com/v1/three_ds_authentication/simulate \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "merchant": {\n "id": "OODKZAPJVN4YS7O",\n "country": "USA",\n "mcc": "5812",\n "name": "COFFEE SHOP"\n },\n "pan": "4111111289144142",\n "transaction": {\n "amount": 0,\n "currency": "GBP"\n }\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.three_ds.authentication.simulate(\n merchant={\n "id": "OODKZAPJVN4YS7O",\n "country": "USA",\n "mcc": "5812",\n "name": "COFFEE SHOP",\n },\n pan="4111111289144142",\n transaction={\n "amount": 0,\n "currency": "GBP",\n },\n)\nprint(response.token)',
},
java: {
method: 'threeDS().authentication().simulate',
@@ -7815,20 +7816,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AuthenticationSimulateResponse\nimport com.lithic.api.models.ThreeDSAuthenticationSimulateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ThreeDSAuthenticationSimulateParams = ThreeDSAuthenticationSimulateParams.builder()\n .merchant(ThreeDSAuthenticationSimulateParams.Merchant.builder()\n .id("OODKZAPJVN4YS7O")\n .country("USA")\n .mcc("5812")\n .name("COFFEE SHOP")\n .build())\n .pan("4111111289144142")\n .transaction(ThreeDSAuthenticationSimulateParams.Transaction.builder()\n .amount(0L)\n .currency("GBP")\n .build())\n .build()\n val response: AuthenticationSimulateResponse = client.threeDS().authentication().simulate(params)\n}',
},
- python: {
- method: 'three_ds.authentication.simulate',
+ go: {
+ method: 'client.ThreeDS.Authentication.Simulate',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.three_ds.authentication.simulate(\n merchant={\n "id": "OODKZAPJVN4YS7O",\n "country": "USA",\n "mcc": "5812",\n "name": "COFFEE SHOP",\n },\n pan="4111111289144142",\n transaction={\n "amount": 0,\n "currency": "GBP",\n },\n)\nprint(response.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.ThreeDS.Authentication.Simulate(context.TODO(), lithic.ThreeDSAuthenticationSimulateParams{\n\t\tMerchant: lithic.F(lithic.ThreeDSAuthenticationSimulateParamsMerchant{\n\t\t\tID: lithic.F("OODKZAPJVN4YS7O"),\n\t\t\tCountry: lithic.F("USA"),\n\t\t\tMcc: lithic.F("5812"),\n\t\t\tName: lithic.F("COFFEE SHOP"),\n\t\t}),\n\t\tPan: lithic.F("4111111289144142"),\n\t\tTransaction: lithic.F(lithic.ThreeDSAuthenticationSimulateParamsTransaction{\n\t\t\tAmount: lithic.F(int64(0)),\n\t\t\tCurrency: lithic.F("GBP"),\n\t\t}),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Token)\n}\n',
},
ruby: {
method: 'three_ds.authentication.simulate',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.three_ds.authentication.simulate(\n merchant: {id: "OODKZAPJVN4YS7O", country: "USA", mcc: "5812", name: "COFFEE SHOP"},\n pan: "4111111289144142",\n transaction: {amount: 0, currency: "GBP"}\n)\n\nputs(response)',
- },
- typescript: {
- method: 'client.threeDS.authentication.simulate',
+ },
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.threeDS.authentication.simulate({\n merchant: {\n id: 'OODKZAPJVN4YS7O',\n country: 'USA',\n mcc: '5812',\n name: 'COFFEE SHOP',\n },\n pan: '4111111289144142',\n transaction: { amount: 0, currency: 'GBP' },\n});\n\nconsole.log(response.token);",
+ 'curl https://api.lithic.com/v1/three_ds_authentication/simulate \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "merchant": {\n "id": "OODKZAPJVN4YS7O",\n "country": "USA",\n "mcc": "5812",\n "name": "COFFEE SHOP"\n },\n "pan": "4111111289144142",\n "transaction": {\n "amount": 0,\n "currency": "GBP"\n }\n }\'',
},
},
},
@@ -7845,14 +7845,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## simulate_otp_entry\n\n`client.threeDS.authentication.simulateOtpEntry(token: string, otp: string): void`\n\n**post** `/v1/three_ds_decisioning/simulate/enter_otp`\n\nEndpoint for simulating entering OTP into 3DS Challenge UI. A call to [/v1/three_ds_authentication/simulate](https://docs.lithic.com/reference/postsimulateauthentication) that resulted in triggered SMS-OTP challenge must precede. Only a single attempt is supported; upon entering OTP, the challenge is either approved or declined.\n\n### Parameters\n\n- `token: string`\n A unique token returned as part of a /v1/three_ds_authentication/simulate call that resulted in PENDING_CHALLENGE authentication result.\n\n- `otp: string`\n The OTP entered by the cardholder\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.threeDS.authentication.simulateOtpEntry({ token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac', otp: '123456' })\n```",
perLanguage: {
- go: {
- method: 'client.ThreeDS.Authentication.SimulateOtpEntry',
+ typescript: {
+ method: 'client.threeDS.authentication.simulateOtpEntry',
example:
- 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.ThreeDS.Authentication.SimulateOtpEntry(context.TODO(), lithic.ThreeDSAuthenticationSimulateOtpEntryParams{\n\t\tToken: lithic.F("fabd829d-7f7b-4432-a8f2-07ea4889aaac"),\n\t\tOtp: lithic.F("123456"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.threeDS.authentication.simulateOtpEntry({\n token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac',\n otp: '123456',\n});",
},
- http: {
+ python: {
+ method: 'three_ds.authentication.simulate_otp_entry',
example:
- 'curl https://api.lithic.com/v1/three_ds_decisioning/simulate/enter_otp \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "token": "fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n "otp": "123456"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.three_ds.authentication.simulate_otp_entry(\n token="fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n otp="123456",\n)',
},
java: {
method: 'threeDS().authentication().simulateOtpEntry',
@@ -7864,20 +7865,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ThreeDSAuthenticationSimulateOtpEntryParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ThreeDSAuthenticationSimulateOtpEntryParams = ThreeDSAuthenticationSimulateOtpEntryParams.builder()\n .token("fabd829d-7f7b-4432-a8f2-07ea4889aaac")\n .otp("123456")\n .build()\n client.threeDS().authentication().simulateOtpEntry(params)\n}',
},
- python: {
- method: 'three_ds.authentication.simulate_otp_entry',
+ go: {
+ method: 'client.ThreeDS.Authentication.SimulateOtpEntry',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.three_ds.authentication.simulate_otp_entry(\n token="fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n otp="123456",\n)',
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.ThreeDS.Authentication.SimulateOtpEntry(context.TODO(), lithic.ThreeDSAuthenticationSimulateOtpEntryParams{\n\t\tToken: lithic.F("fabd829d-7f7b-4432-a8f2-07ea4889aaac"),\n\t\tOtp: lithic.F("123456"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
},
ruby: {
method: 'three_ds.authentication.simulate_otp_entry',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.three_ds.authentication.simulate_otp_entry(\n token: "fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n otp: "123456"\n)\n\nputs(result)',
},
- typescript: {
- method: 'client.threeDS.authentication.simulateOtpEntry',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.threeDS.authentication.simulateOtpEntry({\n token: 'fabd829d-7f7b-4432-a8f2-07ea4889aaac',\n otp: '123456',\n});",
+ 'curl https://api.lithic.com/v1/three_ds_decisioning/simulate/enter_otp \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "token": "fabd829d-7f7b-4432-a8f2-07ea4889aaac",\n "otp": "123456"\n }\'',
},
},
},
@@ -7894,14 +7894,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve_secret\n\n`client.threeDS.decisioning.retrieveSecret(): { secret?: string; }`\n\n**get** `/v1/three_ds_decisioning/secret`\n\nRetrieve the 3DS Decisioning HMAC secret key. If one does not exist for your program yet, calling this endpoint will create one for you. The headers (which you can use to verify 3DS Decisioning requests) will begin appearing shortly after calling this endpoint for the first time. See [this page](https://docs.lithic.com/docs/3ds-decisioning#3ds-decisioning-hmac-secrets) for more detail about verifying 3DS Decisioning requests.\n\n\n### Returns\n\n- `{ secret?: string; }`\n\n - `secret?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.threeDS.decisioning.retrieveSecret();\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.ThreeDS.Decisioning.GetSecret',
+ typescript: {
+ method: 'client.threeDS.decisioning.retrieveSecret',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.ThreeDS.Decisioning.GetSecret(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Secret)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.threeDS.decisioning.retrieveSecret();\n\nconsole.log(response.secret);",
},
- http: {
+ python: {
+ method: 'three_ds.decisioning.retrieve_secret',
example:
- 'curl https://api.lithic.com/v1/three_ds_decisioning/secret \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.three_ds.decisioning.retrieve_secret()\nprint(response.secret)',
},
java: {
method: 'threeDS().decisioning().retrieveSecret',
@@ -7913,20 +7914,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.DecisioningRetrieveSecretResponse\nimport com.lithic.api.models.ThreeDSDecisioningRetrieveSecretParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: DecisioningRetrieveSecretResponse = client.threeDS().decisioning().retrieveSecret()\n}',
},
- python: {
- method: 'three_ds.decisioning.retrieve_secret',
+ go: {
+ method: 'client.ThreeDS.Decisioning.GetSecret',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.three_ds.decisioning.retrieve_secret()\nprint(response.secret)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.ThreeDS.Decisioning.GetSecret(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Secret)\n}\n',
},
ruby: {
method: 'three_ds.decisioning.retrieve_secret',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.three_ds.decisioning.retrieve_secret\n\nputs(response)',
},
- typescript: {
- method: 'client.threeDS.decisioning.retrieveSecret',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.threeDS.decisioning.retrieveSecret();\n\nconsole.log(response.secret);",
+ 'curl https://api.lithic.com/v1/three_ds_decisioning/secret \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -7942,14 +7942,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## rotate_secret\n\n`client.threeDS.decisioning.rotateSecret(): void`\n\n**post** `/v1/three_ds_decisioning/secret/rotate`\n\nGenerate a new 3DS Decisioning HMAC secret key. The old secret key will be deactivated 24 hours after a successful request to this endpoint. Make a [`GET /three_ds_decisioning/secret`](https://docs.lithic.com/reference/getthreedsdecisioningsecret) request to retrieve the new secret key.\n\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.threeDS.decisioning.rotateSecret()\n```",
perLanguage: {
- go: {
- method: 'client.ThreeDS.Decisioning.RotateSecret',
+ typescript: {
+ method: 'client.threeDS.decisioning.rotateSecret',
example:
- 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.ThreeDS.Decisioning.RotateSecret(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.threeDS.decisioning.rotateSecret();",
},
- http: {
+ python: {
+ method: 'three_ds.decisioning.rotate_secret',
example:
- 'curl https://api.lithic.com/v1/three_ds_decisioning/secret/rotate \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.three_ds.decisioning.rotate_secret()',
},
java: {
method: 'threeDS().decisioning().rotateSecret',
@@ -7961,20 +7962,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ThreeDSDecisioningRotateSecretParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.threeDS().decisioning().rotateSecret()\n}',
},
- python: {
- method: 'three_ds.decisioning.rotate_secret',
+ go: {
+ method: 'client.ThreeDS.Decisioning.RotateSecret',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.three_ds.decisioning.rotate_secret()',
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.ThreeDS.Decisioning.RotateSecret(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
},
ruby: {
method: 'three_ds.decisioning.rotate_secret',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.three_ds.decisioning.rotate_secret\n\nputs(result)',
},
- typescript: {
- method: 'client.threeDS.decisioning.rotateSecret',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.threeDS.decisioning.rotateSecret();",
+ 'curl https://api.lithic.com/v1/three_ds_decisioning/secret/rotate \\\n -X POST \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -7991,14 +7991,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## challenge_response\n\n`client.threeDS.decisioning.challengeResponse(token: string, challenge_response: 'APPROVE' | 'DECLINE_BY_CUSTOMER'): void`\n\n**post** `/v1/three_ds_decisioning/challenge_response`\n\nCard program's response to a 3DS Challenge Request.\nChallenge Request is emitted as a webhook [three_ds_authentication.challenge](https://docs.lithic.com/reference/post_three-ds-authentication-challenge) and your Card Program needs to be configured with Out of Band (OOB) Challenges in order to receive it (see https://docs.lithic.com/docs/3ds-challenge-flow for more information).\n\n### Parameters\n\n- `token: string`\n Globally unique identifier for 3DS Authentication that resulted in PENDING_CHALLENGE authentication result.\n\n- `challenge_response: 'APPROVE' | 'DECLINE_BY_CUSTOMER'`\n Whether the Cardholder has approved or declined the issued Challenge\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.threeDS.decisioning.challengeResponse({ token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', challenge_response: 'APPROVE' })\n```",
perLanguage: {
- go: {
- method: 'client.ThreeDS.Decisioning.ChallengeResponse',
+ typescript: {
+ method: 'client.threeDS.decisioning.challengeResponse',
example:
- 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.ThreeDS.Decisioning.ChallengeResponse(context.TODO(), lithic.ThreeDSDecisioningChallengeResponseParams{\n\t\tChallengeResponse: lithic.ChallengeResponseParam{\n\t\t\tToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\t\tChallengeResponse: lithic.F(lithic.ChallengeResultApprove),\n\t\t},\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.threeDS.decisioning.challengeResponse({\n token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n challenge_response: 'APPROVE',\n});",
},
- http: {
+ python: {
+ method: 'three_ds.decisioning.challenge_response',
example:
- 'curl https://api.lithic.com/v1/three_ds_decisioning/challenge_response \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "challenge_response": "APPROVE"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.three_ds.decisioning.challenge_response(\n token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n challenge_response="APPROVE",\n)',
},
java: {
method: 'threeDS().decisioning().challengeResponse',
@@ -8010,20 +8011,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ChallengeResponse\nimport com.lithic.api.models.ChallengeResult\nimport com.lithic.api.models.ThreeDSDecisioningChallengeResponseParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ChallengeResponse = ChallengeResponse.builder()\n .token("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .challengeResponse(ChallengeResult.APPROVE)\n .build()\n client.threeDS().decisioning().challengeResponse(params)\n}',
},
- python: {
- method: 'three_ds.decisioning.challenge_response',
+ go: {
+ method: 'client.ThreeDS.Decisioning.ChallengeResponse',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.three_ds.decisioning.challenge_response(\n token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n challenge_response="APPROVE",\n)',
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.ThreeDS.Decisioning.ChallengeResponse(context.TODO(), lithic.ThreeDSDecisioningChallengeResponseParams{\n\t\tChallengeResponse: lithic.ChallengeResponseParam{\n\t\t\tToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\t\tChallengeResponse: lithic.F(lithic.ChallengeResultApprove),\n\t\t},\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
},
ruby: {
method: 'three_ds.decisioning.challenge_response',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.three_ds.decisioning.challenge_response(\n token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n challenge_response: :APPROVE\n)\n\nputs(result)',
},
- typescript: {
- method: 'client.threeDS.decisioning.challengeResponse',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.threeDS.decisioning.challengeResponse({\n token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n challenge_response: 'APPROVE',\n});",
+ 'curl https://api.lithic.com/v1/three_ds_decisioning/challenge_response \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "challenge_response": "APPROVE"\n }\'',
},
},
},
@@ -8046,14 +8046,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list_details\n\n`client.reports.settlement.listDetails(report_date: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; account_token: string; card_program_token: string; card_token: string; created: string; currency: string; disputes_gross_amount: number; event_tokens: string[]; institution: string; interchange_fee_extended_precision: number; interchange_gross_amount: number; network: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_details: object; other_fees_gross_amount: number; report_date: string; settlement_date: string; transaction_token: string; transactions_gross_amount: number; type: string; updated: string; fee_description?: string; }`\n\n**get** `/v1/reports/settlement/details/{report_date}`\n\nList details.\n\n### Parameters\n\n- `report_date: string`\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Number of records per page.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; card_token: string; created: string; currency: string; disputes_gross_amount: number; event_tokens: string[]; institution: string; interchange_fee_extended_precision: number; interchange_gross_amount: number; network: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_details: { ISA?: number; }; other_fees_gross_amount: number; report_date: string; settlement_date: string; transaction_token: string; transactions_gross_amount: number; type: string; updated: string; fee_description?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `card_program_token: string`\n - `card_token: string`\n - `created: string`\n - `currency: string`\n - `disputes_gross_amount: number`\n - `event_tokens: string[]`\n - `institution: string`\n - `interchange_fee_extended_precision: number`\n - `interchange_gross_amount: number`\n - `network: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'`\n - `other_fees_details: { ISA?: number; }`\n - `other_fees_gross_amount: number`\n - `report_date: string`\n - `settlement_date: string`\n - `transaction_token: string`\n - `transactions_gross_amount: number`\n - `type: string`\n - `updated: string`\n - `fee_description?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const settlementDetail of client.reports.settlement.listDetails('2023-09-01')) {\n console.log(settlementDetail);\n}\n```",
perLanguage: {
- go: {
- method: 'client.Reports.Settlement.ListDetails',
+ typescript: {
+ method: 'client.reports.settlement.listDetails',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Reports.Settlement.ListDetails(\n\t\tcontext.TODO(),\n\t\ttime.Now(),\n\t\tlithic.ReportSettlementListDetailsParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const settlementDetail of client.reports.settlement.listDetails('2023-09-01')) {\n console.log(settlementDetail.token);\n}",
},
- http: {
+ python: {
+ method: 'reports.settlement.list_details',
example:
- 'curl https://api.lithic.com/v1/reports/settlement/details/$REPORT_DATE \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.reports.settlement.list_details(\n report_date=date.fromisoformat("2023-09-01"),\n)\npage = page.data[0]\nprint(page.token)',
},
java: {
method: 'reports().settlement().listDetails',
@@ -8065,20 +8066,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ReportSettlementListDetailsPage\nimport com.lithic.api.models.ReportSettlementListDetailsParams\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: ReportSettlementListDetailsPage = client.reports().settlement().listDetails(LocalDate.parse("2023-09-01"))\n}',
},
- python: {
- method: 'reports.settlement.list_details',
+ go: {
+ method: 'client.Reports.Settlement.ListDetails',
example:
- 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.reports.settlement.list_details(\n report_date=date.fromisoformat("2023-09-01"),\n)\npage = page.data[0]\nprint(page.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Reports.Settlement.ListDetails(\n\t\tcontext.TODO(),\n\t\ttime.Now(),\n\t\tlithic.ReportSettlementListDetailsParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'reports.settlement.list_details',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.reports.settlement.list_details("2023-09-01")\n\nputs(page)',
},
- typescript: {
- method: 'client.reports.settlement.listDetails',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const settlementDetail of client.reports.settlement.listDetails('2023-09-01')) {\n console.log(settlementDetail.token);\n}",
+ 'curl https://api.lithic.com/v1/reports/settlement/details/$REPORT_DATE \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -8096,14 +8096,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## summary\n\n`client.reports.settlement.summary(report_date: string): { created: string; currency: string; details: settlement_summary_details[]; disputes_gross_amount: number; interchange_gross_amount: number; is_complete: boolean; other_fees_gross_amount: number; report_date: string; settled_net_amount: number; transactions_gross_amount: number; updated: string; }`\n\n**get** `/v1/reports/settlement/summary/{report_date}`\n\nGet the settlement report for a specified report date. Not available in sandbox.\n\n### Parameters\n\n- `report_date: string`\n\n### Returns\n\n- `{ created: string; currency: string; details: { currency?: string; disputes_gross_amount?: number; institution?: string; interchange_gross_amount?: number; network?: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_gross_amount?: number; settled_net_amount?: number; transactions_gross_amount?: number; }[]; disputes_gross_amount: number; interchange_gross_amount: number; is_complete: boolean; other_fees_gross_amount: number; report_date: string; settled_net_amount: number; transactions_gross_amount: number; updated: string; }`\n\n - `created: string`\n - `currency: string`\n - `details: { currency?: string; disputes_gross_amount?: number; institution?: string; interchange_gross_amount?: number; network?: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_gross_amount?: number; settled_net_amount?: number; transactions_gross_amount?: number; }[]`\n - `disputes_gross_amount: number`\n - `interchange_gross_amount: number`\n - `is_complete: boolean`\n - `other_fees_gross_amount: number`\n - `report_date: string`\n - `settled_net_amount: number`\n - `transactions_gross_amount: number`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst settlementReport = await client.reports.settlement.summary('2023-09-01');\n\nconsole.log(settlementReport);\n```",
perLanguage: {
- go: {
- method: 'client.Reports.Settlement.Summary',
+ typescript: {
+ method: 'client.reports.settlement.summary',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tsettlementReport, err := client.Reports.Settlement.Summary(context.TODO(), time.Now())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", settlementReport.Created)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst settlementReport = await client.reports.settlement.summary('2023-09-01');\n\nconsole.log(settlementReport.created);",
},
- http: {
+ python: {
+ method: 'reports.settlement.summary',
example:
- 'curl https://api.lithic.com/v1/reports/settlement/summary/$REPORT_DATE \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nsettlement_report = client.reports.settlement.summary(\n date.fromisoformat("2023-09-01"),\n)\nprint(settlement_report.created)',
},
java: {
method: 'reports().settlement().summary',
@@ -8115,20 +8116,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ReportSettlementSummaryParams\nimport com.lithic.api.models.SettlementReport\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val settlementReport: SettlementReport = client.reports().settlement().summary(LocalDate.parse("2023-09-01"))\n}',
},
- python: {
- method: 'reports.settlement.summary',
+ go: {
+ method: 'client.Reports.Settlement.Summary',
example:
- 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nsettlement_report = client.reports.settlement.summary(\n date.fromisoformat("2023-09-01"),\n)\nprint(settlement_report.created)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tsettlementReport, err := client.Reports.Settlement.Summary(context.TODO(), time.Now())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", settlementReport.Created)\n}\n',
},
ruby: {
method: 'reports.settlement.summary',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nsettlement_report = lithic.reports.settlement.summary("2023-09-01")\n\nputs(settlement_report)',
},
- typescript: {
- method: 'client.reports.settlement.summary',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst settlementReport = await client.reports.settlement.summary('2023-09-01');\n\nconsole.log(settlementReport.created);",
+ 'curl https://api.lithic.com/v1/reports/settlement/summary/$REPORT_DATE \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -8158,14 +8158,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.reports.settlement.networkTotals.list(begin?: string, end?: string, ending_before?: string, institution_id?: string, network?: 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK', page_size?: number, report_date?: string, report_date_begin?: string, report_date_end?: string, settlement_institution_id?: string, starting_after?: string): { token: string; amounts: object; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }`\n\n**get** `/v1/reports/settlement/network_totals`\n\nList network total records with optional filters. Not available in sandbox.\n\n### Parameters\n\n- `begin?: string`\n Datetime in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Datetime in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `institution_id?: string`\n Institution ID to filter on.\n\n- `network?: 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'`\n Network to filter on.\n\n- `page_size?: number`\n Number of records per page.\n\n- `report_date?: string`\n Singular report date to filter on (YYYY-MM-DD). Cannot be populated in conjunction with report_date_begin or report_date_end.\n\n- `report_date_begin?: string`\n Earliest report date to filter on, inclusive (YYYY-MM-DD).\n\n- `report_date_end?: string`\n Latest report date to filter on, inclusive (YYYY-MM-DD).\n\n- `settlement_institution_id?: string`\n Settlement institution ID to filter on.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }`\n\n - `token: string`\n - `amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }`\n - `created: string`\n - `currency: string`\n - `institution_id: string`\n - `is_complete: boolean`\n - `network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'`\n - `report_date: string`\n - `settlement_institution_id: string`\n - `settlement_service: string`\n - `updated: string`\n - `cycle?: number`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const networkTotal of client.reports.settlement.networkTotals.list()) {\n console.log(networkTotal);\n}\n```",
perLanguage: {
- go: {
- method: 'client.Reports.Settlement.NetworkTotals.List',
+ typescript: {
+ method: 'client.reports.settlement.networkTotals.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Reports.Settlement.NetworkTotals.List(context.TODO(), lithic.ReportSettlementNetworkTotalListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const networkTotal of client.reports.settlement.networkTotals.list()) {\n console.log(networkTotal.institution_id);\n}",
},
- http: {
+ python: {
+ method: 'reports.settlement.network_totals.list',
example:
- 'curl https://api.lithic.com/v1/reports/settlement/network_totals \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.reports.settlement.network_totals.list()\npage = page.data[0]\nprint(page.institution_id)',
},
java: {
method: 'reports().settlement().networkTotals().list',
@@ -8177,20 +8178,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ReportSettlementNetworkTotalListPage\nimport com.lithic.api.models.ReportSettlementNetworkTotalListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: ReportSettlementNetworkTotalListPage = client.reports().settlement().networkTotals().list()\n}',
},
- python: {
- method: 'reports.settlement.network_totals.list',
+ go: {
+ method: 'client.Reports.Settlement.NetworkTotals.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.reports.settlement.network_totals.list()\npage = page.data[0]\nprint(page.institution_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Reports.Settlement.NetworkTotals.List(context.TODO(), lithic.ReportSettlementNetworkTotalListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'reports.settlement.network_totals.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.reports.settlement.network_totals.list\n\nputs(page)',
},
- typescript: {
- method: 'client.reports.settlement.networkTotals.list',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const networkTotal of client.reports.settlement.networkTotals.list()) {\n console.log(networkTotal.institution_id);\n}",
+ 'curl https://api.lithic.com/v1/reports/settlement/network_totals \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -8208,14 +8208,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.reports.settlement.networkTotals.retrieve(token: string): { token: string; amounts: object; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }`\n\n**get** `/v1/reports/settlement/network_totals/{token}`\n\nRetrieve a specific network total record by token. Not available in sandbox.\n\n### Parameters\n\n- `token: string`\n\n### Returns\n\n- `{ token: string; amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }`\n\n - `token: string`\n - `amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }`\n - `created: string`\n - `currency: string`\n - `institution_id: string`\n - `is_complete: boolean`\n - `network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'`\n - `report_date: string`\n - `settlement_institution_id: string`\n - `settlement_service: string`\n - `updated: string`\n - `cycle?: number`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst networkTotal = await client.reports.settlement.networkTotals.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(networkTotal);\n```",
perLanguage: {
- go: {
- method: 'client.Reports.Settlement.NetworkTotals.Get',
+ typescript: {
+ method: 'client.reports.settlement.networkTotals.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tnetworkTotal, err := client.Reports.Settlement.NetworkTotals.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", networkTotal.InstitutionID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst networkTotal = await client.reports.settlement.networkTotals.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(networkTotal.institution_id);",
},
- http: {
+ python: {
+ method: 'reports.settlement.network_totals.retrieve',
example:
- 'curl https://api.lithic.com/v1/reports/settlement/network_totals/$TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nnetwork_total = client.reports.settlement.network_totals.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(network_total.institution_id)',
},
java: {
method: 'reports().settlement().networkTotals().retrieve',
@@ -8227,20 +8228,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.NetworkTotal\nimport com.lithic.api.models.ReportSettlementNetworkTotalRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val networkTotal: NetworkTotal = client.reports().settlement().networkTotals().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'reports.settlement.network_totals.retrieve',
+ go: {
+ method: 'client.Reports.Settlement.NetworkTotals.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nnetwork_total = client.reports.settlement.network_totals.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(network_total.institution_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tnetworkTotal, err := client.Reports.Settlement.NetworkTotals.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", networkTotal.InstitutionID)\n}\n',
},
ruby: {
method: 'reports.settlement.network_totals.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nnetwork_total = lithic.reports.settlement.network_totals.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(network_total)',
},
- typescript: {
- method: 'client.reports.settlement.networkTotals.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst networkTotal = await client.reports.settlement.networkTotals.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(networkTotal.institution_id);",
+ 'curl https://api.lithic.com/v1/reports/settlement/network_totals/$TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -8258,13 +8258,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.cardPrograms.list(ending_before?: string, page_size?: number, starting_after?: string): { token: string; account_level_management_enabled: boolean; created: string; name: string; pan_range_end: string; pan_range_start: string; cardholder_currency?: string; settlement_currencies?: string[]; }`\n\n**get** `/v1/card_programs`\n\nList card programs.\n\n### Parameters\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_level_management_enabled: boolean; created: string; name: string; pan_range_end: string; pan_range_start: string; cardholder_currency?: string; settlement_currencies?: string[]; }`\n\n - `token: string`\n - `account_level_management_enabled: boolean`\n - `created: string`\n - `name: string`\n - `pan_range_end: string`\n - `pan_range_start: string`\n - `cardholder_currency?: string`\n - `settlement_currencies?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const cardProgram of client.cardPrograms.list()) {\n console.log(cardProgram);\n}\n```",
perLanguage: {
- go: {
- method: 'client.CardPrograms.List',
+ typescript: {
+ method: 'client.cardPrograms.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.CardPrograms.List(context.TODO(), lithic.CardProgramListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const cardProgram of client.cardPrograms.list()) {\n console.log(cardProgram.token);\n}",
},
- http: {
- example: 'curl https://api.lithic.com/v1/card_programs \\\n -H "Authorization: $LITHIC_API_KEY"',
+ python: {
+ method: 'card_programs.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.card_programs.list()\npage = page.data[0]\nprint(page.token)',
},
java: {
method: 'cardPrograms().list',
@@ -8276,20 +8278,18 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardProgramListPage\nimport com.lithic.api.models.CardProgramListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: CardProgramListPage = client.cardPrograms().list()\n}',
},
- python: {
- method: 'card_programs.list',
+ go: {
+ method: 'client.CardPrograms.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.card_programs.list()\npage = page.data[0]\nprint(page.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.CardPrograms.List(context.TODO(), lithic.CardProgramListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'card_programs.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.card_programs.list\n\nputs(page)',
},
- typescript: {
- method: 'client.cardPrograms.list',
- example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const cardProgram of client.cardPrograms.list()) {\n console.log(cardProgram.token);\n}",
+ http: {
+ example: 'curl https://api.lithic.com/v1/card_programs \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -8307,14 +8307,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.cardPrograms.retrieve(card_program_token: string): { token: string; account_level_management_enabled: boolean; created: string; name: string; pan_range_end: string; pan_range_start: string; cardholder_currency?: string; settlement_currencies?: string[]; }`\n\n**get** `/v1/card_programs/{card_program_token}`\n\nGet card program.\n\n### Parameters\n\n- `card_program_token: string`\n\n### Returns\n\n- `{ token: string; account_level_management_enabled: boolean; created: string; name: string; pan_range_end: string; pan_range_start: string; cardholder_currency?: string; settlement_currencies?: string[]; }`\n\n - `token: string`\n - `account_level_management_enabled: boolean`\n - `created: string`\n - `name: string`\n - `pan_range_end: string`\n - `pan_range_start: string`\n - `cardholder_currency?: string`\n - `settlement_currencies?: string[]`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst cardProgram = await client.cardPrograms.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(cardProgram);\n```",
perLanguage: {
- go: {
- method: 'client.CardPrograms.Get',
+ typescript: {
+ method: 'client.cardPrograms.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcardProgram, err := client.CardPrograms.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", cardProgram.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst cardProgram = await client.cardPrograms.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(cardProgram.token);",
},
- http: {
+ python: {
+ method: 'card_programs.retrieve',
example:
- 'curl https://api.lithic.com/v1/card_programs/$CARD_PROGRAM_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard_program = client.card_programs.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(card_program.token)',
},
java: {
method: 'cardPrograms().retrieve',
@@ -8326,20 +8327,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CardProgram\nimport com.lithic.api.models.CardProgramRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val cardProgram: CardProgram = client.cardPrograms().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'card_programs.retrieve',
+ go: {
+ method: 'client.CardPrograms.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ncard_program = client.card_programs.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(card_program.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tcardProgram, err := client.CardPrograms.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", cardProgram.Token)\n}\n',
},
ruby: {
method: 'card_programs.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ncard_program = lithic.card_programs.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(card_program)',
},
- typescript: {
- method: 'client.cardPrograms.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst cardProgram = await client.cardPrograms.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(cardProgram.token);",
+ 'curl https://api.lithic.com/v1/card_programs/$CARD_PROGRAM_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -8357,14 +8357,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.digitalCardArt.list(ending_before?: string, page_size?: number, starting_after?: string): { token: string; card_program_token: string; created: string; description: string; is_enabled: boolean; network: 'MASTERCARD' | 'VISA'; is_card_program_default?: boolean; }`\n\n**get** `/v1/digital_card_art`\n\nList digital card art.\n\n### Parameters\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; card_program_token: string; created: string; description: string; is_enabled: boolean; network: 'MASTERCARD' | 'VISA'; is_card_program_default?: boolean; }`\n\n - `token: string`\n - `card_program_token: string`\n - `created: string`\n - `description: string`\n - `is_enabled: boolean`\n - `network: 'MASTERCARD' | 'VISA'`\n - `is_card_program_default?: boolean`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const digitalCardArt of client.digitalCardArt.list()) {\n console.log(digitalCardArt);\n}\n```",
perLanguage: {
- go: {
- method: 'client.DigitalCardArt.List',
+ typescript: {
+ method: 'client.digitalCardArt.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.DigitalCardArt.List(context.TODO(), lithic.DigitalCardArtListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const digitalCardArt of client.digitalCardArt.list()) {\n console.log(digitalCardArt.token);\n}",
},
- http: {
+ python: {
+ method: 'digital_card_art.list',
example:
- 'curl https://api.lithic.com/v1/digital_card_art \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.digital_card_art.list()\npage = page.data[0]\nprint(page.token)',
},
java: {
method: 'digitalCardArt().list',
@@ -8376,20 +8377,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.DigitalCardArtListPage\nimport com.lithic.api.models.DigitalCardArtListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: DigitalCardArtListPage = client.digitalCardArt().list()\n}',
},
- python: {
- method: 'digital_card_art.list',
+ go: {
+ method: 'client.DigitalCardArt.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.digital_card_art.list()\npage = page.data[0]\nprint(page.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.DigitalCardArt.List(context.TODO(), lithic.DigitalCardArtListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'digital_card_art.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.digital_card_art.list\n\nputs(page)',
},
- typescript: {
- method: 'client.digitalCardArt.list',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const digitalCardArt of client.digitalCardArt.list()) {\n console.log(digitalCardArt.token);\n}",
+ 'curl https://api.lithic.com/v1/digital_card_art \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -8407,14 +8407,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.digitalCardArt.retrieve(digital_card_art_token: string): { token: string; card_program_token: string; created: string; description: string; is_enabled: boolean; network: 'MASTERCARD' | 'VISA'; is_card_program_default?: boolean; }`\n\n**get** `/v1/digital_card_art/{digital_card_art_token}`\n\nGet digital card art by token.\n\n### Parameters\n\n- `digital_card_art_token: string`\n\n### Returns\n\n- `{ token: string; card_program_token: string; created: string; description: string; is_enabled: boolean; network: 'MASTERCARD' | 'VISA'; is_card_program_default?: boolean; }`\n\n - `token: string`\n - `card_program_token: string`\n - `created: string`\n - `description: string`\n - `is_enabled: boolean`\n - `network: 'MASTERCARD' | 'VISA'`\n - `is_card_program_default?: boolean`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst digitalCardArt = await client.digitalCardArt.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(digitalCardArt);\n```",
perLanguage: {
- go: {
- method: 'client.DigitalCardArt.Get',
+ typescript: {
+ method: 'client.digitalCardArt.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdigitalCardArt, err := client.DigitalCardArt.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", digitalCardArt.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst digitalCardArt = await client.digitalCardArt.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(digitalCardArt.token);",
},
- http: {
+ python: {
+ method: 'digital_card_art.retrieve',
example:
- 'curl https://api.lithic.com/v1/digital_card_art/$DIGITAL_CARD_ART_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndigital_card_art = client.digital_card_art.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(digital_card_art.token)',
},
java: {
method: 'digitalCardArt().retrieve',
@@ -8426,20 +8427,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.DigitalCardArt\nimport com.lithic.api.models.DigitalCardArtRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val digitalCardArt: DigitalCardArt = client.digitalCardArt().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'digital_card_art.retrieve',
+ go: {
+ method: 'client.DigitalCardArt.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ndigital_card_art = client.digital_card_art.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(digital_card_art.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tdigitalCardArt, err := client.DigitalCardArt.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", digitalCardArt.Token)\n}\n',
},
ruby: {
method: 'digital_card_art.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ndigital_card_art = lithic.digital_card_art.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(digital_card_art)',
},
- typescript: {
- method: 'client.digitalCardArt.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst digitalCardArt = await client.digitalCardArt.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(digitalCardArt.token);",
+ 'curl https://api.lithic.com/v1/digital_card_art/$DIGITAL_CARD_ART_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -8469,13 +8469,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.bookTransfers.list(account_token?: string, begin?: string, business_account_token?: string, category?: string, end?: string, ending_before?: string, financial_account_token?: string, page_size?: number, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'DECLINED' | 'SETTLED'): { token: string; category: string; created: string; currency: string; events: object[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: external_resource; transaction_series?: object; }`\n\n**get** `/v1/book_transfers`\n\nList book transfers\n\n### Parameters\n\n- `account_token?: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `business_account_token?: string`\n\n- `category?: string`\n Book Transfer category to be returned.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `financial_account_token?: string`\n Globally unique identifier for the financial account or card that will send the funds. Accepted type dependent on the program's use case.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `result?: 'APPROVED' | 'DECLINED'`\n Book transfer result to be returned.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'DECLINED' | 'SETTLED'`\n Book transfer status to be returned.\n\n### Returns\n\n- `{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }`\n Book transfer transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `currency: string`\n - `events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]`\n - `family: 'TRANSFER'`\n - `from_financial_account_token: string`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `to_financial_account_token: string`\n - `updated: string`\n - `external_id?: string`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const bookTransferResponse of client.bookTransfers.list()) {\n console.log(bookTransferResponse);\n}\n```",
perLanguage: {
- go: {
- method: 'client.BookTransfers.List',
+ typescript: {
+ method: 'client.bookTransfers.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.BookTransfers.List(context.TODO(), lithic.BookTransferListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const bookTransferResponse of client.bookTransfers.list()) {\n console.log(bookTransferResponse.external_id);\n}",
},
- http: {
- example: 'curl https://api.lithic.com/v1/book_transfers \\\n -H "Authorization: $LITHIC_API_KEY"',
+ python: {
+ method: 'book_transfers.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.book_transfers.list()\npage = page.data[0]\nprint(page.external_id)',
},
java: {
method: 'bookTransfers().list',
@@ -8487,20 +8489,18 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.BookTransferListPage\nimport com.lithic.api.models.BookTransferListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: BookTransferListPage = client.bookTransfers().list()\n}',
},
- python: {
- method: 'book_transfers.list',
+ go: {
+ method: 'client.BookTransfers.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.book_transfers.list()\npage = page.data[0]\nprint(page.external_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.BookTransfers.List(context.TODO(), lithic.BookTransferListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'book_transfers.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.book_transfers.list\n\nputs(page)',
},
- typescript: {
- method: 'client.bookTransfers.list',
- example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const bookTransferResponse of client.bookTransfers.list()) {\n console.log(bookTransferResponse.external_id);\n}",
+ http: {
+ example: 'curl https://api.lithic.com/v1/book_transfers \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -8530,14 +8530,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## create\n\n`client.bookTransfers.create(amount: number, category: string, from_financial_account_token: string, subtype: string, to_financial_account_token: string, type: string, token?: string, external_id?: string, hold_token?: string, memo?: string, on_closed_account?: 'FAIL' | 'USE_SUSPENSE'): { token: string; category: string; created: string; currency: string; events: object[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: external_resource; transaction_series?: object; }`\n\n**post** `/v1/book_transfers`\n\nBook transfer funds between two financial accounts or between a financial account and card\n\n### Parameters\n\n- `amount: number`\n Amount to be transferred in the currency's smallest unit (e.g., cents for USD). This should always be a positive value.\n\n- `category: string`\n\n- `from_financial_account_token: string`\n Globally unique identifier for the financial account or card that will send the funds. Accepted type dependent on the program's use case.\n\n- `subtype: string`\n The program specific subtype code for the specified category/type.\n\n- `to_financial_account_token: string`\n Globally unique identifier for the financial account or card that will receive the funds. Accepted type dependent on the program's use case.\n\n- `type: string`\n Type of the book transfer\n\n- `token?: string`\n Customer-provided token that will serve as an idempotency token. This token will become the transaction token.\n\n- `external_id?: string`\n External ID defined by the customer\n\n- `hold_token?: string`\n Token of an existing hold to settle when this transfer is initiated\n\n- `memo?: string`\n Optional descriptor for the transfer.\n\n- `on_closed_account?: 'FAIL' | 'USE_SUSPENSE'`\n What to do if the financial account is closed when posting an operation\n\n### Returns\n\n- `{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }`\n Book transfer transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `currency: string`\n - `events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]`\n - `family: 'TRANSFER'`\n - `from_financial_account_token: string`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `to_financial_account_token: string`\n - `updated: string`\n - `external_id?: string`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst bookTransferResponse = await client.bookTransfers.create({\n amount: 1,\n category: 'ADJUSTMENT',\n from_financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n subtype: 'subtype',\n to_financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n type: 'ATM_BALANCE_INQUIRY',\n});\n\nconsole.log(bookTransferResponse);\n```",
perLanguage: {
- go: {
- method: 'client.BookTransfers.New',
+ typescript: {
+ method: 'client.bookTransfers.create',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tbookTransferResponse, err := client.BookTransfers.New(context.TODO(), lithic.BookTransferNewParams{\n\t\tAmount: lithic.F(int64(1)),\n\t\tCategory: lithic.F(lithic.BookTransferNewParamsCategoryAdjustment),\n\t\tFromFinancialAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tSubtype: lithic.F("subtype"),\n\t\tToFinancialAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tType: lithic.F(lithic.BookTransferNewParamsTypeAtmBalanceInquiry),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", bookTransferResponse.ExternalID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst bookTransferResponse = await client.bookTransfers.create({\n amount: 1,\n category: 'ADJUSTMENT',\n from_financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n subtype: 'subtype',\n to_financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n type: 'ATM_BALANCE_INQUIRY',\n});\n\nconsole.log(bookTransferResponse.external_id);",
},
- http: {
+ python: {
+ method: 'book_transfers.create',
example:
- 'curl https://api.lithic.com/v1/book_transfers \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 1,\n "category": "ADJUSTMENT",\n "from_financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "subtype": "subtype",\n "to_financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "type": "ATM_BALANCE_INQUIRY"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nbook_transfer_response = client.book_transfers.create(\n amount=1,\n category="ADJUSTMENT",\n from_financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n subtype="subtype",\n to_financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n type="ATM_BALANCE_INQUIRY",\n)\nprint(book_transfer_response.external_id)',
},
java: {
method: 'bookTransfers().create',
@@ -8549,20 +8550,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.BookTransferCreateParams\nimport com.lithic.api.models.BookTransferResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: BookTransferCreateParams = BookTransferCreateParams.builder()\n .amount(1L)\n .category(BookTransferCreateParams.BookTransferCategory.ADJUSTMENT)\n .fromFinancialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .subtype("subtype")\n .toFinancialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .type(BookTransferCreateParams.BookTransferType.ATM_BALANCE_INQUIRY)\n .build()\n val bookTransferResponse: BookTransferResponse = client.bookTransfers().create(params)\n}',
},
- python: {
- method: 'book_transfers.create',
+ go: {
+ method: 'client.BookTransfers.New',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nbook_transfer_response = client.book_transfers.create(\n amount=1,\n category="ADJUSTMENT",\n from_financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n subtype="subtype",\n to_financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n type="ATM_BALANCE_INQUIRY",\n)\nprint(book_transfer_response.external_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tbookTransferResponse, err := client.BookTransfers.New(context.TODO(), lithic.BookTransferNewParams{\n\t\tAmount: lithic.F(int64(1)),\n\t\tCategory: lithic.F(lithic.BookTransferNewParamsCategoryAdjustment),\n\t\tFromFinancialAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tSubtype: lithic.F("subtype"),\n\t\tToFinancialAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tType: lithic.F(lithic.BookTransferNewParamsTypeAtmBalanceInquiry),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", bookTransferResponse.ExternalID)\n}\n',
},
ruby: {
method: 'book_transfers.create',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nbook_transfer_response = lithic.book_transfers.create(\n amount: 1,\n category: :ADJUSTMENT,\n from_financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n subtype: "subtype",\n to_financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n type: :ATM_BALANCE_INQUIRY\n)\n\nputs(book_transfer_response)',
},
- typescript: {
- method: 'client.bookTransfers.create',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst bookTransferResponse = await client.bookTransfers.create({\n amount: 1,\n category: 'ADJUSTMENT',\n from_financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n subtype: 'subtype',\n to_financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n type: 'ATM_BALANCE_INQUIRY',\n});\n\nconsole.log(bookTransferResponse.external_id);",
+ 'curl https://api.lithic.com/v1/book_transfers \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 1,\n "category": "ADJUSTMENT",\n "from_financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "subtype": "subtype",\n "to_financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "type": "ATM_BALANCE_INQUIRY"\n }\'',
},
},
},
@@ -8580,14 +8580,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.bookTransfers.retrieve(book_transfer_token: string): { token: string; category: string; created: string; currency: string; events: object[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: external_resource; transaction_series?: object; }`\n\n**get** `/v1/book_transfers/{book_transfer_token}`\n\nGet book transfer by token\n\n### Parameters\n\n- `book_transfer_token: string`\n\n### Returns\n\n- `{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }`\n Book transfer transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `currency: string`\n - `events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]`\n - `family: 'TRANSFER'`\n - `from_financial_account_token: string`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `to_financial_account_token: string`\n - `updated: string`\n - `external_id?: string`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst bookTransferResponse = await client.bookTransfers.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(bookTransferResponse);\n```",
perLanguage: {
- go: {
- method: 'client.BookTransfers.Get',
+ typescript: {
+ method: 'client.bookTransfers.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tbookTransferResponse, err := client.BookTransfers.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", bookTransferResponse.ExternalID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst bookTransferResponse = await client.bookTransfers.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(bookTransferResponse.external_id);",
},
- http: {
+ python: {
+ method: 'book_transfers.retrieve',
example:
- 'curl https://api.lithic.com/v1/book_transfers/$BOOK_TRANSFER_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nbook_transfer_response = client.book_transfers.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(book_transfer_response.external_id)',
},
java: {
method: 'bookTransfers().retrieve',
@@ -8599,20 +8600,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.BookTransferResponse\nimport com.lithic.api.models.BookTransferRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val bookTransferResponse: BookTransferResponse = client.bookTransfers().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'book_transfers.retrieve',
+ go: {
+ method: 'client.BookTransfers.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nbook_transfer_response = client.book_transfers.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(book_transfer_response.external_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tbookTransferResponse, err := client.BookTransfers.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", bookTransferResponse.ExternalID)\n}\n',
},
ruby: {
method: 'book_transfers.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nbook_transfer_response = lithic.book_transfers.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(book_transfer_response)',
},
- typescript: {
- method: 'client.bookTransfers.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst bookTransferResponse = await client.bookTransfers.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(bookTransferResponse.external_id);",
+ 'curl https://api.lithic.com/v1/book_transfers/$BOOK_TRANSFER_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -8630,14 +8630,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## reverse\n\n`client.bookTransfers.reverse(book_transfer_token: string, memo?: string): { token: string; category: string; created: string; currency: string; events: object[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: external_resource; transaction_series?: object; }`\n\n**post** `/v1/book_transfers/{book_transfer_token}/reverse`\n\nReverse a book transfer\n\n### Parameters\n\n- `book_transfer_token: string`\n\n- `memo?: string`\n Optional descriptor for the reversal.\n\n### Returns\n\n- `{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }`\n Book transfer transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `currency: string`\n - `events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]`\n - `family: 'TRANSFER'`\n - `from_financial_account_token: string`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `to_financial_account_token: string`\n - `updated: string`\n - `external_id?: string`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst bookTransferResponse = await client.bookTransfers.reverse('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(bookTransferResponse);\n```",
perLanguage: {
- go: {
- method: 'client.BookTransfers.Reverse',
+ typescript: {
+ method: 'client.bookTransfers.reverse',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tbookTransferResponse, err := client.BookTransfers.Reverse(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.BookTransferReverseParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", bookTransferResponse.ExternalID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst bookTransferResponse = await client.bookTransfers.reverse(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(bookTransferResponse.external_id);",
},
- http: {
+ python: {
+ method: 'book_transfers.reverse',
example:
- "curl https://api.lithic.com/v1/book_transfers/$BOOK_TRANSFER_TOKEN/reverse \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nbook_transfer_response = client.book_transfers.reverse(\n book_transfer_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(book_transfer_response.external_id)',
},
java: {
method: 'bookTransfers().reverse',
@@ -8649,20 +8650,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.BookTransferResponse\nimport com.lithic.api.models.BookTransferReverseParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val bookTransferResponse: BookTransferResponse = client.bookTransfers().reverse("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'book_transfers.reverse',
+ go: {
+ method: 'client.BookTransfers.Reverse',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nbook_transfer_response = client.book_transfers.reverse(\n book_transfer_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(book_transfer_response.external_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tbookTransferResponse, err := client.BookTransfers.Reverse(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.BookTransferReverseParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", bookTransferResponse.ExternalID)\n}\n',
},
ruby: {
method: 'book_transfers.reverse',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nbook_transfer_response = lithic.book_transfers.reverse("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(book_transfer_response)',
},
- typescript: {
- method: 'client.bookTransfers.reverse',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst bookTransferResponse = await client.bookTransfers.reverse(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(bookTransferResponse.external_id);",
+ "curl https://api.lithic.com/v1/book_transfers/$BOOK_TRANSFER_TOKEN/reverse \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
},
},
},
@@ -8680,14 +8680,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retry\n\n`client.bookTransfers.retry(book_transfer_token: string, retry_token: string): { token: string; category: string; created: string; currency: string; events: object[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: external_resource; transaction_series?: object; }`\n\n**post** `/v1/book_transfers/{book_transfer_token}/retry`\n\nRetry a book transfer that has been declined\n\n### Parameters\n\n- `book_transfer_token: string`\n\n- `retry_token: string`\n Customer-provided token that will serve as an idempotency token. This token will become the transaction token.\n\n### Returns\n\n- `{ token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; }`\n Book transfer transaction\n\n - `token: string`\n - `category: string`\n - `created: string`\n - `currency: string`\n - `events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]`\n - `family: 'TRANSFER'`\n - `from_financial_account_token: string`\n - `pending_amount: number`\n - `result: 'APPROVED' | 'DECLINED'`\n - `settled_amount: number`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `to_financial_account_token: string`\n - `updated: string`\n - `external_id?: string`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst bookTransferResponse = await client.bookTransfers.retry('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { retry_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(bookTransferResponse);\n```",
perLanguage: {
- go: {
- method: 'client.BookTransfers.Retry',
+ typescript: {
+ method: 'client.bookTransfers.retry',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tbookTransferResponse, err := client.BookTransfers.Retry(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.BookTransferRetryParams{\n\t\t\tRetryToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", bookTransferResponse.ExternalID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst bookTransferResponse = await client.bookTransfers.retry(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { retry_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(bookTransferResponse.external_id);",
},
- http: {
+ python: {
+ method: 'book_transfers.retry',
example:
- 'curl https://api.lithic.com/v1/book_transfers/$BOOK_TRANSFER_TOKEN/retry \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "retry_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nbook_transfer_response = client.book_transfers.retry(\n book_transfer_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n retry_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(book_transfer_response.external_id)',
},
java: {
method: 'bookTransfers().retry',
@@ -8699,20 +8700,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.BookTransferResponse\nimport com.lithic.api.models.BookTransferRetryParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: BookTransferRetryParams = BookTransferRetryParams.builder()\n .bookTransferToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .retryToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val bookTransferResponse: BookTransferResponse = client.bookTransfers().retry(params)\n}',
},
- python: {
- method: 'book_transfers.retry',
+ go: {
+ method: 'client.BookTransfers.Retry',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nbook_transfer_response = client.book_transfers.retry(\n book_transfer_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n retry_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(book_transfer_response.external_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tbookTransferResponse, err := client.BookTransfers.Retry(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.BookTransferRetryParams{\n\t\t\tRetryToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", bookTransferResponse.ExternalID)\n}\n',
},
ruby: {
method: 'book_transfers.retry_',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nbook_transfer_response = lithic.book_transfers.retry_(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n retry_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(book_transfer_response)',
},
- typescript: {
- method: 'client.bookTransfers.retry',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst bookTransferResponse = await client.bookTransfers.retry(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { retry_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(bookTransferResponse.external_id);",
+ 'curl https://api.lithic.com/v1/book_transfers/$BOOK_TRANSFER_TOKEN/retry \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "retry_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n }\'',
},
},
},
@@ -8729,14 +8729,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.creditProducts.extendedCredit.retrieve(credit_product_token: string): { credit_extended: number; }`\n\n**get** `/v1/credit_products/{credit_product_token}/extended_credit`\n\nGet the extended credit for a given credit product under a program\n\n### Parameters\n\n- `credit_product_token: string`\n\n### Returns\n\n- `{ credit_extended: number; }`\n\n - `credit_extended: number`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst extendedCredit = await client.creditProducts.extendedCredit.retrieve('credit_product_token');\n\nconsole.log(extendedCredit);\n```",
perLanguage: {
- go: {
- method: 'client.CreditProducts.ExtendedCredit.Get',
+ typescript: {
+ method: 'client.creditProducts.extendedCredit.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\textendedCredit, err := client.CreditProducts.ExtendedCredit.Get(context.TODO(), "credit_product_token")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", extendedCredit.CreditExtended)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst extendedCredit = await client.creditProducts.extendedCredit.retrieve('credit_product_token');\n\nconsole.log(extendedCredit.credit_extended);",
},
- http: {
+ python: {
+ method: 'credit_products.extended_credit.retrieve',
example:
- 'curl https://api.lithic.com/v1/credit_products/$CREDIT_PRODUCT_TOKEN/extended_credit \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nextended_credit = client.credit_products.extended_credit.retrieve(\n "credit_product_token",\n)\nprint(extended_credit.credit_extended)',
},
java: {
method: 'creditProducts().extendedCredit().retrieve',
@@ -8748,20 +8749,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CreditProductExtendedCreditRetrieveParams\nimport com.lithic.api.models.ExtendedCredit\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val extendedCredit: ExtendedCredit = client.creditProducts().extendedCredit().retrieve("credit_product_token")\n}',
},
- python: {
- method: 'credit_products.extended_credit.retrieve',
+ go: {
+ method: 'client.CreditProducts.ExtendedCredit.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nextended_credit = client.credit_products.extended_credit.retrieve(\n "credit_product_token",\n)\nprint(extended_credit.credit_extended)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\textendedCredit, err := client.CreditProducts.ExtendedCredit.Get(context.TODO(), "credit_product_token")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", extendedCredit.CreditExtended)\n}\n',
},
ruby: {
method: 'credit_products.extended_credit.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nextended_credit = lithic.credit_products.extended_credit.retrieve("credit_product_token")\n\nputs(extended_credit)',
},
- typescript: {
- method: 'client.creditProducts.extendedCredit.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst extendedCredit = await client.creditProducts.extendedCredit.retrieve('credit_product_token');\n\nconsole.log(extendedCredit.credit_extended);",
+ 'curl https://api.lithic.com/v1/credit_products/$CREDIT_PRODUCT_TOKEN/extended_credit \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -8778,14 +8778,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.creditProducts.primeRates.retrieve(credit_product_token: string, ending_before?: string, starting_after?: string): { data: object[]; has_more: boolean; }`\n\n**get** `/v1/credit_products/{credit_product_token}/prime_rates`\n\nGet Credit Product Prime Rates\n\n### Parameters\n\n- `credit_product_token: string`\n Globally unique identifier for credit products.\n\n- `ending_before?: string`\n The effective date that the prime rates ends before\n\n- `starting_after?: string`\n The effective date that the prime rate starts after\n\n### Returns\n\n- `{ data: { effective_date: string; rate: string; }[]; has_more: boolean; }`\n\n - `data: { effective_date: string; rate: string; }[]`\n - `has_more: boolean`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst primeRate = await client.creditProducts.primeRates.retrieve('credit_product_token');\n\nconsole.log(primeRate);\n```",
perLanguage: {
- go: {
- method: 'client.CreditProducts.PrimeRates.Get',
+ typescript: {
+ method: 'client.creditProducts.primeRates.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tprimeRate, err := client.CreditProducts.PrimeRates.Get(\n\t\tcontext.TODO(),\n\t\t"credit_product_token",\n\t\tlithic.CreditProductPrimeRateGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", primeRate.Data)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst primeRate = await client.creditProducts.primeRates.retrieve('credit_product_token');\n\nconsole.log(primeRate.data);",
},
- http: {
+ python: {
+ method: 'credit_products.prime_rates.retrieve',
example:
- 'curl https://api.lithic.com/v1/credit_products/$CREDIT_PRODUCT_TOKEN/prime_rates \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nprime_rate = client.credit_products.prime_rates.retrieve(\n credit_product_token="credit_product_token",\n)\nprint(prime_rate.data)',
},
java: {
method: 'creditProducts().primeRates().retrieve',
@@ -8797,20 +8798,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CreditProductPrimeRateRetrieveParams\nimport com.lithic.api.models.PrimeRateRetrieveResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val primeRate: PrimeRateRetrieveResponse = client.creditProducts().primeRates().retrieve("credit_product_token")\n}',
},
- python: {
- method: 'credit_products.prime_rates.retrieve',
+ go: {
+ method: 'client.CreditProducts.PrimeRates.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nprime_rate = client.credit_products.prime_rates.retrieve(\n credit_product_token="credit_product_token",\n)\nprint(prime_rate.data)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tprimeRate, err := client.CreditProducts.PrimeRates.Get(\n\t\tcontext.TODO(),\n\t\t"credit_product_token",\n\t\tlithic.CreditProductPrimeRateGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", primeRate.Data)\n}\n',
},
ruby: {
method: 'credit_products.prime_rates.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nprime_rate = lithic.credit_products.prime_rates.retrieve("credit_product_token")\n\nputs(prime_rate)',
},
- typescript: {
- method: 'client.creditProducts.primeRates.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst primeRate = await client.creditProducts.primeRates.retrieve('credit_product_token');\n\nconsole.log(primeRate.data);",
+ 'curl https://api.lithic.com/v1/credit_products/$CREDIT_PRODUCT_TOKEN/prime_rates \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -8826,14 +8826,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## create\n\n`client.creditProducts.primeRates.create(credit_product_token: string, effective_date: string, rate: string): void`\n\n**post** `/v1/credit_products/{credit_product_token}/prime_rates`\n\nPost Credit Product Prime Rate\n\n### Parameters\n\n- `credit_product_token: string`\n Globally unique identifier for credit products.\n\n- `effective_date: string`\n Date the rate goes into effect\n\n- `rate: string`\n The rate in decimal format\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nawait client.creditProducts.primeRates.create('credit_product_token', { effective_date: '2019-12-27', rate: 'rate' })\n```",
perLanguage: {
- go: {
- method: 'client.CreditProducts.PrimeRates.New',
+ typescript: {
+ method: 'client.creditProducts.primeRates.create',
example:
- 'package main\n\nimport (\n\t"context"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.CreditProducts.PrimeRates.New(\n\t\tcontext.TODO(),\n\t\t"credit_product_token",\n\t\tlithic.CreditProductPrimeRateNewParams{\n\t\t\tEffectiveDate: lithic.F(time.Now()),\n\t\t\tRate: lithic.F("rate"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.creditProducts.primeRates.create('credit_product_token', {\n effective_date: '2019-12-27',\n rate: 'rate',\n});",
},
- http: {
+ python: {
+ method: 'credit_products.prime_rates.create',
example:
- 'curl https://api.lithic.com/v1/credit_products/$CREDIT_PRODUCT_TOKEN/prime_rates \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "effective_date": "2019-12-27",\n "rate": "rate"\n }\'',
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.credit_products.prime_rates.create(\n credit_product_token="credit_product_token",\n effective_date=date.fromisoformat("2019-12-27"),\n rate="rate",\n)',
},
java: {
method: 'creditProducts().primeRates().create',
@@ -8845,20 +8846,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.CreditProductPrimeRateCreateParams\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: CreditProductPrimeRateCreateParams = CreditProductPrimeRateCreateParams.builder()\n .creditProductToken("credit_product_token")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .rate("rate")\n .build()\n client.creditProducts().primeRates().create(params)\n}',
},
- python: {
- method: 'credit_products.prime_rates.create',
+ go: {
+ method: 'client.CreditProducts.PrimeRates.New',
example:
- 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.credit_products.prime_rates.create(\n credit_product_token="credit_product_token",\n effective_date=date.fromisoformat("2019-12-27"),\n rate="rate",\n)',
+ 'package main\n\nimport (\n\t"context"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.CreditProducts.PrimeRates.New(\n\t\tcontext.TODO(),\n\t\t"credit_product_token",\n\t\tlithic.CreditProductPrimeRateNewParams{\n\t\t\tEffectiveDate: lithic.F(time.Now()),\n\t\t\tRate: lithic.F("rate"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
},
ruby: {
method: 'credit_products.prime_rates.create',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.credit_products.prime_rates.create(\n "credit_product_token",\n effective_date: "2019-12-27",\n rate: "rate"\n)\n\nputs(result)',
},
- typescript: {
- method: 'client.creditProducts.primeRates.create',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.creditProducts.primeRates.create('credit_product_token', {\n effective_date: '2019-12-27',\n rate: 'rate',\n});",
+ 'curl https://api.lithic.com/v1/credit_products/$CREDIT_PRODUCT_TOKEN/prime_rates \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "effective_date": "2019-12-27",\n "rate": "rate"\n }\'',
},
},
},
@@ -8887,14 +8887,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.externalPayments.list(begin?: string, business_account_token?: string, category?: string, end?: string, ending_before?: string, financial_account_token?: string, page_size?: number, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**get** `/v1/external_payments`\n\nList external payments\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `business_account_token?: string`\n\n- `category?: string`\n External Payment category to be returned.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `financial_account_token?: string`\n Globally unique identifier for the financial account or card that will send the funds. Accepted type dependent on the program's use case.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `result?: 'APPROVED' | 'DECLINED'`\n External Payment result to be returned.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n Book transfer status to be returned.\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const externalPayment of client.externalPayments.list()) {\n console.log(externalPayment);\n}\n```",
perLanguage: {
- go: {
- method: 'client.ExternalPayments.List',
+ typescript: {
+ method: 'client.externalPayments.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.ExternalPayments.List(context.TODO(), lithic.ExternalPaymentListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const externalPayment of client.externalPayments.list()) {\n console.log(externalPayment.user_defined_id);\n}",
},
- http: {
+ python: {
+ method: 'external_payments.list',
example:
- 'curl https://api.lithic.com/v1/external_payments \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.external_payments.list()\npage = page.data[0]\nprint(page.user_defined_id)',
},
java: {
method: 'externalPayments().list',
@@ -8906,20 +8907,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalPaymentListPage\nimport com.lithic.api.models.ExternalPaymentListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: ExternalPaymentListPage = client.externalPayments().list()\n}',
},
- python: {
- method: 'external_payments.list',
+ go: {
+ method: 'client.ExternalPayments.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.external_payments.list()\npage = page.data[0]\nprint(page.user_defined_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.ExternalPayments.List(context.TODO(), lithic.ExternalPaymentListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'external_payments.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.external_payments.list\n\nputs(page)',
},
- typescript: {
- method: 'client.externalPayments.list',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const externalPayment of client.externalPayments.list()) {\n console.log(externalPayment.user_defined_id);\n}",
+ 'curl https://api.lithic.com/v1/external_payments \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -8947,14 +8947,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## create\n\n`client.externalPayments.create(amount: number, category: string, effective_date: string, financial_account_token: string, payment_type: 'DEPOSIT' | 'WITHDRAWAL', token?: string, memo?: string, progress_to?: 'SETTLED' | 'RELEASED', user_defined_id?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**post** `/v1/external_payments`\n\nCreate external payment\n\n### Parameters\n\n- `amount: number`\n\n- `category: string`\n\n- `effective_date: string`\n\n- `financial_account_token: string`\n\n- `payment_type: 'DEPOSIT' | 'WITHDRAWAL'`\n\n- `token?: string`\n Customer-provided token that will serve as an idempotency token. This token will become the transaction token.\n\n- `memo?: string`\n\n- `progress_to?: 'SETTLED' | 'RELEASED'`\n\n- `user_defined_id?: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalPayment = await client.externalPayments.create({\n amount: 0,\n category: 'EXTERNAL_WIRE',\n effective_date: '2019-12-27',\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n payment_type: 'DEPOSIT',\n});\n\nconsole.log(externalPayment);\n```",
perLanguage: {
- go: {
- method: 'client.ExternalPayments.New',
+ typescript: {
+ method: 'client.externalPayments.create',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalPayment, err := client.ExternalPayments.New(context.TODO(), lithic.ExternalPaymentNewParams{\n\t\tAmount: lithic.F(int64(0)),\n\t\tCategory: lithic.F(lithic.ExternalPaymentNewParamsCategoryExternalWire),\n\t\tEffectiveDate: lithic.F(time.Now()),\n\t\tFinancialAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tPaymentType: lithic.F(lithic.ExternalPaymentNewParamsPaymentTypeDeposit),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalPayment.UserDefinedID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalPayment = await client.externalPayments.create({\n amount: 0,\n category: 'EXTERNAL_WIRE',\n effective_date: '2019-12-27',\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n payment_type: 'DEPOSIT',\n});\n\nconsole.log(externalPayment.user_defined_id);",
},
- http: {
+ python: {
+ method: 'external_payments.create',
example:
- 'curl https://api.lithic.com/v1/external_payments \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 0,\n "category": "EXTERNAL_WIRE",\n "effective_date": "2019-12-27",\n "financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "payment_type": "DEPOSIT"\n }\'',
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_payment = client.external_payments.create(\n amount=0,\n category="EXTERNAL_WIRE",\n effective_date=date.fromisoformat("2019-12-27"),\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n payment_type="DEPOSIT",\n)\nprint(external_payment.user_defined_id)',
},
java: {
method: 'externalPayments().create',
@@ -8966,20 +8967,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalPayment\nimport com.lithic.api.models.ExternalPaymentCreateParams\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ExternalPaymentCreateParams = ExternalPaymentCreateParams.builder()\n .amount(0L)\n .category(ExternalPaymentCreateParams.ExternalPaymentCategory.EXTERNAL_WIRE)\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .paymentType(ExternalPaymentCreateParams.ExternalPaymentDirection.DEPOSIT)\n .build()\n val externalPayment: ExternalPayment = client.externalPayments().create(params)\n}',
},
- python: {
- method: 'external_payments.create',
+ go: {
+ method: 'client.ExternalPayments.New',
example:
- 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_payment = client.external_payments.create(\n amount=0,\n category="EXTERNAL_WIRE",\n effective_date=date.fromisoformat("2019-12-27"),\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n payment_type="DEPOSIT",\n)\nprint(external_payment.user_defined_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalPayment, err := client.ExternalPayments.New(context.TODO(), lithic.ExternalPaymentNewParams{\n\t\tAmount: lithic.F(int64(0)),\n\t\tCategory: lithic.F(lithic.ExternalPaymentNewParamsCategoryExternalWire),\n\t\tEffectiveDate: lithic.F(time.Now()),\n\t\tFinancialAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\tPaymentType: lithic.F(lithic.ExternalPaymentNewParamsPaymentTypeDeposit),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalPayment.UserDefinedID)\n}\n',
},
ruby: {
method: 'external_payments.create',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_payment = lithic.external_payments.create(\n amount: 0,\n category: :EXTERNAL_WIRE,\n effective_date: "2019-12-27",\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n payment_type: :DEPOSIT\n)\n\nputs(external_payment)',
},
- typescript: {
- method: 'client.externalPayments.create',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalPayment = await client.externalPayments.create({\n amount: 0,\n category: 'EXTERNAL_WIRE',\n effective_date: '2019-12-27',\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n payment_type: 'DEPOSIT',\n});\n\nconsole.log(externalPayment.user_defined_id);",
+ 'curl https://api.lithic.com/v1/external_payments \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 0,\n "category": "EXTERNAL_WIRE",\n "effective_date": "2019-12-27",\n "financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n "payment_type": "DEPOSIT"\n }\'',
},
},
},
@@ -8997,14 +8997,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.externalPayments.retrieve(external_payment_token: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**get** `/v1/external_payments/{external_payment_token}`\n\nGet external payment\n\n### Parameters\n\n- `external_payment_token: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalPayment = await client.externalPayments.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(externalPayment);\n```",
perLanguage: {
- go: {
- method: 'client.ExternalPayments.Get',
+ typescript: {
+ method: 'client.externalPayments.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalPayment, err := client.ExternalPayments.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalPayment.UserDefinedID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalPayment = await client.externalPayments.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(externalPayment.user_defined_id);",
},
- http: {
+ python: {
+ method: 'external_payments.retrieve',
example:
- 'curl https://api.lithic.com/v1/external_payments/$EXTERNAL_PAYMENT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_payment = client.external_payments.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(external_payment.user_defined_id)',
},
java: {
method: 'externalPayments().retrieve',
@@ -9016,20 +9017,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalPayment\nimport com.lithic.api.models.ExternalPaymentRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val externalPayment: ExternalPayment = client.externalPayments().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'external_payments.retrieve',
+ go: {
+ method: 'client.ExternalPayments.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_payment = client.external_payments.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(external_payment.user_defined_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalPayment, err := client.ExternalPayments.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalPayment.UserDefinedID)\n}\n',
},
ruby: {
method: 'external_payments.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_payment = lithic.external_payments.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(external_payment)',
},
- typescript: {
- method: 'client.externalPayments.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalPayment = await client.externalPayments.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(externalPayment.user_defined_id);",
+ 'curl https://api.lithic.com/v1/external_payments/$EXTERNAL_PAYMENT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -9052,14 +9052,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## settle\n\n`client.externalPayments.settle(external_payment_token: string, effective_date: string, memo?: string, progress_to?: 'SETTLED' | 'RELEASED'): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**post** `/v1/external_payments/{external_payment_token}/settle`\n\nSettle external payment\n\n### Parameters\n\n- `external_payment_token: string`\n\n- `effective_date: string`\n\n- `memo?: string`\n\n- `progress_to?: 'SETTLED' | 'RELEASED'`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalPayment = await client.externalPayments.settle('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { effective_date: '2019-12-27' });\n\nconsole.log(externalPayment);\n```",
perLanguage: {
- go: {
- method: 'client.ExternalPayments.Settle',
+ typescript: {
+ method: 'client.externalPayments.settle',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalPayment, err := client.ExternalPayments.Settle(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalPaymentSettleParams{\n\t\t\tEffectiveDate: lithic.F(time.Now()),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalPayment.UserDefinedID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalPayment = await client.externalPayments.settle(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { effective_date: '2019-12-27' },\n);\n\nconsole.log(externalPayment.user_defined_id);",
},
- http: {
+ python: {
+ method: 'external_payments.settle',
example:
- 'curl https://api.lithic.com/v1/external_payments/$EXTERNAL_PAYMENT_TOKEN/settle \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "effective_date": "2019-12-27"\n }\'',
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_payment = client.external_payments.settle(\n external_payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n effective_date=date.fromisoformat("2019-12-27"),\n)\nprint(external_payment.user_defined_id)',
},
java: {
method: 'externalPayments().settle',
@@ -9071,20 +9072,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalPayment\nimport com.lithic.api.models.ExternalPaymentSettleParams\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ExternalPaymentSettleParams = ExternalPaymentSettleParams.builder()\n .externalPaymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build()\n val externalPayment: ExternalPayment = client.externalPayments().settle(params)\n}',
},
- python: {
- method: 'external_payments.settle',
+ go: {
+ method: 'client.ExternalPayments.Settle',
example:
- 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_payment = client.external_payments.settle(\n external_payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n effective_date=date.fromisoformat("2019-12-27"),\n)\nprint(external_payment.user_defined_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalPayment, err := client.ExternalPayments.Settle(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalPaymentSettleParams{\n\t\t\tEffectiveDate: lithic.F(time.Now()),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalPayment.UserDefinedID)\n}\n',
},
ruby: {
method: 'external_payments.settle',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_payment = lithic.external_payments.settle("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", effective_date: "2019-12-27")\n\nputs(external_payment)',
},
- typescript: {
- method: 'client.externalPayments.settle',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalPayment = await client.externalPayments.settle(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { effective_date: '2019-12-27' },\n);\n\nconsole.log(externalPayment.user_defined_id);",
+ 'curl https://api.lithic.com/v1/external_payments/$EXTERNAL_PAYMENT_TOKEN/settle \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "effective_date": "2019-12-27"\n }\'',
},
},
},
@@ -9102,14 +9102,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## release\n\n`client.externalPayments.release(external_payment_token: string, effective_date: string, memo?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**post** `/v1/external_payments/{external_payment_token}/release`\n\nRelease external payment\n\n### Parameters\n\n- `external_payment_token: string`\n\n- `effective_date: string`\n\n- `memo?: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalPayment = await client.externalPayments.release('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { effective_date: '2019-12-27' });\n\nconsole.log(externalPayment);\n```",
perLanguage: {
- go: {
- method: 'client.ExternalPayments.Release',
+ typescript: {
+ method: 'client.externalPayments.release',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalPayment, err := client.ExternalPayments.Release(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalPaymentReleaseParams{\n\t\t\tEffectiveDate: lithic.F(time.Now()),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalPayment.UserDefinedID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalPayment = await client.externalPayments.release(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { effective_date: '2019-12-27' },\n);\n\nconsole.log(externalPayment.user_defined_id);",
},
- http: {
+ python: {
+ method: 'external_payments.release',
example:
- 'curl https://api.lithic.com/v1/external_payments/$EXTERNAL_PAYMENT_TOKEN/release \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "effective_date": "2019-12-27"\n }\'',
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_payment = client.external_payments.release(\n external_payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n effective_date=date.fromisoformat("2019-12-27"),\n)\nprint(external_payment.user_defined_id)',
},
java: {
method: 'externalPayments().release',
@@ -9121,20 +9122,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalPayment\nimport com.lithic.api.models.ExternalPaymentReleaseParams\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ExternalPaymentReleaseParams = ExternalPaymentReleaseParams.builder()\n .externalPaymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build()\n val externalPayment: ExternalPayment = client.externalPayments().release(params)\n}',
},
- python: {
- method: 'external_payments.release',
+ go: {
+ method: 'client.ExternalPayments.Release',
example:
- 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_payment = client.external_payments.release(\n external_payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n effective_date=date.fromisoformat("2019-12-27"),\n)\nprint(external_payment.user_defined_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalPayment, err := client.ExternalPayments.Release(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalPaymentReleaseParams{\n\t\t\tEffectiveDate: lithic.F(time.Now()),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalPayment.UserDefinedID)\n}\n',
},
ruby: {
method: 'external_payments.release',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_payment = lithic.external_payments.release("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", effective_date: "2019-12-27")\n\nputs(external_payment)',
},
- typescript: {
- method: 'client.externalPayments.release',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalPayment = await client.externalPayments.release(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { effective_date: '2019-12-27' },\n);\n\nconsole.log(externalPayment.user_defined_id);",
+ 'curl https://api.lithic.com/v1/external_payments/$EXTERNAL_PAYMENT_TOKEN/release \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "effective_date": "2019-12-27"\n }\'',
},
},
},
@@ -9152,14 +9152,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## cancel\n\n`client.externalPayments.cancel(external_payment_token: string, effective_date: string, memo?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**post** `/v1/external_payments/{external_payment_token}/cancel`\n\nCancel external payment\n\n### Parameters\n\n- `external_payment_token: string`\n\n- `effective_date: string`\n\n- `memo?: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalPayment = await client.externalPayments.cancel('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { effective_date: '2019-12-27' });\n\nconsole.log(externalPayment);\n```",
perLanguage: {
- go: {
- method: 'client.ExternalPayments.Cancel',
+ typescript: {
+ method: 'client.externalPayments.cancel',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalPayment, err := client.ExternalPayments.Cancel(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalPaymentCancelParams{\n\t\t\tEffectiveDate: lithic.F(time.Now()),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalPayment.UserDefinedID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalPayment = await client.externalPayments.cancel(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { effective_date: '2019-12-27' },\n);\n\nconsole.log(externalPayment.user_defined_id);",
},
- http: {
+ python: {
+ method: 'external_payments.cancel',
example:
- 'curl https://api.lithic.com/v1/external_payments/$EXTERNAL_PAYMENT_TOKEN/cancel \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "effective_date": "2019-12-27"\n }\'',
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_payment = client.external_payments.cancel(\n external_payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n effective_date=date.fromisoformat("2019-12-27"),\n)\nprint(external_payment.user_defined_id)',
},
java: {
method: 'externalPayments().cancel',
@@ -9171,20 +9172,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalPayment\nimport com.lithic.api.models.ExternalPaymentCancelParams\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ExternalPaymentCancelParams = ExternalPaymentCancelParams.builder()\n .externalPaymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build()\n val externalPayment: ExternalPayment = client.externalPayments().cancel(params)\n}',
},
- python: {
- method: 'external_payments.cancel',
+ go: {
+ method: 'client.ExternalPayments.Cancel',
example:
- 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_payment = client.external_payments.cancel(\n external_payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n effective_date=date.fromisoformat("2019-12-27"),\n)\nprint(external_payment.user_defined_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalPayment, err := client.ExternalPayments.Cancel(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalPaymentCancelParams{\n\t\t\tEffectiveDate: lithic.F(time.Now()),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalPayment.UserDefinedID)\n}\n',
},
ruby: {
method: 'external_payments.cancel',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_payment = lithic.external_payments.cancel("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", effective_date: "2019-12-27")\n\nputs(external_payment)',
},
- typescript: {
- method: 'client.externalPayments.cancel',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalPayment = await client.externalPayments.cancel(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { effective_date: '2019-12-27' },\n);\n\nconsole.log(externalPayment.user_defined_id);",
+ 'curl https://api.lithic.com/v1/external_payments/$EXTERNAL_PAYMENT_TOKEN/cancel \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "effective_date": "2019-12-27"\n }\'',
},
},
},
@@ -9202,14 +9202,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## reverse\n\n`client.externalPayments.reverse(external_payment_token: string, effective_date: string, memo?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: object[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n**post** `/v1/external_payments/{external_payment_token}/reverse`\n\nReverse external payment\n\n### Parameters\n\n- `external_payment_token: string`\n\n- `effective_date: string`\n\n- `memo?: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]`\n - `family?: 'EXTERNAL_PAYMENT'`\n - `financial_account_token?: string`\n - `payment_type?: 'DEPOSIT' | 'WITHDRAWAL'`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst externalPayment = await client.externalPayments.reverse('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { effective_date: '2019-12-27' });\n\nconsole.log(externalPayment);\n```",
perLanguage: {
- go: {
- method: 'client.ExternalPayments.Reverse',
+ typescript: {
+ method: 'client.externalPayments.reverse',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalPayment, err := client.ExternalPayments.Reverse(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalPaymentReverseParams{\n\t\t\tEffectiveDate: lithic.F(time.Now()),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalPayment.UserDefinedID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalPayment = await client.externalPayments.reverse(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { effective_date: '2019-12-27' },\n);\n\nconsole.log(externalPayment.user_defined_id);",
},
- http: {
+ python: {
+ method: 'external_payments.reverse',
example:
- 'curl https://api.lithic.com/v1/external_payments/$EXTERNAL_PAYMENT_TOKEN/reverse \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "effective_date": "2019-12-27"\n }\'',
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_payment = client.external_payments.reverse(\n external_payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n effective_date=date.fromisoformat("2019-12-27"),\n)\nprint(external_payment.user_defined_id)',
},
java: {
method: 'externalPayments().reverse',
@@ -9221,20 +9222,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ExternalPayment\nimport com.lithic.api.models.ExternalPaymentReverseParams\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ExternalPaymentReverseParams = ExternalPaymentReverseParams.builder()\n .externalPaymentToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build()\n val externalPayment: ExternalPayment = client.externalPayments().reverse(params)\n}',
},
- python: {
- method: 'external_payments.reverse',
+ go: {
+ method: 'client.ExternalPayments.Reverse',
example:
- 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nexternal_payment = client.external_payments.reverse(\n external_payment_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n effective_date=date.fromisoformat("2019-12-27"),\n)\nprint(external_payment.user_defined_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\texternalPayment, err := client.ExternalPayments.Reverse(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ExternalPaymentReverseParams{\n\t\t\tEffectiveDate: lithic.F(time.Now()),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", externalPayment.UserDefinedID)\n}\n',
},
ruby: {
method: 'external_payments.reverse',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nexternal_payment = lithic.external_payments.reverse("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", effective_date: "2019-12-27")\n\nputs(external_payment)',
},
- typescript: {
- method: 'client.externalPayments.reverse',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst externalPayment = await client.externalPayments.reverse(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { effective_date: '2019-12-27' },\n);\n\nconsole.log(externalPayment.user_defined_id);",
+ 'curl https://api.lithic.com/v1/external_payments/$EXTERNAL_PAYMENT_TOKEN/reverse \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "effective_date": "2019-12-27"\n }\'',
},
},
},
@@ -9262,14 +9262,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.managementOperations.list(begin?: string, business_account_token?: string, category?: string, end?: string, ending_before?: string, financial_account_token?: string, page_size?: number, starting_after?: string, status?: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: object[]; external_resource?: external_resource; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: object; user_defined_id?: string; }`\n\n**get** `/v1/management_operations`\n\nList management operations\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `business_account_token?: string`\n\n- `category?: string`\n Management operation category to be returned.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `financial_account_token?: string`\n Globally unique identifier for the financial account. Accepted type dependent on the program's use case.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n Management operation status to be returned.\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `direction?: 'CREDIT' | 'DEBIT'`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `family?: 'MANAGEMENT_OPERATION'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const managementOperationTransaction of client.managementOperations.list()) {\n console.log(managementOperationTransaction);\n}\n```",
perLanguage: {
- go: {
- method: 'client.ManagementOperations.List',
+ typescript: {
+ method: 'client.managementOperations.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.ManagementOperations.List(context.TODO(), lithic.ManagementOperationListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const managementOperationTransaction of client.managementOperations.list()) {\n console.log(managementOperationTransaction.user_defined_id);\n}",
},
- http: {
+ python: {
+ method: 'management_operations.list',
example:
- 'curl https://api.lithic.com/v1/management_operations \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.management_operations.list()\npage = page.data[0]\nprint(page.user_defined_id)',
},
java: {
method: 'managementOperations().list',
@@ -9281,20 +9282,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ManagementOperationListPage\nimport com.lithic.api.models.ManagementOperationListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: ManagementOperationListPage = client.managementOperations().list()\n}',
},
- python: {
- method: 'management_operations.list',
+ go: {
+ method: 'client.ManagementOperations.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.management_operations.list()\npage = page.data[0]\nprint(page.user_defined_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.ManagementOperations.List(context.TODO(), lithic.ManagementOperationListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'management_operations.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.management_operations.list\n\nputs(page)',
},
- typescript: {
- method: 'client.managementOperations.list',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const managementOperationTransaction of client.managementOperations.list()) {\n console.log(managementOperationTransaction.user_defined_id);\n}",
+ 'curl https://api.lithic.com/v1/management_operations \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -9324,14 +9324,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## create\n\n`client.managementOperations.create(amount: number, category: string, direction: 'CREDIT' | 'DEBIT', effective_date: string, event_type: string, financial_account_token: string, token?: string, memo?: string, on_closed_account?: 'FAIL' | 'USE_SUSPENSE', subtype?: string, user_defined_id?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: object[]; external_resource?: external_resource; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: object; user_defined_id?: string; }`\n\n**post** `/v1/management_operations`\n\nCreate management operation\n\n### Parameters\n\n- `amount: number`\n\n- `category: string`\n\n- `direction: 'CREDIT' | 'DEBIT'`\n\n- `effective_date: string`\n\n- `event_type: string`\n\n- `financial_account_token: string`\n\n- `token?: string`\n Customer-provided token that will serve as an idempotency token. This token will become the transaction token.\n\n- `memo?: string`\n\n- `on_closed_account?: 'FAIL' | 'USE_SUSPENSE'`\n What to do if the financial account is closed when posting an operation\n\n- `subtype?: string`\n\n- `user_defined_id?: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `direction?: 'CREDIT' | 'DEBIT'`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `family?: 'MANAGEMENT_OPERATION'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst managementOperationTransaction = await client.managementOperations.create({\n amount: 1,\n category: 'MANAGEMENT_FEE',\n direction: 'CREDIT',\n effective_date: '2019-12-27',\n event_type: 'LOSS_WRITE_OFF',\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(managementOperationTransaction);\n```",
perLanguage: {
- go: {
- method: 'client.ManagementOperations.New',
+ typescript: {
+ method: 'client.managementOperations.create',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tmanagementOperationTransaction, err := client.ManagementOperations.New(context.TODO(), lithic.ManagementOperationNewParams{\n\t\tAmount: lithic.F(int64(1)),\n\t\tCategory: lithic.F(lithic.ManagementOperationNewParamsCategoryManagementFee),\n\t\tDirection: lithic.F(lithic.ManagementOperationNewParamsDirectionCredit),\n\t\tEffectiveDate: lithic.F(time.Now()),\n\t\tEventType: lithic.F(lithic.ManagementOperationNewParamsEventTypeLossWriteOff),\n\t\tFinancialAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", managementOperationTransaction.UserDefinedID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst managementOperationTransaction = await client.managementOperations.create({\n amount: 1,\n category: 'MANAGEMENT_FEE',\n direction: 'CREDIT',\n effective_date: '2019-12-27',\n event_type: 'LOSS_WRITE_OFF',\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(managementOperationTransaction.user_defined_id);",
},
- http: {
+ python: {
+ method: 'management_operations.create',
example:
- 'curl https://api.lithic.com/v1/management_operations \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 1,\n "category": "MANAGEMENT_FEE",\n "direction": "CREDIT",\n "effective_date": "2019-12-27",\n "event_type": "LOSS_WRITE_OFF",\n "financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n }\'',
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nmanagement_operation_transaction = client.management_operations.create(\n amount=1,\n category="MANAGEMENT_FEE",\n direction="CREDIT",\n effective_date=date.fromisoformat("2019-12-27"),\n event_type="LOSS_WRITE_OFF",\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(management_operation_transaction.user_defined_id)',
},
java: {
method: 'managementOperations().create',
@@ -9343,20 +9344,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ManagementOperationCreateParams\nimport com.lithic.api.models.ManagementOperationTransaction\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ManagementOperationCreateParams = ManagementOperationCreateParams.builder()\n .amount(1L)\n .category(ManagementOperationCreateParams.ManagementOperationCategory.MANAGEMENT_FEE)\n .direction(ManagementOperationCreateParams.ManagementOperationDirection.CREDIT)\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .eventType(ManagementOperationCreateParams.ManagementOperationEventType.LOSS_WRITE_OFF)\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build()\n val managementOperationTransaction: ManagementOperationTransaction = client.managementOperations().create(params)\n}',
},
- python: {
- method: 'management_operations.create',
+ go: {
+ method: 'client.ManagementOperations.New',
example:
- 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nmanagement_operation_transaction = client.management_operations.create(\n amount=1,\n category="MANAGEMENT_FEE",\n direction="CREDIT",\n effective_date=date.fromisoformat("2019-12-27"),\n event_type="LOSS_WRITE_OFF",\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(management_operation_transaction.user_defined_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tmanagementOperationTransaction, err := client.ManagementOperations.New(context.TODO(), lithic.ManagementOperationNewParams{\n\t\tAmount: lithic.F(int64(1)),\n\t\tCategory: lithic.F(lithic.ManagementOperationNewParamsCategoryManagementFee),\n\t\tDirection: lithic.F(lithic.ManagementOperationNewParamsDirectionCredit),\n\t\tEffectiveDate: lithic.F(time.Now()),\n\t\tEventType: lithic.F(lithic.ManagementOperationNewParamsEventTypeLossWriteOff),\n\t\tFinancialAccountToken: lithic.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", managementOperationTransaction.UserDefinedID)\n}\n',
},
ruby: {
method: 'management_operations.create',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nmanagement_operation_transaction = lithic.management_operations.create(\n amount: 1,\n category: :MANAGEMENT_FEE,\n direction: :CREDIT,\n effective_date: "2019-12-27",\n event_type: :LOSS_WRITE_OFF,\n financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n)\n\nputs(management_operation_transaction)',
},
- typescript: {
- method: 'client.managementOperations.create',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst managementOperationTransaction = await client.managementOperations.create({\n amount: 1,\n category: 'MANAGEMENT_FEE',\n direction: 'CREDIT',\n effective_date: '2019-12-27',\n event_type: 'LOSS_WRITE_OFF',\n financial_account_token: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(managementOperationTransaction.user_defined_id);",
+ 'curl https://api.lithic.com/v1/management_operations \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 1,\n "category": "MANAGEMENT_FEE",\n "direction": "CREDIT",\n "effective_date": "2019-12-27",\n "event_type": "LOSS_WRITE_OFF",\n "financial_account_token": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n }\'',
},
},
},
@@ -9374,14 +9374,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.managementOperations.retrieve(management_operation_token: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: object[]; external_resource?: external_resource; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: object; user_defined_id?: string; }`\n\n**get** `/v1/management_operations/{management_operation_token}`\n\nGet management operation\n\n### Parameters\n\n- `management_operation_token: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `direction?: 'CREDIT' | 'DEBIT'`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `family?: 'MANAGEMENT_OPERATION'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst managementOperationTransaction = await client.managementOperations.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(managementOperationTransaction);\n```",
perLanguage: {
- go: {
- method: 'client.ManagementOperations.Get',
+ typescript: {
+ method: 'client.managementOperations.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tmanagementOperationTransaction, err := client.ManagementOperations.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", managementOperationTransaction.UserDefinedID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst managementOperationTransaction = await client.managementOperations.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(managementOperationTransaction.user_defined_id);",
},
- http: {
+ python: {
+ method: 'management_operations.retrieve',
example:
- 'curl https://api.lithic.com/v1/management_operations/$MANAGEMENT_OPERATION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nmanagement_operation_transaction = client.management_operations.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(management_operation_transaction.user_defined_id)',
},
java: {
method: 'managementOperations().retrieve',
@@ -9393,20 +9394,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ManagementOperationRetrieveParams\nimport com.lithic.api.models.ManagementOperationTransaction\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val managementOperationTransaction: ManagementOperationTransaction = client.managementOperations().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'management_operations.retrieve',
+ go: {
+ method: 'client.ManagementOperations.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nmanagement_operation_transaction = client.management_operations.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(management_operation_transaction.user_defined_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tmanagementOperationTransaction, err := client.ManagementOperations.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", managementOperationTransaction.UserDefinedID)\n}\n',
},
ruby: {
method: 'management_operations.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nmanagement_operation_transaction = lithic.management_operations.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(management_operation_transaction)',
},
- typescript: {
- method: 'client.managementOperations.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst managementOperationTransaction = await client.managementOperations.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(managementOperationTransaction.user_defined_id);",
+ 'curl https://api.lithic.com/v1/management_operations/$MANAGEMENT_OPERATION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -9424,14 +9424,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## reverse\n\n`client.managementOperations.reverse(management_operation_token: string, effective_date: string, memo?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: object[]; external_resource?: external_resource; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: object; user_defined_id?: string; }`\n\n**post** `/v1/management_operations/{management_operation_token}/reverse`\n\nReverse a management operation\n\n### Parameters\n\n- `management_operation_token: string`\n\n- `effective_date: string`\n\n- `memo?: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: { external_resource_token: string; external_resource_type: external_resource_type; external_resource_sub_token?: string; }; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; }`\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `category?: string`\n - `currency?: string`\n - `direction?: 'CREDIT' | 'DEBIT'`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]`\n - `external_resource?: { external_resource_token: string; external_resource_type: 'STATEMENT' | 'COLLECTION' | 'DISPUTE' | 'UNKNOWN'; external_resource_sub_token?: string; }`\n - `family?: 'MANAGEMENT_OPERATION'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `settled_amount?: number`\n - `transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst managementOperationTransaction = await client.managementOperations.reverse('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { effective_date: '2019-12-27' });\n\nconsole.log(managementOperationTransaction);\n```",
perLanguage: {
- go: {
- method: 'client.ManagementOperations.Reverse',
+ typescript: {
+ method: 'client.managementOperations.reverse',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tmanagementOperationTransaction, err := client.ManagementOperations.Reverse(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ManagementOperationReverseParams{\n\t\t\tEffectiveDate: lithic.F(time.Now()),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", managementOperationTransaction.UserDefinedID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst managementOperationTransaction = await client.managementOperations.reverse(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { effective_date: '2019-12-27' },\n);\n\nconsole.log(managementOperationTransaction.user_defined_id);",
},
- http: {
+ python: {
+ method: 'management_operations.reverse',
example:
- 'curl https://api.lithic.com/v1/management_operations/$MANAGEMENT_OPERATION_TOKEN/reverse \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "effective_date": "2019-12-27"\n }\'',
+ 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nmanagement_operation_transaction = client.management_operations.reverse(\n management_operation_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n effective_date=date.fromisoformat("2019-12-27"),\n)\nprint(management_operation_transaction.user_defined_id)',
},
java: {
method: 'managementOperations().reverse',
@@ -9443,20 +9444,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.ManagementOperationReverseParams\nimport com.lithic.api.models.ManagementOperationTransaction\nimport java.time.LocalDate\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: ManagementOperationReverseParams = ManagementOperationReverseParams.builder()\n .managementOperationToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .effectiveDate(LocalDate.parse("2019-12-27"))\n .build()\n val managementOperationTransaction: ManagementOperationTransaction = client.managementOperations().reverse(params)\n}',
},
- python: {
- method: 'management_operations.reverse',
+ go: {
+ method: 'client.ManagementOperations.Reverse',
example:
- 'import os\nfrom datetime import date\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nmanagement_operation_transaction = client.management_operations.reverse(\n management_operation_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n effective_date=date.fromisoformat("2019-12-27"),\n)\nprint(management_operation_transaction.user_defined_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tmanagementOperationTransaction, err := client.ManagementOperations.Reverse(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.ManagementOperationReverseParams{\n\t\t\tEffectiveDate: lithic.F(time.Now()),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", managementOperationTransaction.UserDefinedID)\n}\n',
},
ruby: {
method: 'management_operations.reverse',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nmanagement_operation_transaction = lithic.management_operations.reverse("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", effective_date: "2019-12-27")\n\nputs(management_operation_transaction)',
},
- typescript: {
- method: 'client.managementOperations.reverse',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst managementOperationTransaction = await client.managementOperations.reverse(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { effective_date: '2019-12-27' },\n);\n\nconsole.log(managementOperationTransaction.user_defined_id);",
+ 'curl https://api.lithic.com/v1/management_operations/$MANAGEMENT_OPERATION_TOKEN/reverse \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "effective_date": "2019-12-27"\n }\'',
},
},
},
@@ -9474,13 +9474,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.fundingEvents.list(ending_before?: string, page_size?: number, starting_after?: string): { token: string; collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'; collection_tokens: string[]; created: string; high_watermark: string; network_settlement_summary: object[]; previous_high_watermark: string; updated: string; }`\n\n**get** `/v1/funding_events`\n\nGet all funding events for program\n\n### Parameters\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'; collection_tokens: string[]; created: string; high_watermark: string; network_settlement_summary: { network_settlement_date: string; settled_gross_amount: number; }[]; previous_high_watermark: string; updated: string; }`\n\n - `token: string`\n - `collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'`\n - `collection_tokens: string[]`\n - `created: string`\n - `high_watermark: string`\n - `network_settlement_summary: { network_settlement_date: string; settled_gross_amount: number; }[]`\n - `previous_high_watermark: string`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const fundingEvent of client.fundingEvents.list()) {\n console.log(fundingEvent);\n}\n```",
perLanguage: {
- go: {
- method: 'client.FundingEvents.List',
+ typescript: {
+ method: 'client.fundingEvents.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FundingEvents.List(context.TODO(), lithic.FundingEventListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const fundingEvent of client.fundingEvents.list()) {\n console.log(fundingEvent.token);\n}",
},
- http: {
- example: 'curl https://api.lithic.com/v1/funding_events \\\n -H "Authorization: $LITHIC_API_KEY"',
+ python: {
+ method: 'funding_events.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.funding_events.list()\npage = page.data[0]\nprint(page.token)',
},
java: {
method: 'fundingEvents().list',
@@ -9492,20 +9494,18 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FundingEventListPage\nimport com.lithic.api.models.FundingEventListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: FundingEventListPage = client.fundingEvents().list()\n}',
},
- python: {
- method: 'funding_events.list',
+ go: {
+ method: 'client.FundingEvents.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.funding_events.list()\npage = page.data[0]\nprint(page.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.FundingEvents.List(context.TODO(), lithic.FundingEventListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'funding_events.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.funding_events.list\n\nputs(page)',
},
- typescript: {
- method: 'client.fundingEvents.list',
- example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const fundingEvent of client.fundingEvents.list()) {\n console.log(fundingEvent.token);\n}",
+ http: {
+ example: 'curl https://api.lithic.com/v1/funding_events \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -9523,14 +9523,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.fundingEvents.retrieve(funding_event_token: string): { token: string; collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'; collection_tokens: string[]; created: string; high_watermark: string; network_settlement_summary: object[]; previous_high_watermark: string; updated: string; }`\n\n**get** `/v1/funding_events/{funding_event_token}`\n\nGet funding event for program by id\n\n### Parameters\n\n- `funding_event_token: string`\n\n### Returns\n\n- `{ token: string; collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'; collection_tokens: string[]; created: string; high_watermark: string; network_settlement_summary: { network_settlement_date: string; settled_gross_amount: number; }[]; previous_high_watermark: string; updated: string; }`\n\n - `token: string`\n - `collection_resource_type: 'BOOK_TRANSFER' | 'PAYMENT'`\n - `collection_tokens: string[]`\n - `created: string`\n - `high_watermark: string`\n - `network_settlement_summary: { network_settlement_date: string; settled_gross_amount: number; }[]`\n - `previous_high_watermark: string`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst fundingEvent = await client.fundingEvents.retrieve('funding_event_token');\n\nconsole.log(fundingEvent);\n```",
perLanguage: {
- go: {
- method: 'client.FundingEvents.Get',
+ typescript: {
+ method: 'client.fundingEvents.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfundingEvent, err := client.FundingEvents.Get(context.TODO(), "funding_event_token")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", fundingEvent.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst fundingEvent = await client.fundingEvents.retrieve('funding_event_token');\n\nconsole.log(fundingEvent.token);",
},
- http: {
+ python: {
+ method: 'funding_events.retrieve',
example:
- 'curl https://api.lithic.com/v1/funding_events/$FUNDING_EVENT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfunding_event = client.funding_events.retrieve(\n "funding_event_token",\n)\nprint(funding_event.token)',
},
java: {
method: 'fundingEvents().retrieve',
@@ -9542,20 +9543,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FundingEvent\nimport com.lithic.api.models.FundingEventRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val fundingEvent: FundingEvent = client.fundingEvents().retrieve("funding_event_token")\n}',
},
- python: {
- method: 'funding_events.retrieve',
+ go: {
+ method: 'client.FundingEvents.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nfunding_event = client.funding_events.retrieve(\n "funding_event_token",\n)\nprint(funding_event.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tfundingEvent, err := client.FundingEvents.Get(context.TODO(), "funding_event_token")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", fundingEvent.Token)\n}\n',
},
ruby: {
method: 'funding_events.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nfunding_event = lithic.funding_events.retrieve("funding_event_token")\n\nputs(funding_event)',
},
- typescript: {
- method: 'client.fundingEvents.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst fundingEvent = await client.fundingEvents.retrieve('funding_event_token');\n\nconsole.log(fundingEvent.token);",
+ 'curl https://api.lithic.com/v1/funding_events/$FUNDING_EVENT_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -9572,14 +9572,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve_details\n\n`client.fundingEvents.retrieveDetails(funding_event_token: string): { token: string; settlement_details_url: string; settlement_summary_url: string; }`\n\n**get** `/v1/funding_events/{funding_event_token}/details`\n\nGet funding event details by id\n\n### Parameters\n\n- `funding_event_token: string`\n\n### Returns\n\n- `{ token: string; settlement_details_url: string; settlement_summary_url: string; }`\n\n - `token: string`\n - `settlement_details_url: string`\n - `settlement_summary_url: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.fundingEvents.retrieveDetails('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.FundingEvents.GetDetails',
+ typescript: {
+ method: 'client.fundingEvents.retrieveDetails',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.FundingEvents.GetDetails(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Token)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.fundingEvents.retrieveDetails('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response.token);",
},
- http: {
+ python: {
+ method: 'funding_events.retrieve_details',
example:
- 'curl https://api.lithic.com/v1/funding_events/$FUNDING_EVENT_TOKEN/details \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.funding_events.retrieve_details(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.token)',
},
java: {
method: 'fundingEvents().retrieveDetails',
@@ -9591,20 +9592,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FundingEventRetrieveDetailsParams\nimport com.lithic.api.models.FundingEventRetrieveDetailsResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: FundingEventRetrieveDetailsResponse = client.fundingEvents().retrieveDetails("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'funding_events.retrieve_details',
+ go: {
+ method: 'client.FundingEvents.GetDetails',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.funding_events.retrieve_details(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.token)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.FundingEvents.GetDetails(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Token)\n}\n',
},
ruby: {
method: 'funding_events.retrieve_details',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.funding_events.retrieve_details("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(response)',
},
- typescript: {
- method: 'client.fundingEvents.retrieveDetails',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.fundingEvents.retrieveDetails('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response.token);",
+ 'curl https://api.lithic.com/v1/funding_events/$FUNDING_EVENT_TOKEN/details \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -9623,14 +9623,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.fraud.transactions.retrieve(transaction_token: string): { fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT' | 'NO_REPORTED_FRAUD'; transaction_token: string; comment?: string; created_at?: string; fraud_type?: string; updated_at?: string; }`\n\n**get** `/v1/fraud/transactions/{transaction_token}`\n\nRetrieve a fraud report for a specific transaction identified by its unique transaction token.\n\n\n### Parameters\n\n- `transaction_token: string`\n\n### Returns\n\n- `{ fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT' | 'NO_REPORTED_FRAUD'; transaction_token: string; comment?: string; created_at?: string; fraud_type?: string; updated_at?: string; }`\n\n - `fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT' | 'NO_REPORTED_FRAUD'`\n - `transaction_token: string`\n - `comment?: string`\n - `created_at?: string`\n - `fraud_type?: string`\n - `updated_at?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst transaction = await client.fraud.transactions.retrieve('00000000-0000-0000-0000-000000000000');\n\nconsole.log(transaction);\n```",
perLanguage: {
- go: {
- method: 'client.Fraud.Transactions.Get',
+ typescript: {
+ method: 'client.fraud.transactions.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\ttransaction, err := client.Fraud.Transactions.Get(context.TODO(), "00000000-0000-0000-0000-000000000000")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", transaction.FraudStatus)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst transaction = await client.fraud.transactions.retrieve(\n '00000000-0000-0000-0000-000000000000',\n);\n\nconsole.log(transaction.fraud_status);",
},
- http: {
+ python: {
+ method: 'fraud.transactions.retrieve',
example:
- 'curl https://api.lithic.com/v1/fraud/transactions/$TRANSACTION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ntransaction = client.fraud.transactions.retrieve(\n "00000000-0000-0000-0000-000000000000",\n)\nprint(transaction.fraud_status)',
},
java: {
method: 'fraud().transactions().retrieve',
@@ -9642,20 +9643,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FraudTransactionRetrieveParams\nimport com.lithic.api.models.TransactionRetrieveResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val transaction: TransactionRetrieveResponse = client.fraud().transactions().retrieve("00000000-0000-0000-0000-000000000000")\n}',
},
- python: {
- method: 'fraud.transactions.retrieve',
+ go: {
+ method: 'client.Fraud.Transactions.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\ntransaction = client.fraud.transactions.retrieve(\n "00000000-0000-0000-0000-000000000000",\n)\nprint(transaction.fraud_status)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\ttransaction, err := client.Fraud.Transactions.Get(context.TODO(), "00000000-0000-0000-0000-000000000000")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", transaction.FraudStatus)\n}\n',
},
ruby: {
method: 'fraud.transactions.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\ntransaction = lithic.fraud.transactions.retrieve("00000000-0000-0000-0000-000000000000")\n\nputs(transaction)',
},
- typescript: {
- method: 'client.fraud.transactions.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst transaction = await client.fraud.transactions.retrieve(\n '00000000-0000-0000-0000-000000000000',\n);\n\nconsole.log(transaction.fraud_status);",
+ 'curl https://api.lithic.com/v1/fraud/transactions/$TRANSACTION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -9679,14 +9679,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## report\n\n`client.fraud.transactions.report(transaction_token: string, fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT', comment?: string, fraud_type?: string): { fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT' | 'NO_REPORTED_FRAUD'; transaction_token: string; comment?: string; created_at?: string; fraud_type?: string; updated_at?: string; }`\n\n**post** `/v1/fraud/transactions/{transaction_token}`\n\nReport fraud for a specific transaction token by providing details such as fraud type, fraud status, and any additional comments.\n\n\n### Parameters\n\n- `transaction_token: string`\n\n- `fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT'`\n The fraud status of the transaction, string (enum) supporting the following values:\n\n - `SUSPECTED_FRAUD`: The transaction is suspected to be fraudulent, but this hasn’t been confirmed.\n - `FRAUDULENT`: The transaction is confirmed to be fraudulent. A transaction may immediately be moved into this state, or be graduated into this state from the `SUSPECTED_FRAUD` state.\n - `NOT_FRAUDULENT`: The transaction is (explicitly) marked as not fraudulent. A transaction may immediately be moved into this state, or be graduated into this state from the `SUSPECTED_FRAUD` state.\n\n- `comment?: string`\n Optional field providing additional information or context about why the transaction is considered fraudulent.\n\n- `fraud_type?: string`\n Specifies the type or category of fraud that the transaction is suspected or confirmed to involve, string (enum) supporting the following values:\n\n - `FIRST_PARTY_FRAUD`: First-party fraud occurs when a legitimate account or cardholder intentionally misuses financial services for personal gain. This includes actions such as disputing legitimate transactions to obtain a refund, abusing return policies, or defaulting on credit obligations without intent to repay.\n - `ACCOUNT_TAKEOVER`: Account takeover fraud occurs when a fraudster gains unauthorized access to an existing account, modifies account settings, and carries out fraudulent transactions.\n - `CARD_COMPROMISED`: Card compromised fraud occurs when a fraudster gains access to card details without taking over the account, such as through physical card theft, cloning, or online data breaches.\n - `IDENTITY_THEFT`: Identity theft fraud occurs when a fraudster uses stolen personal information, such as Social Security numbers or addresses, to open accounts, apply for loans, or conduct financial transactions in someone's name.\n - `CARDHOLDER_MANIPULATION`: This type of fraud occurs when a fraudster manipulates or coerces a legitimate cardholder into unauthorized transactions, often through social engineering tactics.\n\n### Returns\n\n- `{ fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT' | 'NO_REPORTED_FRAUD'; transaction_token: string; comment?: string; created_at?: string; fraud_type?: string; updated_at?: string; }`\n\n - `fraud_status: 'SUSPECTED_FRAUD' | 'FRAUDULENT' | 'NOT_FRAUDULENT' | 'NO_REPORTED_FRAUD'`\n - `transaction_token: string`\n - `comment?: string`\n - `created_at?: string`\n - `fraud_type?: string`\n - `updated_at?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.fraud.transactions.report('00000000-0000-0000-0000-000000000000', { fraud_status: 'SUSPECTED_FRAUD' });\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.Fraud.Transactions.Report',
+ typescript: {
+ method: 'client.fraud.transactions.report',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Fraud.Transactions.Report(\n\t\tcontext.TODO(),\n\t\t"00000000-0000-0000-0000-000000000000",\n\t\tlithic.FraudTransactionReportParams{\n\t\t\tFraudStatus: lithic.F(lithic.FraudTransactionReportParamsFraudStatusSuspectedFraud),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.FraudStatus)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.fraud.transactions.report('00000000-0000-0000-0000-000000000000', {\n fraud_status: 'SUSPECTED_FRAUD',\n});\n\nconsole.log(response.fraud_status);",
},
- http: {
+ python: {
+ method: 'fraud.transactions.report',
example:
- 'curl https://api.lithic.com/v1/fraud/transactions/$TRANSACTION_TOKEN \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "fraud_status": "SUSPECTED_FRAUD"\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.fraud.transactions.report(\n transaction_token="00000000-0000-0000-0000-000000000000",\n fraud_status="SUSPECTED_FRAUD",\n)\nprint(response.fraud_status)',
},
java: {
method: 'fraud().transactions().report',
@@ -9698,20 +9699,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.FraudTransactionReportParams\nimport com.lithic.api.models.TransactionReportResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: FraudTransactionReportParams = FraudTransactionReportParams.builder()\n .transactionToken("00000000-0000-0000-0000-000000000000")\n .fraudStatus(FraudTransactionReportParams.FraudStatus.SUSPECTED_FRAUD)\n .build()\n val response: TransactionReportResponse = client.fraud().transactions().report(params)\n}',
},
- python: {
- method: 'fraud.transactions.report',
+ go: {
+ method: 'client.Fraud.Transactions.Report',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.fraud.transactions.report(\n transaction_token="00000000-0000-0000-0000-000000000000",\n fraud_status="SUSPECTED_FRAUD",\n)\nprint(response.fraud_status)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.Fraud.Transactions.Report(\n\t\tcontext.TODO(),\n\t\t"00000000-0000-0000-0000-000000000000",\n\t\tlithic.FraudTransactionReportParams{\n\t\t\tFraudStatus: lithic.F(lithic.FraudTransactionReportParamsFraudStatusSuspectedFraud),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.FraudStatus)\n}\n',
},
ruby: {
method: 'fraud.transactions.report',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.fraud.transactions.report("00000000-0000-0000-0000-000000000000", fraud_status: :SUSPECTED_FRAUD)\n\nputs(response)',
},
- typescript: {
- method: 'client.fraud.transactions.report',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.fraud.transactions.report('00000000-0000-0000-0000-000000000000', {\n fraud_status: 'SUSPECTED_FRAUD',\n});\n\nconsole.log(response.fraud_status);",
+ 'curl https://api.lithic.com/v1/fraud/transactions/$TRANSACTION_TOKEN \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "fraud_status": "SUSPECTED_FRAUD"\n }\'',
},
},
},
@@ -9729,14 +9729,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.networkPrograms.list(begin?: string, end?: string, page_size?: number): { token: string; default_product_code: string; name: string; registered_program_identification_number: string; }`\n\n**get** `/v1/network_programs`\n\nList network programs.\n\n### Parameters\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `page_size?: number`\n Page size (for pagination).\n\n### Returns\n\n- `{ token: string; default_product_code: string; name: string; registered_program_identification_number: string; }`\n\n - `token: string`\n - `default_product_code: string`\n - `name: string`\n - `registered_program_identification_number: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const networkProgram of client.networkPrograms.list()) {\n console.log(networkProgram);\n}\n```",
perLanguage: {
- go: {
- method: 'client.NetworkPrograms.List',
+ typescript: {
+ method: 'client.networkPrograms.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.NetworkPrograms.List(context.TODO(), lithic.NetworkProgramListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const networkProgram of client.networkPrograms.list()) {\n console.log(networkProgram.registered_program_identification_number);\n}",
},
- http: {
+ python: {
+ method: 'network_programs.list',
example:
- 'curl https://api.lithic.com/v1/network_programs \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.network_programs.list()\npage = page.data[0]\nprint(page.registered_program_identification_number)',
},
java: {
method: 'networkPrograms().list',
@@ -9748,20 +9749,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.NetworkProgramListPage\nimport com.lithic.api.models.NetworkProgramListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: NetworkProgramListPage = client.networkPrograms().list()\n}',
},
- python: {
- method: 'network_programs.list',
+ go: {
+ method: 'client.NetworkPrograms.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.network_programs.list()\npage = page.data[0]\nprint(page.registered_program_identification_number)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.NetworkPrograms.List(context.TODO(), lithic.NetworkProgramListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'network_programs.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.network_programs.list\n\nputs(page)',
},
- typescript: {
- method: 'client.networkPrograms.list',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const networkProgram of client.networkPrograms.list()) {\n console.log(networkProgram.registered_program_identification_number);\n}",
+ 'curl https://api.lithic.com/v1/network_programs \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -9779,14 +9779,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.networkPrograms.retrieve(network_program_token: string): { token: string; default_product_code: string; name: string; registered_program_identification_number: string; }`\n\n**get** `/v1/network_programs/{network_program_token}`\n\nGet network program.\n\n### Parameters\n\n- `network_program_token: string`\n\n### Returns\n\n- `{ token: string; default_product_code: string; name: string; registered_program_identification_number: string; }`\n\n - `token: string`\n - `default_product_code: string`\n - `name: string`\n - `registered_program_identification_number: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst networkProgram = await client.networkPrograms.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(networkProgram);\n```",
perLanguage: {
- go: {
- method: 'client.NetworkPrograms.Get',
+ typescript: {
+ method: 'client.networkPrograms.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tnetworkProgram, err := client.NetworkPrograms.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", networkProgram.RegisteredProgramIdentificationNumber)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst networkProgram = await client.networkPrograms.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(networkProgram.registered_program_identification_number);",
},
- http: {
+ python: {
+ method: 'network_programs.retrieve',
example:
- 'curl https://api.lithic.com/v1/network_programs/$NETWORK_PROGRAM_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nnetwork_program = client.network_programs.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(network_program.registered_program_identification_number)',
},
java: {
method: 'networkPrograms().retrieve',
@@ -9798,20 +9799,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.NetworkProgram\nimport com.lithic.api.models.NetworkProgramRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val networkProgram: NetworkProgram = client.networkPrograms().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'network_programs.retrieve',
+ go: {
+ method: 'client.NetworkPrograms.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nnetwork_program = client.network_programs.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(network_program.registered_program_identification_number)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tnetworkProgram, err := client.NetworkPrograms.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", networkProgram.RegisteredProgramIdentificationNumber)\n}\n',
},
ruby: {
method: 'network_programs.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nnetwork_program = lithic.network_programs.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(network_program)',
},
- typescript: {
- method: 'client.networkPrograms.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst networkProgram = await client.networkPrograms.retrieve(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(networkProgram.registered_program_identification_number);",
+ 'curl https://api.lithic.com/v1/network_programs/$NETWORK_PROGRAM_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -9837,14 +9837,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.holds.list(financial_account_token: string, begin?: string, end?: string, ending_before?: string, page_size?: number, starting_after?: string, status?: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED'): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: hold_event[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n\n**get** `/v1/financial_accounts/{financial_account_token}/holds`\n\nList holds for a financial account.\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED'`\n Hold status to filter by.\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n A hold transaction representing reserved funds on a financial account. Holds move funds from available to pending balance in anticipation of future payments. They can be resolved via settlement (linked to payment), manual release, or expiration.\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]`\n - `expiration_datetime?: string`\n - `family?: 'HOLD'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const hold of client.holds.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(hold);\n}\n```",
perLanguage: {
- go: {
- method: 'client.Holds.List',
+ typescript: {
+ method: 'client.holds.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Holds.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.HoldListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const hold of client.holds.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(hold.user_defined_id);\n}",
},
- http: {
+ python: {
+ method: 'holds.list',
example:
- 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/holds \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.holds.list(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.user_defined_id)',
},
java: {
method: 'holds().list',
@@ -9856,20 +9857,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.HoldListPage\nimport com.lithic.api.models.HoldListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: HoldListPage = client.holds().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'holds.list',
+ go: {
+ method: 'client.Holds.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.holds.list(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\npage = page.data[0]\nprint(page.user_defined_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.Holds.List(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.HoldListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'holds.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.holds.list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(page)',
},
- typescript: {
- method: 'client.holds.list',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const hold of client.holds.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e')) {\n console.log(hold.user_defined_id);\n}",
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/holds \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -9895,14 +9895,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## create\n\n`client.holds.create(financial_account_token: string, amount: number, token?: string, expiration_datetime?: string, memo?: string, user_defined_id?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: hold_event[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n\n**post** `/v1/financial_accounts/{financial_account_token}/holds`\n\nCreate a hold on a financial account. Holds reserve funds by moving them\nfrom available to pending balance. They can be resolved via settlement\n(linked to a payment or book transfer), voiding, or expiration.\n\n\n### Parameters\n\n- `financial_account_token: string`\n\n- `amount: number`\n Amount to hold in cents\n\n- `token?: string`\n Customer-provided token for idempotency. Becomes the hold token.\n\n- `expiration_datetime?: string`\n When the hold should auto-expire\n\n- `memo?: string`\n Reason for the hold\n\n- `user_defined_id?: string`\n User-provided identifier for the hold\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n A hold transaction representing reserved funds on a financial account. Holds move funds from available to pending balance in anticipation of future payments. They can be resolved via settlement (linked to payment), manual release, or expiration.\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]`\n - `expiration_datetime?: string`\n - `family?: 'HOLD'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst hold = await client.holds.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { amount: 1 });\n\nconsole.log(hold);\n```",
perLanguage: {
- go: {
- method: 'client.Holds.New',
+ typescript: {
+ method: 'client.holds.create',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\thold, err := client.Holds.New(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.HoldNewParams{\n\t\t\tAmount: lithic.F(int64(1)),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", hold.UserDefinedID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst hold = await client.holds.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { amount: 1 });\n\nconsole.log(hold.user_defined_id);",
},
- http: {
+ python: {
+ method: 'holds.create',
example:
- 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/holds \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 1\n }\'',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nhold = client.holds.create(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n amount=1,\n)\nprint(hold.user_defined_id)',
},
java: {
method: 'holds().create',
@@ -9914,20 +9915,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Hold\nimport com.lithic.api.models.HoldCreateParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val params: HoldCreateParams = HoldCreateParams.builder()\n .financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .amount(1L)\n .build()\n val hold: Hold = client.holds().create(params)\n}',
},
- python: {
- method: 'holds.create',
+ go: {
+ method: 'client.Holds.New',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nhold = client.holds.create(\n financial_account_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n amount=1,\n)\nprint(hold.user_defined_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\thold, err := client.Holds.New(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.HoldNewParams{\n\t\t\tAmount: lithic.F(int64(1)),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", hold.UserDefinedID)\n}\n',
},
ruby: {
method: 'holds.create',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nhold = lithic.holds.create("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", amount: 1)\n\nputs(hold)',
},
- typescript: {
- method: 'client.holds.create',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst hold = await client.holds.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { amount: 1 });\n\nconsole.log(hold.user_defined_id);",
+ 'curl https://api.lithic.com/v1/financial_accounts/$FINANCIAL_ACCOUNT_TOKEN/holds \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: $LITHIC_API_KEY" \\\n -d \'{\n "amount": 1\n }\'',
},
},
},
@@ -9945,14 +9945,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve\n\n`client.holds.retrieve(hold_token: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: hold_event[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n\n**get** `/v1/holds/{hold_token}`\n\nGet hold by token.\n\n### Parameters\n\n- `hold_token: string`\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n A hold transaction representing reserved funds on a financial account. Holds move funds from available to pending balance in anticipation of future payments. They can be resolved via settlement (linked to payment), manual release, or expiration.\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]`\n - `expiration_datetime?: string`\n - `family?: 'HOLD'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst hold = await client.holds.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(hold);\n```",
perLanguage: {
- go: {
- method: 'client.Holds.Get',
+ typescript: {
+ method: 'client.holds.retrieve',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\thold, err := client.Holds.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", hold.UserDefinedID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst hold = await client.holds.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(hold.user_defined_id);",
},
- http: {
+ python: {
+ method: 'holds.retrieve',
example:
- 'curl https://api.lithic.com/v1/holds/$HOLD_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nhold = client.holds.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(hold.user_defined_id)',
},
java: {
method: 'holds().retrieve',
@@ -9964,20 +9965,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Hold\nimport com.lithic.api.models.HoldRetrieveParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val hold: Hold = client.holds().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'holds.retrieve',
+ go: {
+ method: 'client.Holds.Get',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nhold = client.holds.retrieve(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(hold.user_defined_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\thold, err := client.Holds.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", hold.UserDefinedID)\n}\n',
},
ruby: {
method: 'holds.retrieve',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nhold = lithic.holds.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(hold)',
},
- typescript: {
- method: 'client.holds.retrieve',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst hold = await client.holds.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(hold.user_defined_id);",
+ 'curl https://api.lithic.com/v1/holds/$HOLD_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -9996,14 +9996,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## void\n\n`client.holds.void(hold_token: string, memo?: string): { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: hold_event[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n\n**post** `/v1/holds/{hold_token}/void`\n\nVoid an active hold. This returns the held funds from pending back to\navailable balance. Only holds in PENDING status can be voided.\n\n\n### Parameters\n\n- `hold_token: string`\n\n- `memo?: string`\n Reason for voiding the hold\n\n### Returns\n\n- `{ token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n A hold transaction representing reserved funds on a financial account. Holds move funds from available to pending balance in anticipation of future payments. They can be resolved via settlement (linked to payment), manual release, or expiration.\n\n - `token: string`\n - `created: string`\n - `status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'`\n - `updated: string`\n - `currency?: string`\n - `events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; memo: string; result: 'APPROVED' | 'DECLINED'; settling_transaction_token: string; type: 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED'; }[]`\n - `expiration_datetime?: string`\n - `family?: 'HOLD'`\n - `financial_account_token?: string`\n - `pending_amount?: number`\n - `result?: 'APPROVED' | 'DECLINED'`\n - `user_defined_id?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst hold = await client.holds.void('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(hold);\n```",
perLanguage: {
- go: {
- method: 'client.Holds.Void',
+ typescript: {
+ method: 'client.holds.void',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\thold, err := client.Holds.Void(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.HoldVoidParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", hold.UserDefinedID)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst hold = await client.holds.void('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(hold.user_defined_id);",
},
- http: {
+ python: {
+ method: 'holds.void',
example:
- "curl https://api.lithic.com/v1/holds/$HOLD_TOKEN/void \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nhold = client.holds.void(\n hold_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(hold.user_defined_id)',
},
java: {
method: 'holds().void_',
@@ -10015,20 +10016,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.Hold\nimport com.lithic.api.models.HoldVoidParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val hold: Hold = client.holds().void("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'holds.void',
+ go: {
+ method: 'client.Holds.Void',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nhold = client.holds.void(\n hold_token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(hold.user_defined_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\thold, err := client.Holds.Void(\n\t\tcontext.TODO(),\n\t\t"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n\t\tlithic.HoldVoidParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", hold.UserDefinedID)\n}\n',
},
ruby: {
method: 'holds.void',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nhold = lithic.holds.void("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(hold)',
},
- typescript: {
- method: 'client.holds.void',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst hold = await client.holds.void('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(hold.user_defined_id);",
+ "curl https://api.lithic.com/v1/holds/$HOLD_TOKEN/void \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: $LITHIC_API_KEY\" \\\n -d '{}'",
},
},
},
@@ -10058,14 +10058,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.accountActivity.list(account_token?: string, begin?: string, business_account_token?: string, category?: string, end?: string, ending_before?: string, financial_account_token?: string, page_size?: number, result?: 'APPROVED' | 'DECLINED', starting_after?: string, status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'REVERSED' | 'SETTLED' | 'VOIDED'): { token: string; category: string; created: string; currency: string; descriptor: string; events: financial_event[]; family: 'INTERNAL'; financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; } | object | object | object | object | object | object`\n\n**get** `/v1/account_activity`\n\nRetrieve a list of transactions across all public accounts.\n\n### Parameters\n\n- `account_token?: string`\n Filter by account token\n\n- `begin?: string`\n Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `business_account_token?: string`\n Filter by business account token\n\n- `category?: string`\n Filter by transaction category\n\n- `end?: string`\n Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `financial_account_token?: string`\n Filter by financial account token\n\n- `page_size?: number`\n Page size (for pagination).\n\n- `result?: 'APPROVED' | 'DECLINED'`\n Filter by transaction result\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n- `status?: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'RETURNED' | 'REVERSED' | 'SETTLED' | 'VOIDED'`\n Filter by transaction status\n\n### Returns\n\n- `{ token: string; category: string; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; family: 'INTERNAL'; financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; } | { token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: object; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; } | { token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: { cardholder: object; hold: object; merchant: object; settlement: object; }; authorization_amount: number; authorization_code: string; avs: { address: string; zipcode: string; }; card_token: string; cardholder_authentication: object; created: string; financial_account_token: string; merchant: object; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: { entry_mode: object; terminal: object; }; result: string; service_location: { city: string; country: string; postal_code: string; state: string; street_address: string; }; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: object; updated: string; events?: { token: string; amount: number; amounts: object; created: string; detailed_results: string[]; effective_polarity: 'CREDIT' | 'DEBIT'; network_info: object; result: string; rule_results: object[]; type: string; account_type?: 'CHECKING' | 'SAVINGS'; network_specific_data?: object; }[]; } | { token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: wire_party_details; debtor?: wire_party_details; message_id?: string; remittance_information?: string; }; pending_amount: number; related_account_tokens: { account_token: string; business_account_token: string; }; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; } | { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; } | { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: object; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; } | { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: object[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n Response containing multiple transaction types. The `family` field determines which transaction type is returned: INTERNAL returns FinancialTransaction, TRANSFER returns BookTransferTransaction, CARD returns CardTransaction, PAYMENT returns PaymentTransaction, EXTERNAL_PAYMENT returns ExternalPaymentResponse, MANAGEMENT_OPERATION returns ManagementOperationTransaction, and HOLD returns HoldTransaction\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const accountActivityListResponse of client.accountActivity.list()) {\n console.log(accountActivityListResponse);\n}\n```",
perLanguage: {
- go: {
- method: 'client.AccountActivity.List',
+ typescript: {
+ method: 'client.accountActivity.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.AccountActivity.List(context.TODO(), lithic.AccountActivityListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const accountActivityListResponse of client.accountActivity.list()) {\n console.log(accountActivityListResponse);\n}",
},
- http: {
+ python: {
+ method: 'account_activity.list',
example:
- 'curl https://api.lithic.com/v1/account_activity \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.account_activity.list()\npage = page.data[0]\nprint(page)',
},
java: {
method: 'accountActivity().list',
@@ -10077,20 +10078,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountActivityListPage\nimport com.lithic.api.models.AccountActivityListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: AccountActivityListPage = client.accountActivity().list()\n}',
},
- python: {
- method: 'account_activity.list',
+ go: {
+ method: 'client.AccountActivity.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.account_activity.list()\npage = page.data[0]\nprint(page)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.AccountActivity.List(context.TODO(), lithic.AccountActivityListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'account_activity.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.account_activity.list\n\nputs(page)',
},
- typescript: {
- method: 'client.accountActivity.list',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const accountActivityListResponse of client.accountActivity.list()) {\n console.log(accountActivityListResponse);\n}",
+ 'curl https://api.lithic.com/v1/account_activity \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -10108,14 +10108,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## retrieve_transaction\n\n`client.accountActivity.retrieveTransaction(transaction_token: string): { token: string; category: string; created: string; currency: string; descriptor: string; events: financial_event[]; family: 'INTERNAL'; financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; } | object | object | object | object | object | object`\n\n**get** `/v1/account_activity/{transaction_token}`\n\nRetrieve a single transaction\n\n### Parameters\n\n- `transaction_token: string`\n\n### Returns\n\n- `{ token: string; category: string; created: string; currency: string; descriptor: string; events: { token?: string; amount?: number; created?: string; result?: 'APPROVED' | 'DECLINED'; type?: string; }[]; family: 'INTERNAL'; financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; } | { token: string; category: string; created: string; currency: string; events: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'FUNDS_INSUFFICIENT'[]; memo: string; result: 'APPROVED' | 'DECLINED'; subtype: string; type: string; }[]; family: 'TRANSFER'; from_financial_account_token: string; pending_amount: number; result: 'APPROVED' | 'DECLINED'; settled_amount: number; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; to_financial_account_token: string; updated: string; external_id?: string; external_resource?: object; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; } | { token: string; account_token: string; acquirer_fee: number; acquirer_reference_number: string; amount: number; amounts: { cardholder: object; hold: object; merchant: object; settlement: object; }; authorization_amount: number; authorization_code: string; avs: { address: string; zipcode: string; }; card_token: string; cardholder_authentication: object; created: string; financial_account_token: string; merchant: object; merchant_amount: number; merchant_authorization_amount: number; merchant_currency: string; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; network_risk_score: number; pos: { entry_mode: object; terminal: object; }; result: string; service_location: { city: string; country: string; postal_code: string; state: string; street_address: string; }; settled_amount: number; status: 'DECLINED' | 'EXPIRED' | 'PENDING' | 'SETTLED' | 'VOIDED'; tags: object; token_info: object; updated: string; events?: { token: string; amount: number; amounts: object; created: string; detailed_results: string[]; effective_polarity: 'CREDIT' | 'DEBIT'; network_info: object; result: string; rule_results: object[]; type: string; account_type?: 'CHECKING' | 'SAVINGS'; network_specific_data?: object; }[]; } | { token: string; category: string; created: string; descriptor: string; direction: 'CREDIT' | 'DEBIT'; events: { token: string; amount: number; created: string; result: 'APPROVED' | 'DECLINED'; type: string; detailed_results?: string[]; external_id?: string; }[]; family: 'PAYMENT'; financial_account_token: string; method: 'ACH_NEXT_DAY' | 'ACH_SAME_DAY' | 'WIRE'; method_attributes: { sec_code: 'CCD' | 'PPD' | 'WEB' | 'TEL' | 'CIE' | 'CTX'; ach_hold_period?: number; addenda?: string; company_id?: string; override_company_name?: string; receipt_routing_number?: string; retries?: number; return_reason_code?: string; trace_numbers?: string[]; } | { wire_message_type: string; wire_network: 'FEDWIRE' | 'SWIFT'; creditor?: wire_party_details; debtor?: wire_party_details; message_id?: string; remittance_information?: string; }; pending_amount: number; related_account_tokens: { account_token: string; business_account_token: string; }; result: 'APPROVED' | 'DECLINED'; settled_amount: number; source: 'LITHIC' | 'EXTERNAL' | 'CUSTOMER'; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; expected_release_date?: string; external_bank_account_token?: string; type?: string; user_defined_id?: string; } | { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; }[]; family?: 'EXTERNAL_PAYMENT'; financial_account_token?: string; payment_type?: 'DEPOSIT' | 'WITHDRAWAL'; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; user_defined_id?: string; } | { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; category?: string; currency?: string; direction?: 'CREDIT' | 'DEBIT'; events?: { token: string; amount: number; created: string; detailed_results: 'APPROVED' | 'INSUFFICIENT_FUNDS'[]; effective_date: string; memo: string; result: 'APPROVED' | 'DECLINED'; type: string; subtype?: string; }[]; external_resource?: object; family?: 'MANAGEMENT_OPERATION'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; settled_amount?: number; transaction_series?: { related_transaction_event_token: string; related_transaction_token: string; type: string; }; user_defined_id?: string; } | { token: string; created: string; status: 'PENDING' | 'SETTLED' | 'EXPIRED' | 'VOIDED' | 'DECLINED' | 'REVERSED' | 'CANCELED' | 'RETURNED'; updated: string; currency?: string; events?: object[]; expiration_datetime?: string; family?: 'HOLD'; financial_account_token?: string; pending_amount?: number; result?: 'APPROVED' | 'DECLINED'; user_defined_id?: string; }`\n Response containing multiple transaction types. The `family` field determines which transaction type is returned: INTERNAL returns FinancialTransaction, TRANSFER returns BookTransferTransaction, CARD returns CardTransaction, PAYMENT returns PaymentTransaction, EXTERNAL_PAYMENT returns ExternalPaymentResponse, MANAGEMENT_OPERATION returns ManagementOperationTransaction, and HOLD returns HoldTransaction\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst response = await client.accountActivity.retrieveTransaction('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
perLanguage: {
- go: {
- method: 'client.AccountActivity.GetTransaction',
+ typescript: {
+ method: 'client.accountActivity.retrieveTransaction',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.AccountActivity.GetTransaction(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.accountActivity.retrieveTransaction(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(response);",
},
- http: {
+ python: {
+ method: 'account_activity.retrieve_transaction',
example:
- 'curl https://api.lithic.com/v1/account_activity/$TRANSACTION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.account_activity.retrieve_transaction(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response)',
},
java: {
method: 'accountActivity().retrieveTransaction',
@@ -10127,20 +10128,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.AccountActivityRetrieveTransactionParams\nimport com.lithic.api.models.AccountActivityRetrieveTransactionResponse\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val response: AccountActivityRetrieveTransactionResponse = client.accountActivity().retrieveTransaction("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n}',
},
- python: {
- method: 'account_activity.retrieve_transaction',
+ go: {
+ method: 'client.AccountActivity.GetTransaction',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.account_activity.retrieve_transaction(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tresponse, err := client.AccountActivity.GetTransaction(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response)\n}\n',
},
ruby: {
method: 'account_activity.retrieve_transaction',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresponse = lithic.account_activity.retrieve_transaction("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n\nputs(response)',
},
- typescript: {
- method: 'client.accountActivity.retrieveTransaction',
+ http: {
example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.accountActivity.retrieveTransaction(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(response);",
+ 'curl https://api.lithic.com/v1/account_activity/$TRANSACTION_TOKEN \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -10158,13 +10158,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
markdown:
"## list\n\n`client.transferLimits.list(date?: string): { company_id: string; daily_limit: { credit: object; debit: object; }; date: string; is_fbo: boolean; monthly_limit: { credit: object; debit: object; }; program_limit_per_transaction: { credit: object; debit: object; }; }`\n\n**get** `/v1/transfer_limits`\n\nGet transfer limits for a specified date\n\n### Parameters\n\n- `date?: string`\n Date for which to retrieve transfer limits (ISO 8601 format)\n\n### Returns\n\n- `{ company_id: string; daily_limit: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }; date: string; is_fbo: boolean; monthly_limit: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }; program_limit_per_transaction: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }; }`\n\n - `company_id: string`\n - `daily_limit: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }`\n - `date: string`\n - `is_fbo: boolean`\n - `monthly_limit: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }`\n - `program_limit_per_transaction: { credit: { limit: number; amount_originated?: number; }; debit: { limit: number; amount_originated?: number; }; }`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const transferLimit of client.transferLimits.list()) {\n console.log(transferLimit);\n}\n```",
perLanguage: {
- go: {
- method: 'client.TransferLimits.List',
+ typescript: {
+ method: 'client.transferLimits.list',
example:
- 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.TransferLimits.List(context.TODO(), lithic.TransferLimitListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const transferLimit of client.transferLimits.list()) {\n console.log(transferLimit.company_id);\n}",
},
- http: {
- example: 'curl https://api.lithic.com/v1/transfer_limits \\\n -H "Authorization: $LITHIC_API_KEY"',
+ python: {
+ method: 'transfer_limits.list',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.transfer_limits.list()\npage = page.data[0]\nprint(page.company_id)',
},
java: {
method: 'transferLimits().list',
@@ -10176,20 +10178,18 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.TransferLimitListPage\nimport com.lithic.api.models.TransferLimitListParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n val page: TransferLimitListPage = client.transferLimits().list()\n}',
},
- python: {
- method: 'transfer_limits.list',
+ go: {
+ method: 'client.TransferLimits.List',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\npage = client.transfer_limits.list()\npage = page.data[0]\nprint(page.company_id)',
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\tpage, err := client.TransferLimits.List(context.TODO(), lithic.TransferLimitListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n',
},
ruby: {
method: 'transfer_limits.list',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\npage = lithic.transfer_limits.list\n\nputs(page)',
},
- typescript: {
- method: 'client.transferLimits.list',
- example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const transferLimit of client.transferLimits.list()) {\n console.log(transferLimit.company_id);\n}",
+ http: {
+ example: 'curl https://api.lithic.com/v1/transfer_limits \\\n -H "Authorization: $LITHIC_API_KEY"',
},
},
},
@@ -10202,10 +10202,15 @@ const EMBEDDED_METHODS: MethodEntry[] = [
stainlessPath: '(resource) webhooks > (method) parsed',
qualified: 'client.webhooks.parsed',
perLanguage: {
- go: {
- method: 'client.Webhooks.Parsed',
+ typescript: {
+ method: 'client.webhooks.parsed',
example:
- 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Webhooks.Parsed(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
+ "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.webhooks.parsed();",
+ },
+ python: {
+ method: 'webhooks.parsed',
+ example:
+ 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.webhooks.parsed()',
},
java: {
example:
@@ -10215,21 +10220,16 @@ const EMBEDDED_METHODS: MethodEntry[] = [
example:
'package com.lithic.api.example\n\nimport com.lithic.api.client.LithicClient\nimport com.lithic.api.client.okhttp.LithicOkHttpClient\nimport com.lithic.api.models.WebhookParsedParams\n\nfun main() {\n val client: LithicClient = LithicOkHttpClient.fromEnv()\n\n client.webhooks().parsed()\n}',
},
- python: {
- method: 'webhooks.parsed',
+ go: {
+ method: 'client.Webhooks.Parsed',
example:
- 'import os\nfrom lithic import Lithic\n\nclient = Lithic(\n api_key=os.environ.get("LITHIC_API_KEY"), # This is the default and can be omitted\n)\nclient.webhooks.parsed()',
+ 'package main\n\nimport (\n\t"context"\n\n\t"github.com/lithic-com/lithic-go"\n\t"github.com/lithic-com/lithic-go/option"\n)\n\nfunc main() {\n\tclient := lithic.NewClient(\n\t\toption.WithAPIKey("My Lithic API Key"),\n\t)\n\terr := client.Webhooks.Parsed(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
},
ruby: {
method: 'webhooks.parsed',
example:
'require "lithic"\n\nlithic = Lithic::Client.new(\n api_key: "My Lithic API Key",\n environment: "sandbox" # defaults to "production"\n)\n\nresult = lithic.webhooks.parsed\n\nputs(result)',
},
- typescript: {
- method: 'client.webhooks.parsed',
- example:
- "import Lithic from 'lithic';\n\nconst client = new Lithic({\n apiKey: process.env['LITHIC_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.webhooks.parsed();",
- },
},
},
];
From 57622b5deba8dd2ae3082091d2ba86e752a520db Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Fri, 24 Apr 2026 15:47:07 +0000
Subject: [PATCH 086/164] feat(api): add AMEX to network enum in settlement
reports
---
.stats.yml | 4 ++--
packages/mcp-server/src/local-docs-search.ts | 12 ++++++------
src/resources/reports/reports.ts | 4 ++--
src/resources/reports/settlement/network-totals.ts | 2 +-
.../reports/settlement/network-totals.test.ts | 2 +-
5 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index a0da8756..cba45ec2 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 191
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-599dd2ac665b09566a84c4871ffb3b7313f6b40d0808b8ab4df63bec608b4f9f.yml
-openapi_spec_hash: 429e0ad5e3aae4f63935859c2ac64fdc
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-ab626b78e088455e814b80debc85d420839bc11f95416491fef6a0460f2d95ed.yml
+openapi_spec_hash: f6ae1bbed371a5d45927cd63797a9908
config_hash: ac8326134e692f3f3bdec82396bbec80
diff --git a/packages/mcp-server/src/local-docs-search.ts b/packages/mcp-server/src/local-docs-search.ts
index 46f02084..b168d395 100644
--- a/packages/mcp-server/src/local-docs-search.ts
+++ b/packages/mcp-server/src/local-docs-search.ts
@@ -8042,9 +8042,9 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'starting_after?: string;',
],
response:
- "{ token: string; account_token: string; card_program_token: string; card_token: string; created: string; currency: string; disputes_gross_amount: number; event_tokens: string[]; institution: string; interchange_fee_extended_precision: number; interchange_gross_amount: number; network: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_details: { ISA?: number; }; other_fees_gross_amount: number; report_date: string; settlement_date: string; transaction_token: string; transactions_gross_amount: number; type: string; updated: string; fee_description?: string; }",
+ "{ token: string; account_token: string; card_program_token: string; card_token: string; created: string; currency: string; disputes_gross_amount: number; event_tokens: string[]; institution: string; interchange_fee_extended_precision: number; interchange_gross_amount: number; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_details: { ISA?: number; }; other_fees_gross_amount: number; report_date: string; settlement_date: string; transaction_token: string; transactions_gross_amount: number; type: string; updated: string; fee_description?: string; }",
markdown:
- "## list_details\n\n`client.reports.settlement.listDetails(report_date: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; account_token: string; card_program_token: string; card_token: string; created: string; currency: string; disputes_gross_amount: number; event_tokens: string[]; institution: string; interchange_fee_extended_precision: number; interchange_gross_amount: number; network: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_details: object; other_fees_gross_amount: number; report_date: string; settlement_date: string; transaction_token: string; transactions_gross_amount: number; type: string; updated: string; fee_description?: string; }`\n\n**get** `/v1/reports/settlement/details/{report_date}`\n\nList details.\n\n### Parameters\n\n- `report_date: string`\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Number of records per page.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; card_token: string; created: string; currency: string; disputes_gross_amount: number; event_tokens: string[]; institution: string; interchange_fee_extended_precision: number; interchange_gross_amount: number; network: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_details: { ISA?: number; }; other_fees_gross_amount: number; report_date: string; settlement_date: string; transaction_token: string; transactions_gross_amount: number; type: string; updated: string; fee_description?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `card_program_token: string`\n - `card_token: string`\n - `created: string`\n - `currency: string`\n - `disputes_gross_amount: number`\n - `event_tokens: string[]`\n - `institution: string`\n - `interchange_fee_extended_precision: number`\n - `interchange_gross_amount: number`\n - `network: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'`\n - `other_fees_details: { ISA?: number; }`\n - `other_fees_gross_amount: number`\n - `report_date: string`\n - `settlement_date: string`\n - `transaction_token: string`\n - `transactions_gross_amount: number`\n - `type: string`\n - `updated: string`\n - `fee_description?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const settlementDetail of client.reports.settlement.listDetails('2023-09-01')) {\n console.log(settlementDetail);\n}\n```",
+ "## list_details\n\n`client.reports.settlement.listDetails(report_date: string, ending_before?: string, page_size?: number, starting_after?: string): { token: string; account_token: string; card_program_token: string; card_token: string; created: string; currency: string; disputes_gross_amount: number; event_tokens: string[]; institution: string; interchange_fee_extended_precision: number; interchange_gross_amount: number; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_details: object; other_fees_gross_amount: number; report_date: string; settlement_date: string; transaction_token: string; transactions_gross_amount: number; type: string; updated: string; fee_description?: string; }`\n\n**get** `/v1/reports/settlement/details/{report_date}`\n\nList details.\n\n### Parameters\n\n- `report_date: string`\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `page_size?: number`\n Number of records per page.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; account_token: string; card_program_token: string; card_token: string; created: string; currency: string; disputes_gross_amount: number; event_tokens: string[]; institution: string; interchange_fee_extended_precision: number; interchange_gross_amount: number; network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_details: { ISA?: number; }; other_fees_gross_amount: number; report_date: string; settlement_date: string; transaction_token: string; transactions_gross_amount: number; type: string; updated: string; fee_description?: string; }`\n\n - `token: string`\n - `account_token: string`\n - `card_program_token: string`\n - `card_token: string`\n - `created: string`\n - `currency: string`\n - `disputes_gross_amount: number`\n - `event_tokens: string[]`\n - `institution: string`\n - `interchange_fee_extended_precision: number`\n - `interchange_gross_amount: number`\n - `network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'`\n - `other_fees_details: { ISA?: number; }`\n - `other_fees_gross_amount: number`\n - `report_date: string`\n - `settlement_date: string`\n - `transaction_token: string`\n - `transactions_gross_amount: number`\n - `type: string`\n - `updated: string`\n - `fee_description?: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const settlementDetail of client.reports.settlement.listDetails('2023-09-01')) {\n console.log(settlementDetail);\n}\n```",
perLanguage: {
typescript: {
method: 'client.reports.settlement.listDetails',
@@ -8092,9 +8092,9 @@ const EMBEDDED_METHODS: MethodEntry[] = [
qualified: 'client.reports.settlement.summary',
params: ['report_date: string;'],
response:
- "{ created: string; currency: string; details: { currency?: string; disputes_gross_amount?: number; institution?: string; interchange_gross_amount?: number; network?: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_gross_amount?: number; settled_net_amount?: number; transactions_gross_amount?: number; }[]; disputes_gross_amount: number; interchange_gross_amount: number; is_complete: boolean; other_fees_gross_amount: number; report_date: string; settled_net_amount: number; transactions_gross_amount: number; updated: string; }",
+ "{ created: string; currency: string; details: { currency?: string; disputes_gross_amount?: number; institution?: string; interchange_gross_amount?: number; network?: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_gross_amount?: number; settled_net_amount?: number; transactions_gross_amount?: number; }[]; disputes_gross_amount: number; interchange_gross_amount: number; is_complete: boolean; other_fees_gross_amount: number; report_date: string; settled_net_amount: number; transactions_gross_amount: number; updated: string; }",
markdown:
- "## summary\n\n`client.reports.settlement.summary(report_date: string): { created: string; currency: string; details: settlement_summary_details[]; disputes_gross_amount: number; interchange_gross_amount: number; is_complete: boolean; other_fees_gross_amount: number; report_date: string; settled_net_amount: number; transactions_gross_amount: number; updated: string; }`\n\n**get** `/v1/reports/settlement/summary/{report_date}`\n\nGet the settlement report for a specified report date. Not available in sandbox.\n\n### Parameters\n\n- `report_date: string`\n\n### Returns\n\n- `{ created: string; currency: string; details: { currency?: string; disputes_gross_amount?: number; institution?: string; interchange_gross_amount?: number; network?: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_gross_amount?: number; settled_net_amount?: number; transactions_gross_amount?: number; }[]; disputes_gross_amount: number; interchange_gross_amount: number; is_complete: boolean; other_fees_gross_amount: number; report_date: string; settled_net_amount: number; transactions_gross_amount: number; updated: string; }`\n\n - `created: string`\n - `currency: string`\n - `details: { currency?: string; disputes_gross_amount?: number; institution?: string; interchange_gross_amount?: number; network?: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_gross_amount?: number; settled_net_amount?: number; transactions_gross_amount?: number; }[]`\n - `disputes_gross_amount: number`\n - `interchange_gross_amount: number`\n - `is_complete: boolean`\n - `other_fees_gross_amount: number`\n - `report_date: string`\n - `settled_net_amount: number`\n - `transactions_gross_amount: number`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst settlementReport = await client.reports.settlement.summary('2023-09-01');\n\nconsole.log(settlementReport);\n```",
+ "## summary\n\n`client.reports.settlement.summary(report_date: string): { created: string; currency: string; details: settlement_summary_details[]; disputes_gross_amount: number; interchange_gross_amount: number; is_complete: boolean; other_fees_gross_amount: number; report_date: string; settled_net_amount: number; transactions_gross_amount: number; updated: string; }`\n\n**get** `/v1/reports/settlement/summary/{report_date}`\n\nGet the settlement report for a specified report date. Not available in sandbox.\n\n### Parameters\n\n- `report_date: string`\n\n### Returns\n\n- `{ created: string; currency: string; details: { currency?: string; disputes_gross_amount?: number; institution?: string; interchange_gross_amount?: number; network?: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_gross_amount?: number; settled_net_amount?: number; transactions_gross_amount?: number; }[]; disputes_gross_amount: number; interchange_gross_amount: number; is_complete: boolean; other_fees_gross_amount: number; report_date: string; settled_net_amount: number; transactions_gross_amount: number; updated: string; }`\n\n - `created: string`\n - `currency: string`\n - `details: { currency?: string; disputes_gross_amount?: number; institution?: string; interchange_gross_amount?: number; network?: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA'; other_fees_gross_amount?: number; settled_net_amount?: number; transactions_gross_amount?: number; }[]`\n - `disputes_gross_amount: number`\n - `interchange_gross_amount: number`\n - `is_complete: boolean`\n - `other_fees_gross_amount: number`\n - `report_date: string`\n - `settled_net_amount: number`\n - `transactions_gross_amount: number`\n - `updated: string`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\nconst settlementReport = await client.reports.settlement.summary('2023-09-01');\n\nconsole.log(settlementReport);\n```",
perLanguage: {
typescript: {
method: 'client.reports.settlement.summary',
@@ -8145,7 +8145,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
'end?: string;',
'ending_before?: string;',
'institution_id?: string;',
- "network?: 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK';",
+ "network?: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK';",
'page_size?: number;',
'report_date?: string;',
'report_date_begin?: string;',
@@ -8156,7 +8156,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
response:
"{ token: string; amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }",
markdown:
- "## list\n\n`client.reports.settlement.networkTotals.list(begin?: string, end?: string, ending_before?: string, institution_id?: string, network?: 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK', page_size?: number, report_date?: string, report_date_begin?: string, report_date_end?: string, settlement_institution_id?: string, starting_after?: string): { token: string; amounts: object; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }`\n\n**get** `/v1/reports/settlement/network_totals`\n\nList network total records with optional filters. Not available in sandbox.\n\n### Parameters\n\n- `begin?: string`\n Datetime in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Datetime in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `institution_id?: string`\n Institution ID to filter on.\n\n- `network?: 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'`\n Network to filter on.\n\n- `page_size?: number`\n Number of records per page.\n\n- `report_date?: string`\n Singular report date to filter on (YYYY-MM-DD). Cannot be populated in conjunction with report_date_begin or report_date_end.\n\n- `report_date_begin?: string`\n Earliest report date to filter on, inclusive (YYYY-MM-DD).\n\n- `report_date_end?: string`\n Latest report date to filter on, inclusive (YYYY-MM-DD).\n\n- `settlement_institution_id?: string`\n Settlement institution ID to filter on.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }`\n\n - `token: string`\n - `amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }`\n - `created: string`\n - `currency: string`\n - `institution_id: string`\n - `is_complete: boolean`\n - `network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'`\n - `report_date: string`\n - `settlement_institution_id: string`\n - `settlement_service: string`\n - `updated: string`\n - `cycle?: number`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const networkTotal of client.reports.settlement.networkTotals.list()) {\n console.log(networkTotal);\n}\n```",
+ "## list\n\n`client.reports.settlement.networkTotals.list(begin?: string, end?: string, ending_before?: string, institution_id?: string, network?: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK', page_size?: number, report_date?: string, report_date_begin?: string, report_date_end?: string, settlement_institution_id?: string, starting_after?: string): { token: string; amounts: object; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }`\n\n**get** `/v1/reports/settlement/network_totals`\n\nList network total records with optional filters. Not available in sandbox.\n\n### Parameters\n\n- `begin?: string`\n Datetime in RFC 3339 format. Only entries created after the specified time will be included. UTC time zone.\n\n- `end?: string`\n Datetime in RFC 3339 format. Only entries created before the specified time will be included. UTC time zone.\n\n- `ending_before?: string`\n A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item.\n\n- `institution_id?: string`\n Institution ID to filter on.\n\n- `network?: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'`\n Network to filter on.\n\n- `page_size?: number`\n Number of records per page.\n\n- `report_date?: string`\n Singular report date to filter on (YYYY-MM-DD). Cannot be populated in conjunction with report_date_begin or report_date_end.\n\n- `report_date_begin?: string`\n Earliest report date to filter on, inclusive (YYYY-MM-DD).\n\n- `report_date_end?: string`\n Latest report date to filter on, inclusive (YYYY-MM-DD).\n\n- `settlement_institution_id?: string`\n Settlement institution ID to filter on.\n\n- `starting_after?: string`\n A cursor representing an item's token after which a page of results should begin. Used to retrieve the next page of results after this item.\n\n### Returns\n\n- `{ token: string; amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }; created: string; currency: string; institution_id: string; is_complete: boolean; network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'; report_date: string; settlement_institution_id: string; settlement_service: string; updated: string; cycle?: number; }`\n\n - `token: string`\n - `amounts: { gross_settlement: number; interchange_fees: number; net_settlement: number; visa_charges?: number; }`\n - `created: string`\n - `currency: string`\n - `institution_id: string`\n - `is_complete: boolean`\n - `network: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK'`\n - `report_date: string`\n - `settlement_institution_id: string`\n - `settlement_service: string`\n - `updated: string`\n - `cycle?: number`\n\n### Example\n\n```typescript\nimport Lithic from 'lithic';\n\nconst client = new Lithic();\n\n// Automatically fetches more pages as needed.\nfor await (const networkTotal of client.reports.settlement.networkTotals.list()) {\n console.log(networkTotal);\n}\n```",
perLanguage: {
typescript: {
method: 'client.reports.settlement.networkTotals.list',
diff --git a/src/resources/reports/reports.ts b/src/resources/reports/reports.ts
index fb2a51d5..adb176ff 100644
--- a/src/resources/reports/reports.ts
+++ b/src/resources/reports/reports.ts
@@ -166,7 +166,7 @@ export interface SettlementDetail {
/**
* Card network where the transaction took place.
*/
- network: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA';
+ network: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA';
/**
* The total gross amount of other fees by type.
@@ -332,7 +332,7 @@ export interface SettlementSummaryDetails {
/**
* Card network where the transaction took place
*/
- network?: 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA';
+ network?: 'AMEX' | 'INTERLINK' | 'MAESTRO' | 'MASTERCARD' | 'UNKNOWN' | 'VISA';
/**
* Total amount of gross other fees outside of interchange.
diff --git a/src/resources/reports/settlement/network-totals.ts b/src/resources/reports/settlement/network-totals.ts
index 9b684c9c..6736b388 100644
--- a/src/resources/reports/settlement/network-totals.ts
+++ b/src/resources/reports/settlement/network-totals.ts
@@ -68,7 +68,7 @@ export interface NetworkTotalListParams extends CursorPageParams {
/**
* Network to filter on.
*/
- network?: 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK';
+ network?: 'AMEX' | 'VISA' | 'MASTERCARD' | 'MAESTRO' | 'INTERLINK';
/**
* Singular report date to filter on (YYYY-MM-DD). Cannot be populated in
diff --git a/tests/api-resources/reports/settlement/network-totals.test.ts b/tests/api-resources/reports/settlement/network-totals.test.ts
index 2bf1f44a..01db9656 100644
--- a/tests/api-resources/reports/settlement/network-totals.test.ts
+++ b/tests/api-resources/reports/settlement/network-totals.test.ts
@@ -41,7 +41,7 @@ describe('resource networkTotals', () => {
end: '2019-12-27T18:11:19.117Z',
ending_before: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
institution_id: 'institution_id',
- network: 'VISA',
+ network: 'AMEX',
page_size: 1,
report_date: '2019-12-27',
report_date_begin: '2019-12-27',
From 5cb6c18ae4f0cc1d08f2b7dc1136471386fde87d Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Fri, 24 Apr 2026 15:57:29 +0000
Subject: [PATCH 087/164] chore(formatter): run prettier and eslint separately
---
eslint.config.mjs | 3 ---
package.json | 1 -
packages/mcp-server/manifest.json | 8 ++------
scripts/fast-format | 6 ++----
scripts/format | 3 +--
scripts/lint | 3 +++
src/internal/types.ts | 14 ++++++--------
yarn.lock | 32 -------------------------------
8 files changed, 14 insertions(+), 56 deletions(-)
diff --git a/eslint.config.mjs b/eslint.config.mjs
index 0b625a58..271caeee 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -1,7 +1,6 @@
// @ts-check
import tseslint from 'typescript-eslint';
import unusedImports from 'eslint-plugin-unused-imports';
-import prettier from 'eslint-plugin-prettier';
export default tseslint.config(
{
@@ -14,11 +13,9 @@ export default tseslint.config(
plugins: {
'@typescript-eslint': tseslint.plugin,
'unused-imports': unusedImports,
- prettier,
},
rules: {
'no-unused-vars': 'off',
- 'prettier/prettier': 'error',
'unused-imports/no-unused-imports': 'error',
'no-restricted-imports': [
'error',
diff --git a/package.json b/package.json
index c1dac825..78857902 100644
--- a/package.json
+++ b/package.json
@@ -38,7 +38,6 @@
"@typescript-eslint/eslint-plugin": "8.31.1",
"@typescript-eslint/parser": "8.31.1",
"eslint": "^9.39.1",
- "eslint-plugin-prettier": "^5.4.1",
"eslint-plugin-unused-imports": "^4.1.4",
"iconv-lite": "^0.6.3",
"jest": "^29.4.0",
diff --git a/packages/mcp-server/manifest.json b/packages/mcp-server/manifest.json
index cc783200..eeadc951 100644
--- a/packages/mcp-server/manifest.json
+++ b/packages/mcp-server/manifest.json
@@ -18,9 +18,7 @@
"entry_point": "index.js",
"mcp_config": {
"command": "node",
- "args": [
- "${__dirname}/index.js"
- ],
+ "args": ["${__dirname}/index.js"],
"env": {
"LITHIC_API_KEY": "${user_config.LITHIC_API_KEY}",
"LITHIC_WEBHOOK_SECRET": "${user_config.LITHIC_WEBHOOK_SECRET}"
@@ -48,7 +46,5 @@
"node": ">=18.0.0"
}
},
- "keywords": [
- "api"
- ]
+ "keywords": ["api"]
}
diff --git a/scripts/fast-format b/scripts/fast-format
index 53721ac0..e1723136 100755
--- a/scripts/fast-format
+++ b/scripts/fast-format
@@ -31,10 +31,8 @@ if ! [ -z "$ESLINT_FILES" ]; then
fi
echo "==> Running prettier --write"
-# format things eslint didn't
-PRETTIER_FILES="$(grep '\.\(js\|json\)$' "$FILE_LIST" || true)"
+PRETTIER_FILES="$(grep '\.\([mc]?tsx?\|[mc]?jsx?\|json\)$' "$FILE_LIST" || true)"
if ! [ -z "$PRETTIER_FILES" ]; then
echo "$PRETTIER_FILES" | xargs ./node_modules/.bin/prettier \
- --write --cache --cache-strategy metadata --no-error-on-unmatched-pattern \
- '!**/dist' '!**/*.ts' '!**/*.mts' '!**/*.cts' '!**/*.js' '!**/*.mjs' '!**/*.cjs'
+ --write --cache --cache-strategy metadata --no-error-on-unmatched-pattern
fi
diff --git a/scripts/format b/scripts/format
index 7a756401..b1b2c17a 100755
--- a/scripts/format
+++ b/scripts/format
@@ -8,5 +8,4 @@ echo "==> Running eslint --fix"
./node_modules/.bin/eslint --fix .
echo "==> Running prettier --write"
-# format things eslint didn't
-./node_modules/.bin/prettier --write --cache --cache-strategy metadata . '!**/dist' '!**/*.ts' '!**/*.mts' '!**/*.cts' '!**/*.js' '!**/*.mjs' '!**/*.cjs'
+./node_modules/.bin/prettier --write --cache --cache-strategy metadata .
diff --git a/scripts/lint b/scripts/lint
index 3ffb78a6..1f532548 100755
--- a/scripts/lint
+++ b/scripts/lint
@@ -4,6 +4,9 @@ set -e
cd "$(dirname "$0")/.."
+echo "==> Running prettier --check"
+./node_modules/.bin/prettier --check .
+
echo "==> Running eslint"
./node_modules/.bin/eslint .
diff --git a/src/internal/types.ts b/src/internal/types.ts
index b668dfc0..a050513a 100644
--- a/src/internal/types.ts
+++ b/src/internal/types.ts
@@ -40,7 +40,6 @@ type OverloadedParameters =
: T extends (...args: infer A) => unknown ? A
: never;
-/* eslint-disable */
/**
* These imports attempt to get types from a parent package's dependencies.
* Unresolved bare specifiers can trigger [automatic type acquisition][1] in some projects, which
@@ -63,19 +62,18 @@ type OverloadedParameters =
*
* [1]: https://www.typescriptlang.org/tsconfig/#typeAcquisition
*/
-/** @ts-ignore For users with \@types/node */
+/** @ts-ignore For users with \@types/node */ /* prettier-ignore */
type UndiciTypesRequestInit = NotAny | NotAny | NotAny | NotAny | NotAny | NotAny | NotAny | NotAny | NotAny | NotAny;
-/** @ts-ignore For users with undici */
+/** @ts-ignore For users with undici */ /* prettier-ignore */
type UndiciRequestInit = NotAny | NotAny | NotAny | NotAny | NotAny | NotAny