From 4720df6f2050e3c9c2aeea2c73e1d22e175d523a Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 12 May 2026 23:13:17 +0000
Subject: [PATCH 1/2] feat(api): add register benefits method
---
.stats.yml | 6 +-
MIGRATION.md | 1 +
api.md | 4 +
packages/mcp-server/src/code-tool-worker.ts | 2 +
packages/mcp-server/src/local-docs-search.ts | 105 ++++++++++++++++++
packages/mcp-server/src/methods.ts | 12 ++
src/client.ts | 10 +-
src/resources/account.ts | 54 ++++++++-
src/resources/hris/benefits/benefits.ts | 56 ++++++++++
src/resources/hris/benefits/index.ts | 2 +
src/resources/hris/hris.ts | 4 +
src/resources/hris/index.ts | 2 +
src/resources/index.ts | 8 +-
tests/api-resources/account.test.ts | 19 ++++
.../hris/benefits/benefits.test.ts | 26 +++++
15 files changed, 305 insertions(+), 6 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 347af6b1..909df852 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
-configured_endpoints: 46
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/finch/finch-82224679b895da7c7a5aae44d11b69fbe37d0316cd8e10aa0c89bc5a68f424de.yml
+configured_endpoints: 48
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/finch/finch-5092370ef89959c46138a85f9d6d3c919682a5492a0f9f85ac4421de702f35a8.yml
openapi_spec_hash: a4ca94b3405fc83934c949068943e16c
-config_hash: fce67e71044aa4c3d0b8030052b3a20b
+config_hash: a1c4b7d897cbf8ed42c5f474b3161d79
diff --git a/MIGRATION.md b/MIGRATION.md
index c90ed0ae..20b6d21f 100644
--- a/MIGRATION.md
+++ b/MIGRATION.md
@@ -105,6 +105,7 @@ client.example.list(undefined, { headers: { ... } });
- `client.hris.benefits.update()`
- `client.hris.benefits.list()`
- `client.hris.benefits.listSupportedBenefits()`
+- `client.hris.benefits.register()`
- `client.hris.benefits.individuals.enrollMany()`
- `client.hris.benefits.individuals.enrolledIDs()`
- `client.hris.benefits.individuals.retrieveManyBenefits()`
diff --git a/api.md b/api.md
index 40b2f274..e4ee9563 100644
--- a/api.md
+++ b/api.md
@@ -149,6 +149,7 @@ Types:
- BenefitsSupport
- CompanyBenefit
- CreateCompanyBenefitsResponse
+- RegisterCompanyBenefitResponse
- SupportPerBenefitType
- SupportedBenefit
- UpdateCompanyBenefitResponse
@@ -161,6 +162,7 @@ Methods:
- client.hris.benefits.update(benefitID, { ...params }) -> UpdateCompanyBenefitResponse
- client.hris.benefits.list({ ...params }) -> CompanyBenefitsSinglePage
- client.hris.benefits.listSupportedBenefits({ ...params }) -> SupportedBenefitsSinglePage
+- client.hris.benefits.register({ ...params }) -> RegisterCompanyBenefitResponse
### Individuals
@@ -193,12 +195,14 @@ Methods:
Types:
+- DisconnectEntityResponse
- DisconnectResponse
- Introspection
Methods:
- client.account.disconnect() -> DisconnectResponse
+- client.account.disconnectEntity({ ...params }) -> DisconnectEntityResponse
- client.account.introspect() -> Introspection
# Webhooks
diff --git a/packages/mcp-server/src/code-tool-worker.ts b/packages/mcp-server/src/code-tool-worker.ts
index b8f7aa26..397a4e00 100644
--- a/packages/mcp-server/src/code-tool-worker.ts
+++ b/packages/mcp-server/src/code-tool-worker.ts
@@ -126,6 +126,7 @@ const fuse = new Fuse(
'client.hris.benefits.create',
'client.hris.benefits.list',
'client.hris.benefits.listSupportedBenefits',
+ 'client.hris.benefits.register',
'client.hris.benefits.retrieve',
'client.hris.benefits.update',
'client.hris.benefits.individuals.enrollMany',
@@ -134,6 +135,7 @@ const fuse = new Fuse(
'client.hris.benefits.individuals.unenrollMany',
'client.providers.list',
'client.account.disconnect',
+ 'client.account.disconnectEntity',
'client.account.introspect',
'client.requestForwarding.forward',
'client.jobs.automated.create',
diff --git a/packages/mcp-server/src/local-docs-search.ts b/packages/mcp-server/src/local-docs-search.ts
index e50644a6..7f42bd49 100644
--- a/packages/mcp-server/src/local-docs-search.ts
+++ b/packages/mcp-server/src/local-docs-search.ts
@@ -1078,6 +1078,61 @@ const EMBEDDED_METHODS: MethodEntry[] = [
},
},
},
+ {
+ name: 'register',
+ endpoint: '/employer/benefits/register',
+ httpMethod: 'post',
+ summary: 'Register Deduction',
+ description:
+ "Register existing benefits from the customer on the provider, on Finch's end. Please use the `/provider` endpoint to view available types for each provider.",
+ stainlessPath: '(resource) hris.benefits > (method) register',
+ qualified: 'client.hris.benefits.register',
+ params: [
+ 'entity_ids?: string[];',
+ 'description?: string;',
+ "frequency?: 'every_paycheck' | 'monthly' | 'one_time';",
+ 'type?: string;',
+ ],
+ response: '{ benefit_id: string; job_id: string; }',
+ markdown:
+ "## register\n\n`client.hris.benefits.register(entity_ids?: string[], description?: string, frequency?: 'every_paycheck' | 'monthly' | 'one_time', type?: string): { benefit_id: string; job_id: string; }`\n\n**post** `/employer/benefits/register`\n\nRegister existing benefits from the customer on the provider, on Finch's end. Please use the `/provider` endpoint to view available types for each provider.\n\n### Parameters\n\n- `entity_ids?: string[]`\n The entity IDs to specify which entities' data to access.\n\n- `description?: string`\n\n- `frequency?: 'every_paycheck' | 'monthly' | 'one_time'`\n The frequency of the benefit deduction/contribution.\n\n- `type?: string`\n Type of benefit.\n\n### Returns\n\n- `{ benefit_id: string; job_id: string; }`\n\n - `benefit_id: string`\n - `job_id: string`\n\n### Example\n\n```typescript\nimport Finch from '@tryfinch/finch-api';\n\nconst client = new Finch();\n\nconst registerCompanyBenefitResponse = await client.hris.benefits.register();\n\nconsole.log(registerCompanyBenefitResponse);\n```",
+ perLanguage: {
+ typescript: {
+ method: 'client.hris.benefits.register',
+ example:
+ "import Finch from '@tryfinch/finch-api';\n\nconst client = new Finch({\n accessToken: 'My Access Token',\n});\n\nconst registerCompanyBenefitResponse = await client.hris.benefits.register();\n\nconsole.log(registerCompanyBenefitResponse.benefit_id);",
+ },
+ python: {
+ method: 'hris.benefits.register',
+ example:
+ 'from finch import Finch\n\nclient = Finch(\n access_token="My Access Token",\n)\nregister_company_benefit_response = client.hris.benefits.register()\nprint(register_company_benefit_response.benefit_id)',
+ },
+ java: {
+ method: 'hris().benefits().register',
+ example:
+ 'package com.tryfinch.api.example;\n\nimport com.tryfinch.api.client.FinchClient;\nimport com.tryfinch.api.client.okhttp.FinchOkHttpClient;\nimport com.tryfinch.api.models.HrisBenefitRegisterParams;\nimport com.tryfinch.api.models.RegisterCompanyBenefitResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n FinchClient client = FinchOkHttpClient.builder()\n .fromEnv()\n .accessToken("My Access Token")\n .build();\n\n RegisterCompanyBenefitResponse registerCompanyBenefitResponse = client.hris().benefits().register();\n }\n}',
+ },
+ kotlin: {
+ method: 'hris().benefits().register',
+ example:
+ 'package com.tryfinch.api.example\n\nimport com.tryfinch.api.client.FinchClient\nimport com.tryfinch.api.client.okhttp.FinchOkHttpClient\nimport com.tryfinch.api.models.HrisBenefitRegisterParams\nimport com.tryfinch.api.models.RegisterCompanyBenefitResponse\n\nfun main() {\n val client: FinchClient = FinchOkHttpClient.builder()\n .fromEnv()\n .accessToken("My Access Token")\n .build()\n\n val registerCompanyBenefitResponse: RegisterCompanyBenefitResponse = client.hris().benefits().register()\n}',
+ },
+ go: {
+ method: 'client.HRIS.Benefits.Register',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/Finch-API/finch-api-go"\n\t"github.com/Finch-API/finch-api-go/option"\n)\n\nfunc main() {\n\tclient := finchgo.NewClient(\n\t\toption.WithAccessToken("My Access Token"),\n\t)\n\tregisterCompanyBenefitResponse, err := client.HRIS.Benefits.Register(context.TODO(), finchgo.HRISBenefitRegisterParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", registerCompanyBenefitResponse.BenefitID)\n}\n',
+ },
+ ruby: {
+ method: 'hris.benefits.register',
+ example:
+ 'require "finch_api"\n\nfinch = FinchAPI::Client.new(access_token: "My Access Token")\n\nregister_company_benefit_response = finch.hris.benefits.register\n\nputs(register_company_benefit_response)',
+ },
+ http: {
+ example:
+ 'curl https://api.tryfinch.com/employer/benefits/register \\\n -X POST \\\n -H \'Finch-API-Version: 2020-09-17\' \\\n -H "Authorization: Bearer $ACCESS_TOKEN"',
+ },
+ },
+ },
{
name: 'enrolled_ids',
endpoint: '/employer/benefits/{benefit_id}/enrolled',
@@ -1420,6 +1475,56 @@ const EMBEDDED_METHODS: MethodEntry[] = [
},
},
},
+ {
+ name: 'disconnect_entity',
+ endpoint: '/disconnect-entity',
+ httpMethod: 'post',
+ summary: 'Disconnect Entity',
+ description:
+ 'Disconnect entity(s) from a connection without affecting other entities associated with the same connection.',
+ stainlessPath: '(resource) account > (method) disconnect_entity',
+ qualified: 'client.account.disconnectEntity',
+ params: ['entity_ids: string[];'],
+ response: '{ status: string; }',
+ markdown:
+ "## disconnect_entity\n\n`client.account.disconnectEntity(entity_ids: string[]): { status: string; }`\n\n**post** `/disconnect-entity`\n\nDisconnect entity(s) from a connection without affecting other entities associated with the same connection.\n\n### Parameters\n\n- `entity_ids: string[]`\n Array of entity UUIDs to disconnect. At least one entity ID must be provided.\n\n### Returns\n\n- `{ status: string; }`\n\n - `status: string`\n\n### Example\n\n```typescript\nimport Finch from '@tryfinch/finch-api';\n\nconst client = new Finch();\n\nconst disconnectEntityResponse = await client.account.disconnectEntity({ entity_ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a', '5e6f7a8b-9c10-4d11-a12b-c13d14e15f16'] });\n\nconsole.log(disconnectEntityResponse);\n```",
+ perLanguage: {
+ typescript: {
+ method: 'client.account.disconnectEntity',
+ example:
+ "import Finch from '@tryfinch/finch-api';\n\nconst client = new Finch({\n accessToken: 'My Access Token',\n});\n\nconst disconnectEntityResponse = await client.account.disconnectEntity({\n entity_ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a', '5e6f7a8b-9c10-4d11-a12b-c13d14e15f16'],\n});\n\nconsole.log(disconnectEntityResponse.status);",
+ },
+ python: {
+ method: 'account.disconnect_entity',
+ example:
+ 'from finch import Finch\n\nclient = Finch(\n access_token="My Access Token",\n)\ndisconnect_entity_response = client.account.disconnect_entity(\n entity_ids=["3c90c3cc-0d44-4b50-8888-8dd25736052a", "5e6f7a8b-9c10-4d11-a12b-c13d14e15f16"],\n)\nprint(disconnect_entity_response.status)',
+ },
+ java: {
+ method: 'account().disconnectEntity',
+ example:
+ 'package com.tryfinch.api.example;\n\nimport com.tryfinch.api.client.FinchClient;\nimport com.tryfinch.api.client.okhttp.FinchOkHttpClient;\nimport com.tryfinch.api.models.AccountDisconnectEntityParams;\nimport com.tryfinch.api.models.DisconnectEntityResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n FinchClient client = FinchOkHttpClient.builder()\n .fromEnv()\n .accessToken("My Access Token")\n .build();\n\n AccountDisconnectEntityParams params = AccountDisconnectEntityParams.builder()\n .addEntityId("3c90c3cc-0d44-4b50-8888-8dd25736052a")\n .addEntityId("5e6f7a8b-9c10-4d11-a12b-c13d14e15f16")\n .build();\n DisconnectEntityResponse disconnectEntityResponse = client.account().disconnectEntity(params);\n }\n}',
+ },
+ kotlin: {
+ method: 'account().disconnectEntity',
+ example:
+ 'package com.tryfinch.api.example\n\nimport com.tryfinch.api.client.FinchClient\nimport com.tryfinch.api.client.okhttp.FinchOkHttpClient\nimport com.tryfinch.api.models.AccountDisconnectEntityParams\nimport com.tryfinch.api.models.DisconnectEntityResponse\n\nfun main() {\n val client: FinchClient = FinchOkHttpClient.builder()\n .fromEnv()\n .accessToken("My Access Token")\n .build()\n\n val params: AccountDisconnectEntityParams = AccountDisconnectEntityParams.builder()\n .addEntityId("3c90c3cc-0d44-4b50-8888-8dd25736052a")\n .addEntityId("5e6f7a8b-9c10-4d11-a12b-c13d14e15f16")\n .build()\n val disconnectEntityResponse: DisconnectEntityResponse = client.account().disconnectEntity(params)\n}',
+ },
+ go: {
+ method: 'client.Account.DisconnectEntity',
+ example:
+ 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/Finch-API/finch-api-go"\n\t"github.com/Finch-API/finch-api-go/option"\n)\n\nfunc main() {\n\tclient := finchgo.NewClient(\n\t\toption.WithAccessToken("My Access Token"),\n\t)\n\tdisconnectEntityResponse, err := client.Account.DisconnectEntity(context.TODO(), finchgo.AccountDisconnectEntityParams{\n\t\tEntityIDs: finchgo.F([]string{"3c90c3cc-0d44-4b50-8888-8dd25736052a", "5e6f7a8b-9c10-4d11-a12b-c13d14e15f16"}),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", disconnectEntityResponse.Status)\n}\n',
+ },
+ ruby: {
+ method: 'account.disconnect_entity',
+ example:
+ 'require "finch_api"\n\nfinch = FinchAPI::Client.new(access_token: "My Access Token")\n\ndisconnect_entity_response = finch.account.disconnect_entity(\n entity_ids: ["3c90c3cc-0d44-4b50-8888-8dd25736052a", "5e6f7a8b-9c10-4d11-a12b-c13d14e15f16"]\n)\n\nputs(disconnect_entity_response)',
+ },
+ http: {
+ example:
+ 'curl https://api.tryfinch.com/disconnect-entity \\\n -H \'Content-Type: application/json\' \\\n -H \'Finch-API-Version: 2020-09-17\' \\\n -H "Authorization: Bearer $ACCESS_TOKEN" \\\n -d \'{\n "entity_ids": [\n "3c90c3cc-0d44-4b50-8888-8dd25736052a",\n "5e6f7a8b-9c10-4d11-a12b-c13d14e15f16"\n ]\n }\'',
+ },
+ },
+ },
{
name: 'forward',
endpoint: '/forward',
diff --git a/packages/mcp-server/src/methods.ts b/packages/mcp-server/src/methods.ts
index 82258b2f..8243dcf6 100644
--- a/packages/mcp-server/src/methods.ts
+++ b/packages/mcp-server/src/methods.ts
@@ -128,6 +128,12 @@ export const sdkMethods: SdkMethod[] = [
httpMethod: 'get',
httpPath: '/employer/benefits/meta',
},
+ {
+ clientCallName: 'client.hris.benefits.register',
+ fullyQualifiedName: 'hris.benefits.register',
+ httpMethod: 'post',
+ httpPath: '/employer/benefits/register',
+ },
{
clientCallName: 'client.hris.benefits.individuals.enrollMany',
fullyQualifiedName: 'hris.benefits.individuals.enrollMany',
@@ -164,6 +170,12 @@ export const sdkMethods: SdkMethod[] = [
httpMethod: 'post',
httpPath: '/disconnect',
},
+ {
+ clientCallName: 'client.account.disconnectEntity',
+ fullyQualifiedName: 'account.disconnectEntity',
+ httpMethod: 'post',
+ httpPath: '/disconnect-entity',
+ },
{
clientCallName: 'client.account.introspect',
fullyQualifiedName: 'account.introspect',
diff --git a/src/client.ts b/src/client.ts
index ad1ad15e..9f962e54 100644
--- a/src/client.ts
+++ b/src/client.ts
@@ -28,7 +28,13 @@ import * as Uploads from './core/uploads';
import * as API from './resources/index';
import { APIPromise } from './core/api-promise';
import { AccessTokenCreateParams, AccessTokens, CreateAccessTokenResponse } from './resources/access-tokens';
-import { Account, DisconnectResponse, Introspection } from './resources/account';
+import {
+ Account,
+ AccountDisconnectEntityParams,
+ DisconnectEntityResponse,
+ DisconnectResponse,
+ Introspection,
+} from './resources/account';
import {
Provider,
ProviderListResponse,
@@ -967,8 +973,10 @@ export declare namespace Finch {
export {
Account as Account,
+ type DisconnectEntityResponse as DisconnectEntityResponse,
type DisconnectResponse as DisconnectResponse,
type Introspection as Introspection,
+ type AccountDisconnectEntityParams as AccountDisconnectEntityParams,
};
export {
diff --git a/src/resources/account.ts b/src/resources/account.ts
index d8a6a0dc..208137fb 100644
--- a/src/resources/account.ts
+++ b/src/resources/account.ts
@@ -8,19 +8,59 @@ import { RequestOptions } from '../internal/request-options';
export class Account extends APIResource {
/**
* Disconnect one or more `access_token`s from your application.
+ *
+ * @example
+ * ```ts
+ * const disconnectResponse =
+ * await client.account.disconnect();
+ * ```
*/
disconnect(options?: RequestOptions): APIPromise {
return this._client.post('/disconnect', { ...options, __security: { bearerAuth: true } });
}
+ /**
+ * Disconnect entity(s) from a connection without affecting other entities
+ * associated with the same connection.
+ *
+ * @example
+ * ```ts
+ * const disconnectEntityResponse =
+ * await client.account.disconnectEntity({
+ * entity_ids: [
+ * '3c90c3cc-0d44-4b50-8888-8dd25736052a',
+ * '5e6f7a8b-9c10-4d11-a12b-c13d14e15f16',
+ * ],
+ * });
+ * ```
+ */
+ disconnectEntity(
+ body: AccountDisconnectEntityParams,
+ options?: RequestOptions,
+ ): APIPromise {
+ return this._client.post('/disconnect-entity', { body, ...options, __security: { bearerAuth: true } });
+ }
+
/**
* Read account information associated with an `access_token`
+ *
+ * @example
+ * ```ts
+ * const introspection = await client.account.introspect();
+ * ```
*/
introspect(options?: RequestOptions): APIPromise {
return this._client.get('/introspect', { ...options, __security: { bearerAuth: true } });
}
}
+export interface DisconnectEntityResponse {
+ /**
+ * If the request is successful, Finch will return "success" (HTTP 200 status).
+ */
+ status: string;
+}
+
export interface DisconnectResponse {
/**
* If the request is successful, Finch will return "success" (HTTP 200 status).
@@ -195,6 +235,18 @@ export namespace Introspection {
}
}
+export interface AccountDisconnectEntityParams {
+ /**
+ * Array of entity UUIDs to disconnect. At least one entity ID must be provided.
+ */
+ entity_ids: Array;
+}
+
export declare namespace Account {
- export { type DisconnectResponse as DisconnectResponse, type Introspection as Introspection };
+ export {
+ type DisconnectEntityResponse as DisconnectEntityResponse,
+ type DisconnectResponse as DisconnectResponse,
+ type Introspection as Introspection,
+ type AccountDisconnectEntityParams as AccountDisconnectEntityParams,
+ };
}
diff --git a/src/resources/hris/benefits/benefits.ts b/src/resources/hris/benefits/benefits.ts
index a07171e8..7009b3cb 100644
--- a/src/resources/hris/benefits/benefits.ts
+++ b/src/resources/hris/benefits/benefits.ts
@@ -134,6 +134,29 @@ export class Benefits extends APIResource {
__security: { bearerAuth: true },
});
}
+
+ /**
+ * Register existing benefits from the customer on the provider, on Finch's end.
+ * Please use the `/provider` endpoint to view available types for each provider.
+ *
+ * @example
+ * ```ts
+ * const registerCompanyBenefitResponse =
+ * await client.hris.benefits.register();
+ * ```
+ */
+ register(
+ params: BenefitRegisterParams | null | undefined = {},
+ options?: RequestOptions,
+ ): APIPromise {
+ const { entity_ids, ...body } = params ?? {};
+ return this._client.post('/employer/benefits/register', {
+ query: { entity_ids },
+ body,
+ ...options,
+ __security: { bearerAuth: true },
+ });
+ }
}
export type CompanyBenefitsSinglePage = SinglePage;
@@ -312,6 +335,15 @@ export interface CreateCompanyBenefitsResponse {
job_id: string;
}
+export interface RegisterCompanyBenefitResponse {
+ /**
+ * The id of the benefit.
+ */
+ benefit_id: string;
+
+ job_id: string;
+}
+
export interface SupportPerBenefitType {
company_benefits?: Shared.OperationSupportMatrix;
@@ -451,6 +483,28 @@ export interface BenefitListSupportedBenefitsParams {
entity_ids?: Array;
}
+export interface BenefitRegisterParams {
+ /**
+ * Query param: The entity IDs to specify which entities' data to access.
+ */
+ entity_ids?: Array;
+
+ /**
+ * Body param
+ */
+ description?: string;
+
+ /**
+ * Body param: The frequency of the benefit deduction/contribution.
+ */
+ frequency?: BenefitFrequency | null;
+
+ /**
+ * Body param: Type of benefit.
+ */
+ type?: BenefitType | null;
+}
+
Benefits.Individuals = Individuals;
export declare namespace Benefits {
@@ -462,6 +516,7 @@ export declare namespace Benefits {
type BenefitsSupport as BenefitsSupport,
type CompanyBenefit as CompanyBenefit,
type CreateCompanyBenefitsResponse as CreateCompanyBenefitsResponse,
+ type RegisterCompanyBenefitResponse as RegisterCompanyBenefitResponse,
type SupportPerBenefitType as SupportPerBenefitType,
type SupportedBenefit as SupportedBenefit,
type UpdateCompanyBenefitResponse as UpdateCompanyBenefitResponse,
@@ -473,6 +528,7 @@ export declare namespace Benefits {
type BenefitUpdateParams as BenefitUpdateParams,
type BenefitListParams as BenefitListParams,
type BenefitListSupportedBenefitsParams as BenefitListSupportedBenefitsParams,
+ type BenefitRegisterParams as BenefitRegisterParams,
};
export {
diff --git a/src/resources/hris/benefits/index.ts b/src/resources/hris/benefits/index.ts
index b754e6cb..2f991dce 100644
--- a/src/resources/hris/benefits/index.ts
+++ b/src/resources/hris/benefits/index.ts
@@ -9,6 +9,7 @@ export {
type BenefitsSupport,
type CompanyBenefit,
type CreateCompanyBenefitsResponse,
+ type RegisterCompanyBenefitResponse,
type SupportPerBenefitType,
type SupportedBenefit,
type UpdateCompanyBenefitResponse,
@@ -18,6 +19,7 @@ export {
type BenefitUpdateParams,
type BenefitListParams,
type BenefitListSupportedBenefitsParams,
+ type BenefitRegisterParams,
type CompanyBenefitsSinglePage,
type SupportedBenefitsSinglePage,
} from './benefits';
diff --git a/src/resources/hris/hris.ts b/src/resources/hris/hris.ts
index 4ecf085c..31a3bf43 100644
--- a/src/resources/hris/hris.ts
+++ b/src/resources/hris/hris.ts
@@ -55,6 +55,7 @@ import {
BenefitFrequency,
BenefitListParams,
BenefitListSupportedBenefitsParams,
+ BenefitRegisterParams,
BenefitRetrieveParams,
BenefitType,
BenefitUpdateParams,
@@ -64,6 +65,7 @@ import {
CompanyBenefit,
CompanyBenefitsSinglePage,
CreateCompanyBenefitsResponse,
+ RegisterCompanyBenefitResponse,
SupportPerBenefitType,
SupportedBenefit,
SupportedBenefitsSinglePage,
@@ -244,6 +246,7 @@ export declare namespace HRIS {
type BenefitsSupport as BenefitsSupport,
type CompanyBenefit as CompanyBenefit,
type CreateCompanyBenefitsResponse as CreateCompanyBenefitsResponse,
+ type RegisterCompanyBenefitResponse as RegisterCompanyBenefitResponse,
type SupportPerBenefitType as SupportPerBenefitType,
type SupportedBenefit as SupportedBenefit,
type UpdateCompanyBenefitResponse as UpdateCompanyBenefitResponse,
@@ -255,5 +258,6 @@ export declare namespace HRIS {
type BenefitUpdateParams as BenefitUpdateParams,
type BenefitListParams as BenefitListParams,
type BenefitListSupportedBenefitsParams as BenefitListSupportedBenefitsParams,
+ type BenefitRegisterParams as BenefitRegisterParams,
};
}
diff --git a/src/resources/hris/index.ts b/src/resources/hris/index.ts
index 391e5a6b..a75171e8 100644
--- a/src/resources/hris/index.ts
+++ b/src/resources/hris/index.ts
@@ -9,6 +9,7 @@ export {
type BenefitsSupport,
type CompanyBenefit,
type CreateCompanyBenefitsResponse,
+ type RegisterCompanyBenefitResponse,
type SupportPerBenefitType,
type SupportedBenefit,
type UpdateCompanyBenefitResponse,
@@ -18,6 +19,7 @@ export {
type BenefitUpdateParams,
type BenefitListParams,
type BenefitListSupportedBenefitsParams,
+ type BenefitRegisterParams,
type CompanyBenefitsSinglePage,
type SupportedBenefitsSinglePage,
} from './benefits/index';
diff --git a/src/resources/index.ts b/src/resources/index.ts
index ff93bb94..2a89a090 100644
--- a/src/resources/index.ts
+++ b/src/resources/index.ts
@@ -2,7 +2,13 @@
export * from './shared';
export { AccessTokens, type CreateAccessTokenResponse, type AccessTokenCreateParams } from './access-tokens';
-export { Account, type DisconnectResponse, type Introspection } from './account';
+export {
+ Account,
+ type DisconnectEntityResponse,
+ type DisconnectResponse,
+ type Introspection,
+ type AccountDisconnectEntityParams,
+} from './account';
export { Connect } from './connect/connect';
export { HRIS, type Income, type Location, type Money } from './hris/hris';
export { Jobs } from './jobs/jobs';
diff --git a/tests/api-resources/account.test.ts b/tests/api-resources/account.test.ts
index 2d12c264..2a9713b0 100644
--- a/tests/api-resources/account.test.ts
+++ b/tests/api-resources/account.test.ts
@@ -21,6 +21,25 @@ describe('resource account', () => {
expect(dataAndResponse.response).toBe(rawResponse);
});
+ test('disconnectEntity: only required params', async () => {
+ const responsePromise = client.account.disconnectEntity({
+ entity_ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a', '5e6f7a8b-9c10-4d11-a12b-c13d14e15f16'],
+ });
+ 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('disconnectEntity: required and optional params', async () => {
+ const response = await client.account.disconnectEntity({
+ entity_ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a', '5e6f7a8b-9c10-4d11-a12b-c13d14e15f16'],
+ });
+ });
+
test('introspect', async () => {
const responsePromise = client.account.introspect();
const rawResponse = await responsePromise.asResponse();
diff --git a/tests/api-resources/hris/benefits/benefits.test.ts b/tests/api-resources/hris/benefits/benefits.test.ts
index d1351187..1deb9863 100644
--- a/tests/api-resources/hris/benefits/benefits.test.ts
+++ b/tests/api-resources/hris/benefits/benefits.test.ts
@@ -122,4 +122,30 @@ describe('resource benefits', () => {
),
).rejects.toThrow(Finch.NotFoundError);
});
+
+ test('register', async () => {
+ const responsePromise = client.hris.benefits.register();
+ 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('register: 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.hris.benefits.register(
+ {
+ entity_ids: ['550e8400-e29b-41d4-a716-446655440000'],
+ description: 'description',
+ frequency: 'every_paycheck',
+ type: '457',
+ },
+ { path: '/_stainless_unknown_path' },
+ ),
+ ).rejects.toThrow(Finch.NotFoundError);
+ });
});
From b1eb356af5c38bc44a5deffd7227605f74eebb52 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 12 May 2026 23:13:44 +0000
Subject: [PATCH 2/2] release: 9.10.0
---
.release-please-manifest.json | 2 +-
CHANGELOG.md | 8 ++++++++
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, 14 insertions(+), 6 deletions(-)
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 7d2f3497..f943cbc2 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "9.9.0"
+ ".": "9.10.0"
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 72fe78b3..40c26fc8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changelog
+## 9.10.0 (2026-05-12)
+
+Full Changelog: [v9.9.0...v9.10.0](https://github.com/Finch-API/finch-api-node/compare/v9.9.0...v9.10.0)
+
+### Features
+
+* **api:** add register benefits method ([4720df6](https://github.com/Finch-API/finch-api-node/commit/4720df6f2050e3c9c2aeea2c73e1d22e175d523a))
+
## 9.9.0 (2026-05-12)
Full Changelog: [v9.8.0...v9.9.0](https://github.com/Finch-API/finch-api-node/compare/v9.8.0...v9.9.0)
diff --git a/package.json b/package.json
index aba18379..0b83f94a 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@tryfinch/finch-api",
- "version": "9.9.0",
+ "version": "9.10.0",
"description": "The official TypeScript library for the Finch API",
"author": "Finch ",
"types": "dist/index.d.ts",
diff --git a/packages/mcp-server/manifest.json b/packages/mcp-server/manifest.json
index b2fc22c9..407440f7 100644
--- a/packages/mcp-server/manifest.json
+++ b/packages/mcp-server/manifest.json
@@ -1,7 +1,7 @@
{
"dxt_version": "0.2",
"name": "@tryfinch/finch-api-mcp",
- "version": "9.9.0",
+ "version": "9.10.0",
"description": "The official MCP Server for the Finch API",
"author": {
"name": "Finch",
diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json
index 16216dfc..431450fe 100644
--- a/packages/mcp-server/package.json
+++ b/packages/mcp-server/package.json
@@ -1,6 +1,6 @@
{
"name": "@tryfinch/finch-api-mcp",
- "version": "9.9.0",
+ "version": "9.10.0",
"description": "The official MCP Server for the Finch API",
"author": "Finch ",
"types": "dist/index.d.ts",
diff --git a/packages/mcp-server/src/server.ts b/packages/mcp-server/src/server.ts
index 385e5a73..fd342bf1 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: 'tryfinch_finch_api_api',
- version: '9.9.0',
+ version: '9.10.0',
},
{
instructions: await getInstructions({ stainlessApiKey, customInstructionsPath }),
diff --git a/src/version.ts b/src/version.ts
index 5baeb8b9..1a95e1ff 100644
--- a/src/version.ts
+++ b/src/version.ts
@@ -1 +1 @@
-export const VERSION = '9.9.0'; // x-release-please-version
+export const VERSION = '9.10.0'; // x-release-please-version