We maintain a TypeScript SDK that allows you to connect to our APIs and verify webhook responses with ease.
Head to: https://www.npmjs.com/package/@carbonapi/typescript-sdk to learn more
Simple Example
import { CarbonAPIClient } from "@carbonapi/typescript-sdk";
// Initialize the client with your API key
const client = new CarbonAPIClient({
apiKey: "your-api-key-here",
// Optional: Override the default base URL
// baseURL: 'https://custom-api-url.com',
});
// Create a batch of transactions
const transactionBatchResponse = await client.createTransactionBatch({
transactions: [
{
id: "123",
date: "2025-05-13T03:52:52Z",
tax: 10,
total: 100,
subtotal: 90,
description: "Purchase of new laptop",
supplierName: "Mighty Ape",
sourceAccount: "Office Expenses",
currency: "NZD",
},
],
countryCode: "NZ",
});
// Get transaction batch status
const batchId = transactionBatchResponse.batchIds[0];
const transactionBatchStatus = await client.getTransactionBatch(batchId);
console.log("Transaction Batch Status:", transactionBatchStatus.status);
console.log("Transactions:", transactionBatchStatus.transactions);
Webhook Verification
import { CarbonAPIClient } from "@carbonapi/typescript-sdk";
import express from "express";
const app = express();
// Remember to use RAW body type, otherwise this won't work as expected!
app.use(express.raw({ type: "application/json" }));
// Initialize the client with your API key and webhook secret
const client = new CarbonAPIClient({
apiKey: "your-api-key-here",
webhookSecret: "your-webhook-secret-here",
});
// Example webhook handler using Express
app.post("/webhook", async (req, res) => {
try {
// Verify and parse the webhook payload
const event = await client.verifyWebhookRequest(req);
// Handle different webhook event types
switch (event.type) {
case "transaction.batch.completed":
console.log("Batch completed:", event.data);
break;
}
res.status(200).json({ received: true });
} catch (error) {
console.error("Webhook verification failed:", error);
res.status(400).json({ error: "Webhook verification failed" });
}
});