npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@wf-financing/headless-sdk

v5.0.2

Published

Wayflyer provides a `@wf-financing/headless-sdk` package that can be used as a client-side headless SDK to interact with the Embedded Finance API.

Readme

Wayflyer Financing Headless SDK

Wayflyer provides a @wf-financing/headless-sdk package that can be used as a client-side headless SDK to interact with the Embedded Finance API.

Installation

Install the package directly from NPM with npm install @wf-financing/headless-sdk.
To minimize bundle size and reduce the impact on partners' page load times, the SDK uses dynamic imports to load the main functionality.

Instantiation

Initialize the Wayflyer headless SDK by passing the companyToken and an optional options object with a type of HeadlessSdkOptions that specifies additional functionality of SDK instance - e.g. consuming sandbox API instead of the production.

import { WayflyerHeadlessSdk, HeadlessSdkOptions } from '@wf-financing/headless-sdk';

// instantiation in production mode
const wayflyerHeadlessSdk = await WayflyerHeadlessSdk.loadSdk(companyToken);

// instantiation in sandbox mode, `options` type of HeadlessSdkOptions
const options: HeadlessSdkOptions = { isSandbox: true };
const wayflyerHeadlessSdk = await WayflyerHeadlessSdk.loadSdk(companyToken, options);

Note: The companyToken should be minted using the Company Token endpoint on the partner's backend. See the Authentication section here for more details.

SDK methods

CTA

getCta()

Returns the configuration for the CTA to show to the user.

import type { BannerResponse } from '@wf-financing/headless-sdk';

const cta: BannerResponse | null = await wayflyerSdk.getCta();

dismissCta()

Dismiss CTA for current combination of company and user.

await wayflyerSdk.dismissCta();

Hosted application

startHostedApplication(applicationRequest)

Returns a URL to the Wayflyer landing page after the user has given consent for sharing personal data.

import type { StartHostedApplicationRequest, StartHostedApplicationResponse } from '@wf-financing/headless-sdk';

const merchantData: StartHostedApplicationRequest = {
  company_data: {},
  user_data: {},
  partner_data: {},
};

const startHostedApplication: StartHostedApplicationResponse =
  await wayflyerSdk.startHostedApplication(merchantData);

continueHostedApplication()

Returns a URL to the Wayflyer landing page after the submission of the merchant funding application.

import type { ContinueHostedApplicationResponse } from '@wf-financing/headless-sdk';

const continueHosted: ContinueHostedApplicationResponse = await wayflyerSdk.continueHostedApplication();

Embedded application

startEmbeddedApplication()

Start an embedded application for the company. Returns the application status including an optional application ID and a list of required detail statuses.

import type { EmbeddedApplicationStatusResponse } from '@wf-financing/headless-sdk';

const status: EmbeddedApplicationStatusResponse = await wayflyerSdk.startEmbeddedApplication();

submitEmbeddedApplication()

Submit the open embedded application for the authenticated company. Once submitted, some details can no longer be edited.

await wayflyerSdk.submitEmbeddedApplication();

handover()

Returns a URL to redirect the user to the Wayflyer app after completing the embedded application.

import type { HandoverResponse } from '@wf-financing/headless-sdk';

const handover: HandoverResponse = await wayflyerSdk.handover();
window.location.href = handover.url;

User details

getUserDetails()

Get user details for the authenticated user.

import type { UserDetailsResponse } from '@wf-financing/headless-sdk';

const userDetails: UserDetailsResponse = await wayflyerSdk.getUserDetails();

updateUserDetails(payload)

Update user details for the authenticated user. User details can only be updated a limited number of times and cannot be updated after an application is submitted.

import type { UserDetailsRequest, UserDetailsResponse } from '@wf-financing/headless-sdk';

const payload: UserDetailsRequest = {
  email: '[email protected]',
  phone_number: '+353861234567',
};

const updated: UserDetailsResponse = await wayflyerSdk.updateUserDetails(payload);

Company details

getCompanyDetails()

Get company details for the authenticated company.

import type { CompanyDetailsResponse } from '@wf-financing/headless-sdk';

const companyDetails: CompanyDetailsResponse = await wayflyerSdk.getCompanyDetails();

updateCompanyDetails(payload)

Replace company details for the authenticated company. Company details can only be updated a limited number of times and cannot be updated after an application is submitted.

import type { CompanyDetailsRequest, CompanyDetailsResponse } from '@wf-financing/headless-sdk';

const updated: CompanyDetailsResponse = await wayflyerSdk.updateCompanyDetails(payload);

searchCompanyRegistrationDetails(payload)

Search for company registration details by business name and country. Returns a list of matching company registration results.

import type { CompanyDetailsSearchRequest, CompanyDetailsSearchResponse } from '@wf-financing/headless-sdk';

const searchRequest: CompanyDetailsSearchRequest = {
  business_name: 'Acme',
  country: 'IE',
};

const results: CompanyDetailsSearchResponse = await wayflyerSdk.searchCompanyRegistrationDetails(searchRequest);

Business classification

searchIndustryClassifications(payload)

Search for industry classifications by query string. Returns a list of matching industries sorted by relevance.

import type { IndustrySearchParams, IndustrySearchResultResponse } from '@wf-financing/headless-sdk';

const params: IndustrySearchParams = { query: 'software' };

const results: IndustrySearchResultResponse[] = await wayflyerSdk.searchIndustryClassifications(params);

searchBusinessType()

Returns the list of business types available for company classification.

import type { BusinessType } from '@wf-financing/headless-sdk';

const businessTypes: BusinessType[] = await wayflyerSdk.searchBusinessType();

searchEligibleBusinessModel(payload)

Validates the selected customer segments, sales channels, and product offerings for the given country and returns which combinations are eligible.

import type { DetermineBusinessModelsRequest, DetermineBusinessModelsResponse } from '@wf-financing/headless-sdk';

const response: DetermineBusinessModelsResponse = await wayflyerSdk.searchEligibleBusinessModel(payload);

Document uploads

createDocumentUpload(payload)

Request a presigned URL for uploading a document. The client must POST the file to the returned URL as multipart/form-data including the returned fields, then call confirmDocumentUpload with the returned id.

import type { CreateDocumentUploadRequest, CreateDocumentUploadResponse } from '@wf-financing/headless-sdk';

const request: CreateDocumentUploadRequest = {
  file_name: 'registration.pdf',
  file_type: 'application/pdf',
  file_size: 102400,
};

const upload: CreateDocumentUploadResponse = await wayflyerSdk.createDocumentUpload(request);

confirmDocumentUpload(documentId)

Mark a document as successfully uploaded. Must be called after the file has been uploaded to the URL returned by createDocumentUpload.

import type { DocumentUploadResponse } from '@wf-financing/headless-sdk';

const confirmed: DocumentUploadResponse = await wayflyerSdk.confirmDocumentUpload(documentId);

deleteDocumentUpload(documentId)

Remove a document. Documents attached to a submitted application cannot be deleted.

await wayflyerSdk.deleteDocumentUpload(documentId);

listDocumentUploads()

Returns confirmed and unconfirmed documents for the authenticated company.

import type { DocumentUploadResponse } from '@wf-financing/headless-sdk';

const documents: DocumentUploadResponse[] = await wayflyerSdk.listDocumentUploads();

Sandbox

To simplify the testing process, the SDK can be initialized in sandbox mode. To do so, pass the second argument of type HeadlessSdkOptions with isSandbox flag set to true. In sandbox mode, the partner can simulate responses for SDK methods with the help of additional package @wf-financing/sandbox-ui.

import { WayflyerHeadlessSdk, HeadlessSdkOptions } from '@wf-financing/headless-sdk';

const options: HeadlessSdkOptions = { isSandbox: true };
const wayflyerSdk = await WayflyerHeadlessSdk.loadSdk(companyToken, options);

Next Steps

For further details on using the SDK, troubleshooting, or expanding on these examples, check out our full documentation.