Skip to content
Merged
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "method-node",
"version": "1.2.6",
"version": "2.0.0",
"description": "Node.js library for the Method API",
"main": "dist/index.ts",
"module": "dist/index.mjs",
Expand Down
7 changes: 6 additions & 1 deletion src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,13 @@ export { Method as MethodClient } from './method';
export * from './errors';
export * from './configuration';
export {
ResourceStatus, type TResourceStatus, type IResourceListOpts, type IResourceError,
ResourceStatus,
type TResourceStatus,
type IResourceListOpts,
type IResourceError,
} from './resource';
export * from './resources/Account';
export * from './resources/CardProduct';
export * from './resources/Element';
export * from './resources/Entity';
export * from './resources/Event';
Expand All @@ -14,3 +18,4 @@ export * from './resources/Payment';
export * from './resources/Report';
export * from './resources/Simulate';
export * from './resources/Webhook';
export * from './resources/Opal';
6 changes: 6 additions & 0 deletions src/method.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import Configuration, { IConfigurationOpts, IResponse } from './configuration';
import Account from './resources/Account';
import CardProduct from './resources/CardProduct';
import Element from './resources/Element';
import Entity from './resources/Entity';
import Event from './resources/Event';
Expand All @@ -9,9 +10,11 @@ import Report from './resources/Report';
import Webhook from './resources/Webhook';
import HealthCheck, { IPingResponse } from './resources/HealthCheck';
import Simulate from './resources/Simulate';
import Opal from './resources/Opal';

export class Method {
accounts: Account;
cardProducts: CardProduct;
elements: Element;
events: Event;
entities: Entity;
Expand All @@ -21,12 +24,14 @@ export class Method {
webhooks: Webhook;
healthcheck: HealthCheck;
simulate: Simulate;
opal: Opal;

constructor(opts: IConfigurationOpts) {
const config = new Configuration(opts);

// Resources
this.accounts = new Account(config);
this.cardProducts = new CardProduct(config);
this.elements = new Element(config);
this.events = new Event(config);
this.entities = new Entity(config);
Expand All @@ -36,6 +41,7 @@ export class Method {
this.webhooks = new Webhook(config);
this.healthcheck = new HealthCheck(config);
this.simulate = new Simulate(config);
this.opal = new Opal(config);
}

public async ping(): Promise<IResponse<IPingResponse>> {
Expand Down
16 changes: 11 additions & 5 deletions src/resource.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,22 @@ import { EntitySubResources } from './resources/Entity';
import { SimulateAccountsSubResources } from './resources/Simulate/Accounts';
import { SimulateEntitiesSubResources } from './resources/Simulate/Entities';
import { SimulateCreditScoresInstance } from './resources/Simulate/Entities/CreditScores';
import { SimulateConnectInstance } from './resources/Simulate/Entities/Connect';
import { SimulateAttributesInstance } from './resources/Simulate/Entities/Attributes';

type TSubResources =
| AccountSubResources
| PaymentSubResources
| EntitySubResources
| SimulateAccountsSubResources
| SimulateEntitiesSubResources
| SimulateCreditScoresInstance;
| SimulateCreditScoresInstance
| SimulateConnectInstance
| SimulateAttributesInstance;

export interface IRequestConfig {
idempotency_key?: string;
prefer?: string;
}

class ExtensibleFunction extends Function {
Expand All @@ -43,7 +48,7 @@ export default class Resource extends ExtensibleFunction {
headers: {
Authorization: `Bearer ${config.apiKey}`,
'User-Agent': this.getDefaultUserAgent(),
'method-version': '2024-04-04',
'method-version': '2025-07-04',
},
httpsAgent: config.httpsAgent,
});
Expand Down Expand Up @@ -212,9 +217,10 @@ export default class Resource extends ExtensibleFunction {
requestConfig: IRequestConfig = {},
): Promise<Response> {
const _requestConfig = {
headers: requestConfig.idempotency_key
? { 'Idempotency-Key': requestConfig.idempotency_key }
: {},
headers: {
...(requestConfig.idempotency_key ? { 'Idempotency-Key': requestConfig.idempotency_key } : {}),
...(requestConfig.prefer ? { 'Prefer': requestConfig.prefer } : {}),
},
params,
};

Expand Down
3 changes: 3 additions & 0 deletions src/resources/Account/Attributes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export default class AccountAttributes extends Resource {

/**
* Retrieves an Attributes record for an Account.
* https://docs.methodfi.com/reference/accounts/attributes/retrieve
*
* @param acc_attr_id ID of the Attribute
* @returns Returns an Account’s Attribute object.
Expand All @@ -20,6 +21,7 @@ export default class AccountAttributes extends Resource {

/**
* Retrieves a list of Attributes objects for an account.
* https://docs.methodfi.com/reference/accounts/attributes/list
*
* @returns Returns a list of Attributes objects.
*/
Expand All @@ -30,6 +32,7 @@ export default class AccountAttributes extends Resource {

/**
* Creates a new Attributes request to retrieve the Account’s attributes.
* https://docs.methodfi.com/reference/accounts/attributes/create
*
* @returns Returns an Account’s Attributes object.
*/
Expand Down
3 changes: 3 additions & 0 deletions src/resources/Account/Balances.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export default class AccountBalances extends Resource {

/**
* Retrieve a Balance record for an Account.
* https://docs.methodfi.com/reference/accounts/balances/retrieve
*
* @param bal_id ID of the balance
* @returns Returns a Balance object.
Expand All @@ -20,6 +21,7 @@ export default class AccountBalances extends Resource {

/**
* Retrieves a list of Balance objects for an account.
* https://docs.methodfi.com/reference/accounts/balances/list
*
* @returns Returns a list of Balances.
*/
Expand All @@ -30,6 +32,7 @@ export default class AccountBalances extends Resource {

/**
* Creates a new Balance request to retrieve the Account’s balance from the financial institution.
* https://docs.methodfi.com/reference/accounts/balances/create
*
* @returns Returns a Balance object.
*/
Expand Down
3 changes: 3 additions & 0 deletions src/resources/Account/CardBrands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export default class AccountCardBrand extends Resource {

/**
* Retrieves a Card Brand object.
* https://docs.methodfi.com/reference/accounts/card-brands/retrieve
*
* @param cbrd_id ID of the Card
* @returns Returns a Card object.
Expand All @@ -20,6 +21,7 @@ export default class AccountCardBrand extends Resource {

/**
* Retrieves a list of CardBrand objects for an account.
* https://docs.methodfi.com/reference/accounts/card-brands/list
*
* @returns Returns a list of CardBrand objects.
*/
Expand All @@ -30,6 +32,7 @@ export default class AccountCardBrand extends Resource {

/**
* Creates a new CardBrand request to retrieve the Account’s card brand.
* https://docs.methodfi.com/reference/accounts/card-brands/create
*
* @returns Returns a Card object.
*/
Expand Down
3 changes: 3 additions & 0 deletions src/resources/Account/PaymentInstruments.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export default class AccountPaymentInstruments extends Resource {

/**
* Retrieves a Payment Instrument record for an Account.
* https://docs.methodfi.com/reference/accounts/payment-instruments/retrieve
*
* @param pmt_inst_id ID of the Payment Instrument
* @returns Returns an Account’s Payment Instrument object.
Expand All @@ -20,6 +21,7 @@ export default class AccountPaymentInstruments extends Resource {

/**
* Retrieves a list of Payment Instrument objects for an account.
* https://docs.methodfi.com/reference/accounts/payment-instruments/list
*
* @returns Returns a list of Payment Instrument objects.
*/
Expand All @@ -30,6 +32,7 @@ export default class AccountPaymentInstruments extends Resource {

/**
* Creates a new Payment Instrument request to retrieve the Account’s payment instruments.
* https://docs.methodfi.com/reference/accounts/payment-instruments/create
*
* @returns Returns an Account’s Payment Instrument object.
*/
Expand Down
3 changes: 3 additions & 0 deletions src/resources/Account/Payoffs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export default class AccountPayoffs extends Resource {

/**
* Retrieve a Payoff record for an Account.
* https://docs.methodfi.com/reference/accounts/payoffs/retrieve
*
* @param pyf_id ID of the payoff
* @returns Returns a Payoff object.
Expand All @@ -20,6 +21,7 @@ export default class AccountPayoffs extends Resource {

/**
* Retrieves a list of Payoff requests for a specific account.
* https://docs.methodfi.com/reference/accounts/payoffs/list
*
* @returns Returns a list of Payoffs.
*/
Expand All @@ -30,6 +32,7 @@ export default class AccountPayoffs extends Resource {

/**
* Creates a new Payoff request to retrieve a payoff quote from the Account’s financial institution / lender.
* https://docs.methodfi.com/reference/accounts/payoffs/create
*
* @returns Returns a Payoff object.
*/
Expand Down
14 changes: 2 additions & 12 deletions src/resources/Account/Products.ts
Original file line number Diff line number Diff line change
@@ -1,25 +1,15 @@
import Resource from '../../resource';
import Configuration, { IResponse } from '../../configuration';
import type { IAccountProduct, IAccountProductListResponse } from './types';
import type { IAccountProductListResponse } from './types';

export default class AccountProducts extends Resource {
constructor(config: Configuration) {
super(config.addPath('products'));
}

/**
* Retrieve an account's product.
*
* @param prd_id ID of the product.
* @returns Returns a Product object.
*/

async retrieve(prd_id: string) {
return super._getWithId<IResponse<IAccountProduct>>(prd_id);
}

/**
* Retrieve an account's product list.
* https://docs.methodfi.com/reference/accounts/products/list
*
* @returns Returns a map of Product names to Product objects for an Account.
*/
Expand Down
3 changes: 3 additions & 0 deletions src/resources/Account/Sensitive.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export default class AccountSensitive extends Resource {

/**
* Retrieve a Sensitive record for an Account.
* https://docs.methodfi.com/reference/accounts/sensitive/retrieve
*
* @param astv_id ID of the Sensitive object
* @returns A Sensitive object
Expand All @@ -20,6 +21,7 @@ export default class AccountSensitive extends Resource {

/**
* Retrieves a list of Sensitive objects for an account.
* https://docs.methodfi.com/reference/accounts/sensitive/list
*
* @returns Returns a list of Sensitive objects.
*/
Expand All @@ -30,6 +32,7 @@ export default class AccountSensitive extends Resource {

/**
* Creates a new Sensitive request to retrieve sensitive Account information.
* https://docs.methodfi.com/reference/accounts/sensitive/create
*
* @param data Sensitive fields to expand in the response.
* @returns A Sensitive object
Expand Down
6 changes: 5 additions & 1 deletion src/resources/Account/Subscriptions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ export default class AccountSubscriptions extends Resource {

/**
* Retrieves a Subscription record for an Account.
* https://docs.methodfi.com/reference/accounts/subscriptions/retrieve
*
* @param sub_id ID of the Subscription
* @returns IAccountSubscription
Expand All @@ -25,6 +26,7 @@ export default class AccountSubscriptions extends Resource {

/**
* Returns a map of Subscriptions names to Subscription objects associated with an Account, or an empty array if none have been created.
* https://docs.methodfi.com/reference/accounts/subscriptions/list
*
* @returns Returns a map of Subscription names to Subscription objects.
*/
Expand All @@ -35,10 +37,11 @@ export default class AccountSubscriptions extends Resource {

/**
* Enrolls an Account to a Subscription. Once enrolled, the Subscription name and details will be present on the response object.
* https://docs.methodfi.com/reference/accounts/subscriptions/create
*
* Note: Subscription requests are processed individually, meaning the success or failure of one subscription does not affect others. The response object will detail any errors encountered.
*
* @param data IAccountSubscriptionCreateOpts: https://docs-v2.methodfi.com/reference/accounts/subscriptions/create
* @param data IAccountSubscriptionCreateOpts
* @returns Returns a map of Subscription name to Subscription object.
*/

Expand All @@ -50,6 +53,7 @@ export default class AccountSubscriptions extends Resource {

/**
* Deleting a Subscription means to unsubscribe or unenroll an Account from automatically receiving new Product resources.
* https://docs.methodfi.com/reference/accounts/subscriptions/delete
*
* @param sub_id ID of the Subscription
* @returns Returns a Subscription object.
Expand Down
2 changes: 2 additions & 0 deletions src/resources/Account/Transactions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export default class AccountTransactions extends Resource {

/**
* Retrieve a Transaction object for an Account.
* https://docs.methodfi.com/reference/accounts/transactions/retrieve
*
* @param txn_id ID of the transaction
* @returns Returns a Transaction object.
Expand All @@ -20,6 +21,7 @@ export default class AccountTransactions extends Resource {

/**
* Retrieve a list of Transactions objects for a specific Account.
* https://docs.methodfi.com/reference/accounts/transactions/list
*
* @returns Returns a list of transactions for the account.
*/
Expand Down
3 changes: 3 additions & 0 deletions src/resources/Account/Updates.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export default class AccountUpdates extends Resource {

/**
* Retrieve an Update object by its ID.
* https://docs.methodfi.com/reference/accounts/updates/retrieve
*
* @param upt_id ID of the Update
* @returns Returns an Update object.
Expand All @@ -20,6 +21,7 @@ export default class AccountUpdates extends Resource {

/**
* Retrieve a list of Updates for a specific Account.
* https://docs.methodfi.com/reference/accounts/updates/list
*
* @returns Returns a list of Updates.
*/
Expand All @@ -30,6 +32,7 @@ export default class AccountUpdates extends Resource {

/**
* Creates a new Update for a liability Account.
* https://docs.methodfi.com/reference/accounts/updates/create
*
* @returns Returns an Update object.
*/
Expand Down
Loading