Skip to main content

Prerequisites

  • Node.js 18+ or Bun 1.0+
  • An S4Kit account with an API key
  • Access to an SAP S/4HANA system (configured in the platform)

Step 1: Install the SDK

npm install s4kit

Step 2: Initialize the Client

Create an S4Kit client with your API key and connection name:
import { S4Kit } from 's4kit';

const client = new S4Kit({
  apiKey: process.env.S4KIT_API_KEY,  // Your API key
  connection: 'production'               // Your SAP instance alias
});
Never commit your API key to source control. Use environment variables instead.

Step 3: Make Your First Request

Query SAP entities using the intuitive SDK interface:
// List business partners
const partners = await client.A_BusinessPartner.list({
  top: 10,
  select: ['BusinessPartner', 'BusinessPartnerName', 'BusinessPartnerCategory']
});

console.log(partners);
// [
//   { BusinessPartner: '10100001', BusinessPartnerName: 'Acme Corp', ... },
//   { BusinessPartner: '10100002', BusinessPartnerName: 'Global Inc', ... },
//   ...
// ]

Step 4: Try CRUD Operations

// Get a single entity by ID
const partner = await client.A_BusinessPartner.get('10100001');

// List with filtering
const customers = await client.A_BusinessPartner.list({
  filter: "BusinessPartnerCategory eq '1'",
  orderBy: 'BusinessPartnerName asc',
  top: 50
});

Complete Example

Here’s a full working example:
import { S4Kit } from 's4kit';

async function main() {
  // Initialize client
  const client = new S4Kit({
    apiKey: process.env.S4KIT_API_KEY,
    connection: 'sandbox'
  });

  try {
    // Fetch sales orders from the last 30 days
    const thirtyDaysAgo = new Date();
    thirtyDaysAgo.setDate(thirtyDaysAgo.getDate() - 30);

    const orders = await client.A_SalesOrder.list({
      filter: `CreationDate ge datetime'${thirtyDaysAgo.toISOString()}'`,
      select: ['SalesOrder', 'SoldToParty', 'TotalNetAmount', 'TransactionCurrency'],
      expand: ['to_Item'],
      orderBy: 'CreationDate desc',
      top: 100
    });

    console.log(`Found ${orders.length} recent orders`);

    for (const order of orders) {
      console.log(`Order ${order.SalesOrder}: ${order.TotalNetAmount} ${order.TransactionCurrency}`);
    }
  } catch (error) {
    console.error('Error:', error.message);
  }
}

main();

Next Steps

SDK Installation

Learn about SDK configuration options.

Query Options

Master filtering, pagination, and sorting.

Platform Setup

Configure SAP systems and API keys.

Error Handling

Handle errors gracefully in your app.