Skip to main content

API Reference

KwickBit SDK

Constructor

new KwickBit(apiKey: string, options?: KwickBitOptions)

Parameters:

  • apiKey (string, required): Your KwickBit API key, taken from the KwickBit dashboard
  • options (object, optional): Configuration options
    • baseUrl (string, optional): Custom API base URL (defaults to https://api.kwickbit.com)

Example:

const kwickbit = new KwickBit('your-api-key-here', {
baseUrl: 'https://api-staging.kwickbit.com'
});

createCheckoutSession

Creates a new checkout session for payment processing.

Method Signature

public async createCheckoutSession(options: CreateCheckoutSessionOptions): Promise<CheckoutSessionResponse>

Parameters

CreateCheckoutSessionOptions

ParameterTypeRequiredDescription
dynamicLinkIdstringYesUUID for the dynamic link
itemsLineItem[]YesArray of items to purchase
collectEmailbooleanNoWhether to collect customer email (default: true)
collectBillingAddressbooleanNoWhether to collect billing address (default: true)

LineItem

PropertyTypeRequiredDescription
namestringYesProduct name
pricenumberYesUnit price (minimum: 0)
quantitynumberYesQuantity (minimum: 1)
currencystringYesCurrency code (3 characters, e.g., "USD")
image_urlstringNoProduct image URL

Return Value

CheckoutSessionResponse

{
checkoutSessionId: string;
checkoutSessionUrl: string;
}
PropertyTypeDescription
checkoutSessionIdstringUnique identifier for the checkout session
checkoutSessionUrlstringURL where customers complete payment

Example Usage

import { KwickBit, LineItem } from '@kwickbit/sdk';

const kwickbit = new KwickBit('your-api-key');

const items: LineItem[] = [
{
name: 'Premium Subscription',
price: 29.99,
quantity: 1,
currency: 'USD',
image_url: 'https://example.com/product.jpg'
},
{
name: 'Add-on Service',
price: 9.99,
quantity: 2,
currency: 'USD'
}
];

try {
const session = await kwickbit.createCheckoutSession({
dynamicLinkId: '550e8400-e29b-41d4-a716-446655440000',
items,
collectEmail: true,
collectBillingAddress: false,
});

console.log('Checkout URL:', session.checkoutSessionUrl);
console.log('Session ID:', session.checkoutSessionId);
} catch (error) {
console.error('Failed to create checkout session:', error.message);
}

Error Handling

The method throws an Error with descriptive messages for various failure scenarios:

try {
const session = await kwickbit.createCheckoutSession(options);
} catch (error) {
if (error.message.includes('401')) {
console.error('Invalid API key');
} else if (error.message.includes('400')) {
console.error('Invalid request parameters');
} else if (error.message.includes('500')) {
console.error('Server error');
} else {
console.error('Network or other error:', error.message);
}
}

Common Error Scenarios

HTTP StatusDescriptionCommon Causes
401UnauthorizedInvalid or missing API key
400Bad RequestInvalid parameters (e.g., missing required fields, invalid UUID)
422Validation ErrorInvalid item data (negative prices, invalid currency codes)
500Server ErrorInternal server error

Validation Rules

  • dynamicLinkId must be a valid UUID format
  • items array cannot be empty
  • Each item must have valid name, price, quantity, and currency
  • price must be non-negative
  • quantity must be at least 1
  • currency must be exactly 3 characters
  • image_url (if provided) must be a valid URL format