SDKsTypeScript

TypeScript SDK

The official TypeScript client — fully typed against the OpenAPI document, for Node.js and edge runtimes, with a webhook signature verifier.

Getting it

The package is @403ent/transmute. It is not yet on the public npm registry — access is provided during onboarding (contact support); once published, it will be a plain npm install @403ent/transmute.

Convert a message

import { createClient } from "@403ent/transmute";

const client = createClient({
  baseUrl: "https://api.transmute.403fin.io",
  apiKey: process.env.TRANSMUTE_KEY!,
});

const resp = await client.convert({
  to: "camt.053",
  message: mt940Text, // raw MT; `from` omitted → auto-detect
});

console.log(resp.meta.detectedType); // "mt940"
for (const w of resp.warnings) {
  console.log(`${w.code} (${w.severity}): ${w.detail}`);
}

All request and response shapes — ConvertRequest, ConvertResponse, Problem, Warning, and the rest — are exported types generated from the OpenAPI document, so your compiler knows exactly what the API accepts and returns. normalize, validate, and enrich follow the same pattern.

Verify a webhook delivery

import { verifyWebhookSignature } from "@403ent/transmute";

// In your handler — use the RAW body bytes, before any JSON parsing:
verifyWebhookSignature(
  endpointSecret,                       // "whsec_..." — the full string
  req.headers["x-transmute-signature"], // "t=...,v1=..."
  rawBody,
  { toleranceSeconds: 300 },
);

See Webhooks for the delivery contract (retries, dedupe, auto-disable).

Notes

  • Amounts are strings in every type — use a decimal library (big.js, decimal.js); JavaScript numbers corrupt money.
  • API errors carry the parsed RFC 9457 problem, including the type slug from the error catalog.
  • The portal endpoints are intentionally absent from the SDK — they are the web dashboard's internal surface.
Was this page helpful?