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 });
};