JSPM

  • Created
  • Published
  • Downloads 857
  • Score
    100M100P100Q112148F
  • 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