JSPM

  • Created
  • Published
  • Downloads 836
  • Score
    100M100P100Q112178F
  • License MIT

TypeScript SDK for Oppulence Stripe Sync Engine

Package Exports

  • @oppulence/stripe-sync-engine-sdk

Readme

Oppulence Stripe Sync SDK for TypeScript

TypeScript/JavaScript SDK for interacting with the Oppulence Stripe Sync Engine API.

Installation

npm install @oppulence/stripe-sync-engine-sdk

or with yarn:

yarn add @oppulence/stripe-sync-engine-sdk

or with pnpm:

pnpm add @oppulence/stripe-sync-engine-sdk

Usage

Basic Setup

import { Configuration, TenantsApi, SyncApi } from '@oppulence/stripe-sync-engine-sdk';

// Configure the SDK with your API credentials
const config = new Configuration({
  basePath: 'https://your-sync-engine.example.com',
  headers: {
    'x-api-key': 'your-api-key-here'
  }
});

// Initialize API clients
const tenantsApi = new TenantsApi(config);
const syncApi = new SyncApi(config);

Create a Tenant

const createTenantResponse = await tenantsApi.createTenant({
  createTenantRequest: {
    tenantId: 'customer-123',
    stripeSecretKey: 'sk_test_...',
    // optional fields
    webhookSecret: 'whsec_...',
    metadata: { customerId: '123' }
  }
});

console.log('Tenant created:', createTenantResponse);

Trigger a Sync

const syncResponse = await syncApi.syncTenant({
  tenantId: 'customer-123'
});

console.log('Sync initiated:', syncResponse);

List Tenants

const tenants = await tenantsApi.listTenants({
  limit: 100,
  offset: 0
});

console.log('Tenants:', tenants.data);

Get Tenant Health

const health = await tenantsApi.getTenantHealth({
  tenantId: 'customer-123'
});

console.log('Tenant health:', health);

Trigger Backfill

const backfillResponse = await syncApi.syncBackfill({
  tenantId: 'customer-123',
  syncBackfillRequest: {
    entities: ['customer', 'subscription', 'invoice'],
    startDate: '2024-01-01',
    endDate: '2024-12-31'
  }
});

console.log('Backfill initiated:', backfillResponse);

API Reference

Available APIs

  • TenantsApi: Manage tenants (create, update, list, delete)
  • SyncApi: Trigger sync operations
  • HealthApi: Check API and tenant health status
  • WebhooksApi: Process webhooks

Configuration Options

const config = new Configuration({
  basePath: 'https://api.example.com',    // API base URL
  headers: {
    'x-api-key': 'your-api-key',          // API key for authentication
    'Content-Type': 'application/json'
  },
  fetchApi: fetch,                         // Optional: custom fetch implementation
});

Error Handling

try {
  const response = await tenantsApi.createTenant({
    createTenantRequest: { /* ... */ }
  });
} catch (error) {
  if (error instanceof Response) {
    const errorData = await error.json();
    console.error('API Error:', errorData);
  } else {
    console.error('Unexpected error:', error);
  }
}

TypeScript Support

This SDK is written in TypeScript and provides full type definitions out of the box. All request and response types are exported and can be imported:

import type {
  CreateTenantRequest,
  CreateTenant201Response,
  ListTenants200Response,
  SyncBackfillRequest
} from '@oppulence/stripe-sync-engine-sdk';

Development

Building

npm run build

Publishing

This SDK is automatically published to npm when a new release is created. See the main repository documentation for release procedures.

Support

For issues and questions, please visit:

License

MIT