From f6bba529102fa6e593c84ae6b9ae43184e535224 Mon Sep 17 00:00:00 2001 From: Francis Terrero Date: Fri, 13 Mar 2026 00:05:37 -0400 Subject: [PATCH 1/2] feat: add referral token creation and metadata support for customer payments - Added createReferralToken method and ReferralTokenResponse type in referrals module - Added metadata field to CreateCustomerPayload in payments --- package.json | 2 +- src/drive/referrals/index.ts | 9 ++++++++- src/drive/referrals/types.ts | 4 ++++ src/payments/checkout.ts | 2 ++ src/payments/types/index.ts | 1 + 5 files changed, 16 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 2d8bad95..a2ca0aec 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@internxt/sdk", "author": "Internxt ", - "version": "1.15.2", + "version": "1.15.3", "description": "An sdk for interacting with Internxt's services", "repository": { "type": "git", diff --git a/src/drive/referrals/index.ts b/src/drive/referrals/index.ts index 8c997c42..12841bfa 100644 --- a/src/drive/referrals/index.ts +++ b/src/drive/referrals/index.ts @@ -1,6 +1,6 @@ import { headersWithToken } from '../../shared/headers'; import { ApiSecurity, ApiUrl, AppDetails } from '../../shared'; -import { UserReferral } from './types'; +import { ReferralTokenResponse, UserReferral } from './types'; import { HttpClient } from '../../shared/http/client'; export * as ReferralTypes from './types'; @@ -27,6 +27,13 @@ export class Referrals { return this.client.get('/users-referrals', this.headers()); } + /** + * Generates a referral token for the authenticated user + */ + public createReferralToken(): Promise { + return this.client.post('/referral/token', {}, this.headers()); + } + /** * Returns the needed headers for the module requests * @private diff --git a/src/drive/referrals/types.ts b/src/drive/referrals/types.ts index c27ea2fc..33c744a7 100644 --- a/src/drive/referrals/types.ts +++ b/src/drive/referrals/types.ts @@ -21,3 +21,7 @@ export interface UserReferral { credit: number; type: ReferralType; } + +export interface ReferralTokenResponse { + token: string; +} diff --git a/src/payments/checkout.ts b/src/payments/checkout.ts index 8e6867e3..0d3f665c 100644 --- a/src/payments/checkout.ts +++ b/src/payments/checkout.ts @@ -49,6 +49,7 @@ export class Checkout { country, captchaToken, companyVatId, + metadata, }: CreateCustomerPayload): Promise<{ customerId: string; token: string; @@ -64,6 +65,7 @@ export class Checkout { postalCode, captchaToken, companyVatId, + metadata, }, this.authHeaders(), ); diff --git a/src/payments/types/index.ts b/src/payments/types/index.ts index d6f40f4e..d97933b9 100644 --- a/src/payments/types/index.ts +++ b/src/payments/types/index.ts @@ -9,6 +9,7 @@ export interface CreateCustomerPayload { postalCode: string; captchaToken: string; companyVatId?: string; + metadata?: Record; } export interface CreateSubscriptionPayload { From e52d3068e8322515e5672ca296724ccabd54a633 Mon Sep 17 00:00:00 2001 From: Francis Terrero Date: Fri, 13 Mar 2026 02:20:02 -0400 Subject: [PATCH 2/2] docs: add metadata param to createCustomer JSDoc --- src/payments/checkout.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/payments/checkout.ts b/src/payments/checkout.ts index 0d3f665c..47eb53ad 100644 --- a/src/payments/checkout.ts +++ b/src/payments/checkout.ts @@ -38,6 +38,7 @@ export class Checkout { * @param postalCode - The postal code of the customer * @param captchaToken - The captcha token to verify the call * @param companyVatId - The VAT ID of the company (optional) + * @param metadata - Additional metadata to attach to the customer (optional) * @returns The customer ID and the user token used to create a subscription or payment intent */ public createCustomer({