Skip to main content
This guide sends funds from one Nuvion account to another. It ends with a successful book transfer: the amount leaves your account and arrives in the recipient’s account straight away. All you need is the recipient’s Nuvion account number. The recipient can be another account of your own, a parent or child entity, another entity under the same parent, or any other Nuvion customer, such as a supplier or a customer of yours who also banks with Nuvion. Sending from a child entity’s account works the same way, with one addition: see Send from or to a child entity.

When to use a book transfer

If the recipient banks with Nuvion, prefer a book transfer. It settles immediately, needs no routing details, and doesn’t pass through an external payment rail. Use a bank payout when the recipient banks elsewhere.

How it differs from other payouts

A book transfer follows the same three steps as any payout: create a counterparty, add a payment detail, then send the transfer. These points differ:

Before you start

  • An API key, and the account_id of the account that pays. It needs a balance of at least the amount plus the fee.
  • The recipient’s nuvion_ban and the currency of that account.
The examples use these placeholder values. Replace them with your own.

Step 1: Create a counterparty

Create a counterparty for the recipient. Do this once per recipient.
Keep data.id (01HXYZ3000ABCDEFGHJKMNPQRS). Step 2 and Step 3 use it as counterparty_id. See Create a counterparty.

Step 2: Add the recipient’s account as a payment detail

Add a book-transfer payment detail whose account_number is the recipient’s nuvion_ban. Nuvion checks that the number belongs to a Nuvion account when you add it.
Keep data.id (01HXYZ5000ABCDEFGHJKMNPQRS). Step 3 uses it as payment_detail_id. See Create payment details.

Step 3: Send the transfer

Create a book-transfer from your account. amount is in minor units. Use a new unique_reference for each payment.
The transfer is successful straight away, because a book transfer settles immediately. applicable_fee is the fee debited from your account on top of amount, in minor units. See Create a transfer for every field and error.

Scenarios

The three steps are the same in every scenario. What changes is the key you use, whether you send entity_id, and whose nuvion_ban goes in Step 2.
Each tab shows Step 3 for one scenario.
In every scenario the sender pays the fee on top of the amount, the recipient is credited the full amount, and the transfer is successful straight away.

What the recipient sees

The recipient’s account records an inflow with payment_type book-transfer and status successful. It carries the amount, the currency and your narration, so the recipient can reconcile it against an invoice or reference. It doesn’t carry your request meta. Its applicable_fee follows the recipient’s own pricing, not yours. The recipient learns about it in either of two ways:
  • Webhook: an inflows.completed event, if they subscribe to it.
  • API: GET /transfers?type=inflow&payment_type=book-transfer, as described in List transfers.

Send from or to a child entity

To send from a child entity’s account, send the child’s entity_id on every call, as described in Managing child entities. The recipient can be the parent: use the parent account’s nuvion_ban as the account_number. Between a parent and its children, or between two children of the same parent, the flow is the same. If you leave entity_id off Step 1, Nuvion creates the counterparty under the parent. Step 2 then returns 422 and Step 3 returns 404, because the child can’t see it.

Handle errors

Each step’s response box has a tab for every failure listed here, with the exact body Nuvion returns. error_operation_invalid_for_state has more than one cause, so check both the currency and the destination account when you see it.