Skip to main content

Frameworks

SvelteKit — Scell.io integration

+server.ts route + form actions

The `@scell/sdk` v3.5.0 SDK integrates with SvelteKit via `+server.ts` routes or form actions in `+page.server.ts`. The `sk_*` key stays server-side via `$env/static/private`. For client widgets (signature, onboarding), use only `pk_*` via `$env/static/public`. Compatible with Svelte 5 (runes) and SvelteKit 2.

Key facts

  • Routes `+server.ts` or `+page.server.ts` form actions
  • `$env/static/private` for `SCELL_API_KEY`
  • `$env/static/public` for `PUBLIC_SCELL_PK`
  • Type-safe with `RequestHandler` from `@sveltejs/kit`
  • Compatible with Svelte 5 + SvelteKit 2

Code example

// src/routes/api/invoices/+server.ts
import { json } from '@sveltejs/kit';
import { SCELL_API_KEY } from '$env/static/private';
import { ScellClient } from '@scell/sdk';
import type { RequestHandler } from './$types';

const scell = new ScellClient({ apiKey: SCELL_API_KEY });

export const POST: RequestHandler = async ({ request }) => {
  const { buyer, amount } = await request.json();
  const invoice = await scell.invoices.create({
    format: 'factur-x',
    buyer: { name: buyer, is_individual: true },
    lines: [{ description: 'Service', quantity: 1, unit_price: amount, vat_rate: 20.0 }],
  });
  return json({ id: invoice.id });
};

See also

Your cookie preferences

We use cookies to improve your experience. Essential cookies are always active. Cookie policy.