Aller au contenu principal

Frameworks

Next.js 16 — Intégration Scell.io

Server Actions + @scell/sdk côté serveur uniquement

Le SDK `@scell/sdk` v3.5.0 s'utilise dans Next.js 16 via les Server Actions ('use server') ou les Route Handlers (`/app/api/*/route.ts`). Important : NE JAMAIS exposer la clé `sk_*` côté client (pas de `NEXT_PUBLIC_`). Pour widgets côté client, utiliser uniquement la `pk_*` (publishable key). Compatible avec Cache Components et Turbopack.

À retenir

  • Server Actions avec `'use server'` directive
  • JAMAIS de `NEXT_PUBLIC_SCELL_API_KEY` (secret leak)
  • Route Handlers : `/app/api/invoices/route.ts`
  • Import `'server-only'` pour bloquer côté client
  • Compatible Next.js 16, App Router, Cache Components

Exemple de code

// app/actions/create-invoice.ts
'use server';
import 'server-only';
import { ScellClient } from '@scell/sdk';
import { revalidatePath } from 'next/cache';

const scell = new ScellClient({ apiKey: process.env.SCELL_API_KEY! });

export async function createInvoiceAction(formData: FormData) {
  const invoice = await scell.invoices.create({
    format: 'factur-x',
    buyer: { name: formData.get('buyer') as string, is_individual: true },
    lines: [{ description: 'Service', quantity: 1, unit_price: Number(formData.get('amount')), vat_rate: 20.0 }],
  });
  revalidatePath('/invoices');
  return { id: invoice.id };
}

Voir aussi

Vos préférences cookies

Nous utilisons des cookies pour améliorer votre expérience. Les cookies essentiels sont toujours actifs. Politique cookies.