You’ll need a Nuvion sandbox API key to follow this guide. Create an account to get yours.
Before you begin
Every request to the Nuvion API requires these headers:
This guide uses the sandbox base URL,
https://api.nuvion.dev. No real funds move in sandbox. Set your API key as an environment variable so you don’t repeat yourself:
Step 1: Create an individual entity
An entity represents a person or business on your platform. Accounts, documents, and transfers all belong to an entity. Identity document metadata is required at creation. You’ll upload the actual files in the next step. UsePOST /individual-entities.
Response
data.entity.id and data.person.id. You’ll need both in the next step.
Step 2: Upload KYC documents
Two documents are required before the entity can be submitted for review: a government-issued ID and a proof of address. UsePOST /documents, linking each file to the person via link_to_identity.person_id.
In sandbox, document content isn’t verified. Any valid base64-encoded file, like the tiny sample images above, is accepted. Both uploads are required before you can submit the entity for review.
Step 3: Submit for review
status moves to pending. Review is automatic, often within seconds and typically no more than a few minutes. Nuvion fires the entities.updated webhook when the status changes to approved or rejected.
Step 4: Create an account
Once the entity isapproved, open an account to hold a balance. Use POST /accounts.
Response
data.account.id. You’ll use it as account_id in the remaining steps.
Step 5: Generate account details
Account details are the banking coordinates that others use to pay into this account. Provisioning starts aspending and finishes asynchronously. Poll GET /account-details/{id} or listen for the account_details.created webhook before sharing the details with payers. Use POST /account-details.
Response
Step 6: Fund the account
Your new EUR account has a0 balance. Fund it via open banking: create a funding session, then complete the bank authentication at the returned checkout_url. Use POST /funding-sessions.
Response
checkout_url in a browser and complete the sandbox bank authentication flow. Nuvion credits the account and fires funding_sessions.updated once the session reaches status: "settled".
Step 7: Add a payout recipient
To send money out, register who you’re paying and their bank details. This is a two-call flow: create a counterparty, then attach their SEPA payment details. See Send a payout for every supported rail and corridor.id from the counterparty response as counterparty_id, and id from the payment details response as payment_detail_id. You’ll need both for the transfer.
Step 8: Send a transfer
UsePOST /transfers to move money from your funded EUR account to the recipient.
Response
All amounts are in the smallest currency unit.
10000 = €100.00 EUR.What’s next
Accept a payment
Receive funds from a bank transfer or card into a Nuvion account.
Send a payout
Full payout guide: every supported rail and corridor.
