Skip to main content
Nickel Banking is a business bank account you open with Nickel. Customer payments can settle into it, you can pay bills and spend from it with Nickel debit cards, and you can deposit checks into it. The API reads all of it: your accounts and their balances, your cards, the checks you’ve deposited, and every transaction. It also deposits checks and applies them to your invoices. You open accounts and issue cards in the Nickel dashboard.
Amounts are always in cents. balanceCents: 1250000 is $12,500.00.
In the API, an invoice is a payment link (/paymentLink). This page says “invoice” in prose and keeps the API’s names in paths and fields.

Objects

To pay a bill from Nickel Banking, pass the account’s NickelBalance payment method from GET /billPaymentMethods to POST /bill/pay. How Bill Payments Work covers the rest.

Who can read it

An API key acts as the team member who created it, with that member’s role. Nickel Banking has its own permissions: seeing balances, seeing cards and seeing deposits are granted separately, so a key can read one list and not another. When a list would come back empty because the key can’t see it, Nickel answers 403 instead. An empty list therefore always means there is nothing to show.

Balances

balanceCents is the account’s settled balance. It is Nickel’s record of the account’s ledger, updated as transactions post, not a live read from the bank. It is negative when the account is overdrawn. Card purchases the bank has approved but not yet posted are held against the account in pendingCardHoldsCents. balanceCents doesn’t include them, so what the account can spend right now is balanceCents minus pendingCardHoldsCents. Before paying a bill, check the account’s spendableCents on GET /billPaymentMethods instead: it also subtracts money already committed to other payments, and a bill payment larger than it fails.

Check deposits

You deposit a check by sending photos of its front and back to POST /nickelBanking/checkDeposits, or from the Nickel dashboard. The photos identify the check: sending the same two again returns the deposit they already made instead of depositing the check twice. Deposit a Check walks through it. A deposit is PROCESSING while the bank reviews the check. It becomes DEPOSITED once the money is yours, or REJECTED if the bank refuses it. A deposited check can still come back: if the bank reverses it, the deposit becomes RETURNED and the money leaves the account again. returnReason and rejectionReason carry the bank’s explanation. Nickel sends a webhook each time a deposit leaves PROCESSING or is returned: check_deposit.deposited, check_deposit.rejected and check_deposit.returned. Each names the deposit, and you fetch its current state by id. Webhook Events says what to do on each.

Applying a deposit to an invoice

A deposited check that pays one of your invoices is applied to it, either in the same request that deposits it (applications) or afterward with POST /nickelBanking/checkDeposits/{checkDepositId}/apply. No new money is recorded, because the money is already in your account. Send an externalReferenceId when you apply one afterward, so a retried request can’t apply the deposit twice. Each application appears in two places: in the deposit’s applications, and in the invoice’s externalPayments with nickelBankingTransferId set to the deposit’s transferId. unappliedAmountCents on the deposit is what is left to apply.
Don’t also record a Nickel Banking check deposit with POST /paymentLink/{paymentLinkId}/externalPayment. The application already counts it. Recording it again counts the same check twice and marks the invoice paid when it isn’t.
To unapply a deposit, for example when it went to the wrong invoice, void the application with POST /paymentLink/{paymentLinkId}/externalPayment/{externalPaymentId}/void, passing the application’s id. The money stays in your account and its unappliedAmountCents goes back up. Nickel also voids applications itself. If the bank returns or rejects the check, every application is voided and the invoices reopen. If the bank accepts less than the check’s amount, the newest applications are voided until what is applied fits. Each voided application’s voidReason says which happened.

Transactions

GET /nickelBanking/transactions lists every movement of money into, out of, or on its way to your Nickel Banking accounts, newest first. Filter it to one account with accountId, to one card with cardId, or to a date range with startDate and endDate, which must be sent together. amountCents is always positive. The type says what the money was: Nickel adds types as the product grows, so handle a type you don’t recognize instead of failing on it. A PENDING card purchase is a hold: the bank approved it but it hasn’t posted, and its amount can still change when it does. A transaction’s status doesn’t change when the money is later reversed. A customer ACH payment that settled stays COMPLETED after the bank returns it; the return is marked in its flags and listed as its own RETURN transaction. Treat a COMPLETED transaction as money you kept only when flags is empty. This request lists one account’s transactions for September. The response is illustrative:
totalResults counts every matching transaction across pages. Page through the rest with page and pageSize.