Merch firmowy w innych krajach:AMArmeniaGEGeorgiaTRTürkiyeRSSerbiaAEUAECYCyprusITItalyPTPortugalESSpain

SDK Node.js dla Polski

@corp-merch/sdk — TypeScript-first, zero zależności, działa na Node 18+, Bun, Deno, Vercel i AWS Lambda.

Instalacja i init

npm install @corp-merch/sdk. Inicjalizacja: const cm = new CorpMerch({ apiKey: process.env.CM_KEY, country: 'PL', env: 'production' }). Klient autoload VAT 23% i kieruje faktury przez KSeF; hub Warszawa domyślnie.

Quickstart — złóż zamówienie

const order = await cm.orders.create({ idempotencyKey: crypto.randomUUID(), buyer: { vatId: 'PL…' }, lines: [{ sku: 'TSH-001', qty: 200 }], promisedDate: '2026-07-01' }); console.log(order.id, order.estimatedVatAmountCents). Zwraca Order typowany z discriminated-union status. Błędy rzucane jako ValidationError / RateLimitError itd.

Weryfikacja webhook

W trasie Express/Fastify: const event = cm.webhooks.constructEvent(rawBody, req.headers['x-corp-signature'], process.env.CM_WEBHOOK_SECRET); switch (event.type) { case 'invoice.issued': … }. Rzuca SignatureVerificationError przy mismatch lub starym timestampie (>5 min).

FAQ

ESM czy CommonJS?

Oba — dual package. ESM preferowany (.mjs + .d.ts), CommonJS via require() działa via package.json exports.

Czy działa z Bun i Deno?

Tak — testowane w CI na Bun 1.x i Deno 1.x z tą samą test suite co Node. Użyj npm: specifier w Deno lub po prostu import w Bun.

Jak skonfigurować retry?

Domyślnie 3 retry na 5xx, 429 i błędach sieci z backoffem. Override via new CorpMerch({ retries: 5, retryBackoffMs: 200 }).

Czy jest metoda catalog streaming?

Tak — cm.catalog.list({ country: 'PL' }) zwraca AsyncIterator; for await (const item of …) iteruje wszystkie strony automatycznie.

Czy źródło jest dostępne?

MIT na GitHub: github.com/corp-merch/sdk-js. PR-y mile widziane; CLA wymagane dla nietrywialnych wkładów.

Porozmawiaj ze specjalistą