Skip to content

Quickstart⁠

NexumAPI provides a RESTful interface for developers to interact with Symitar data through their existing SymXchange instances.

This quickstart is designed to help you validate your endpoint, confirm your API key works, and make a real SymXchange request with the smallest useful setup.

Get access⁠

Email development@libum.io to request access. Include the credit union, environment, and use case you're working on so we can provide the right NaaS endpoint and API key.

You'll need three values:

  • NEXUM_BASE_URL - your NaaS base URL, such as https://naas.ymcu.libum.io
  • NEXUM_API_KEY - your NexumAPI bearer token
  • SymXchange credentials for the operation you want to call

Confirm the endpoint⁠

Start with an authenticated discovery request. This confirms your API key and shows the SymXchange services and versions exposed by your NaaS instance.

export NEXUM_BASE_URL="https://naas.ymcu.libum.io"
export NEXUM_API_KEY="your-api-key"

curl "$NEXUM_BASE_URL/supported-services" \
  --header "Authorization: Bearer $NEXUM_API_KEY"

A healthy response is grouped by configured host or credit union identifier:

{
  "ymcu": {
    "account": ["2022.01", "persistent"],
    "findby": ["2022.01", "persistent"],
    "poweron": ["2022.01", "persistent"]
  }
}

Make a SymXchange request⁠

NexumAPI routes follow this shape:

POST /nexum/{sym}/{version}/{service}/{operation}

For example, this calls getAccount on Sym 627 using SymXchange version 2022.01:

curl "$NEXUM_BASE_URL/nexum/627/2022.01/account/getAccount" \
  --request POST \
  --header "Authorization: Bearer $NEXUM_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "AccountNumber": "13824",
    "Credentials": {
      "AdministrativeCredentials": {
        "Password": "REPLACE_WITH_YOUR_PASSWORD"
      }
    }
  }'

Use the API reference to find the exact request fields for each service and operation.

Use JavaScript⁠

Node.js 18 and newer include fetch, so no request library is required. Save the following code to a file named first-request.mjs (using the .mjs extension enables top-level await support):

const baseUrl = process.env.NEXUM_BASE_URL;
const apiKey = process.env.NEXUM_API_KEY;

const response = await fetch(`${baseUrl}/nexum/627/2022.01/account/getAccount`, {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    AccountNumber: '13824',
    Credentials: {
      AdministrativeCredentials: {
        Password: process.env.SYMX_PASSWORD,
      },
    },
  }),
});

if (!response.ok) {
  throw new Error(`NexumAPI request failed: ${response.status} ${await response.text()}`);
}

console.log(await response.json());

Run it with:

export SYMX_PASSWORD="suwn37834b91&"
node first-request.mjs

Next steps⁠

  • Use NaaS Endpoints to inspect service health, connection status, host configs, and supported SymXchange services.
  • Use Credentials to understand supported SymXchange credential shapes.
  • Use Device Information when you need to reason about SymXchange device mappings.