Build on bank rails with one API.
A REST API, typed SDKs and a full sandbox for accounts, ACH, wires, cards and checks.
From sandbox keys to a settled transfer in minutes
- 01
Get sandbox keys
Sign up and copy your test key from the dashboard. No bank partner needed yet.
export NODO_KEY="sk_test_4f8a21" - 02
Install the SDK
Pick the library for your stack. Every SDK is typed and versioned with the API.
npm install @nodo/node - 03
Send a transfer
Create an ACH credit in the sandbox and watch it settle through webhooks.
await nodo.ach.create({ account_id: "acct_8f2k19", amount: 125000, direction: "credit", });
Official libraries for your stack
Generated from the same OpenAPI spec, released with every API version.
- v4.2.0
Node.js
npm install @nodo/node - v3.8.1
Python
pip install nodo - v2.6.0
Ruby
gem install nodo - v1.9.3
Go
go get nodo.test/go - v2.1.4
Java
implementation("nodo:java:2.1.4") - v1.4.2
PHP
composer require nodo/php
Move money in a few lines of code
One REST API to send ACH, open accounts, issue cards and deposit checks, with sandbox keys from day one.
const transfer = await nodo.ach.create({
account_id: "acct_8f2k19",
counterparty_id: "cp_51hx02",
amount: 125000,
currency: "USD",
direction: "credit",
settlement: "same_day",
});Send ACH credits and debits with one call.
Verify the account before the first debit.
Choose same-day or next-day settlement.
Get a webhook when the transfer settles or returns.
const account = await nodo.accounts.create({
name: "Operating account",
type: "checking",
entity_id: "ent_3k7q90",
currency: "USD",
});Open accounts for your users in a single request.
Accounts are available to use immediately.
Funds are held at FDIC insured partner banks.
Open as many checking or savings accounts as you need.
const number = await nodo.accountNumbers.create({
account_id: "acct_8f2k19",
name: "Invoice 2041",
inbound_ach: "allowed",
inbound_wires: "allowed",
});Give every customer or invoice its own account number.
Account numbers are separate from the account.
Create as many numbers per account as you need.
Disable a number without closing the account.
const card = await nodo.cards.create({
account_id: "acct_8f2k19",
type: "virtual",
cardholder: "Lucia Romero",
spending_limit: { amount: 500000, interval: "monthly" },
});Cards can be used immediately upon creation.
Virtual and physical cards are available.
Set spending limits for better control.
Freeze or unfreeze a card at any time.
const deposit = await nodo.checkDeposits.create({
account_id: "acct_8f2k19",
amount: 25000,
front_image: "file_9d2m41",
back_image: "file_9d2m42",
});Deposit checks from a photo of the front and back.
Deposits are reviewed and processed the same day.
Make sure the check is endorsed before depositing.
Funds may take 1 to 2 business days to become available.
Test every flow before you go live
Simulate returns, declines and late settlements with test accounts that behave like the real networks.