Developers

A REST API built for embedded treasury at scale.

Idempotent endpoints, HMAC-signed webhooks, full sandbox environment, and client libraries for Node, Python, and Ruby. Virtual account provisioning, sub-ledger operations, KYB submission, and multi-rail payment initiation — all through a single versioned REST API.

View Quickstart API Reference
Node.js — Create Virtual Account
const mss = require('mainstreetspine-node');
const client = new mss.Client({
  apiKey: process.env.MSS_API_KEY
});

const account = await client.virtualAccounts.create({
  platform_id: 'plt_8xHQ2mNk',
  entity_ref: 'smb_glenwood-hvac',
  type: 'checking'
});

console.log(account.account_number);
// → '826041200412'

API Overview

Five resource groups. One consistent API.

01 / virtual-accounts

Virtual Accounts

Create, read, and manage virtual account numbers for platform entities. Balance queries, transaction history, account status.

02 / payments

Payments

Initiate ACH, RTP, and FedNow transfers. Rail selection, idempotency keys, payment status polling.

03 / kyb

KYB Onboarding

Submit business verification requests. Poll status, handle exceptions, retrieve KYB decision details.

04 / ledger

Sub-Ledger

Query ledger entries, create manual journal entries, retrieve account statements, reconciliation exports.

05 / webhooks

Webhooks

Register webhook endpoints, manage event subscriptions, view delivery logs, configure retry settings.

06 / platforms

Platform Config

Manage platform-level settings, API keys, sandbox/live environment switching, revenue share reporting.

Quickstart

From API keys to first virtual account in 15 minutes.

1

Get API Keys

Request pilot access. We provision sandbox API keys within one business day of approval.

2

Install SDK

npm install mainstreetspine-node or pip install mainstreetspine. Initialize with your API key.

3

Create a Platform

POST /v1/platforms — register your SaaS platform as the parent entity in our system.

4

Provision a Virtual Account

POST /v1/virtual-accounts — your first sandbox account number is ready in under 5 minutes.

Read Full Quickstart

SDKs

Client libraries for your stack.

Node.js

mainstreetspine-node v1.4.2

Python

mainstreetspine v1.3.0

Ruby

mainstreetspine-ruby v1.2.1

REST API

Any HTTP client

Webhooks

Real-time event notifications for every state change.

Register a webhook endpoint. We'll POST signed JSON events to your server within 200ms of each state change. Automatic retry with exponential backoff on failed deliveries.

virtual_account.createdNew virtual account provisioned and ready to receive funds
payment.completedACH/RTP/FedNow payment settled successfully
payment.failedPayment failed — includes reason code and retry recommendation
kyb.approvedBusiness entity passed KYB verification
kyb.pending_reviewKYB sent to manual review queue — ETA included
ledger.entry.createdNew debit or credit entry posted to the sub-ledger
Webhook Documentation

Sandbox environment included.

All pilot partners get access to a full-featured sandbox with simulated ACH and RTP settlement, KYB verification flows, sub-ledger posting, and webhook delivery. Test your entire integration before a single live transaction touches the rails.

Request API Access