Skip to main content
This guide assumes that you’ve completed onboarding and setup your API keys.
To Initiate a transfer to a bank account from your account, follow these steps:

Setup an Account

Skip this step if you have an Account.
Bank transfers must be initiated from an existing Account. Create an Account to track every transfer you make.
curl --location --globoff 'https://api.nuvion.dev/accounts' \
--header 'Authorization: Bearer {{$NUVION_API_KEY}}' \
--header 'Content-Type: application/json' \
--data '{
    "type": "debit",
    "currency": "USD",
    "display_name": "Ann Kunde",
    "config": {
        "is_overdraftable": false,
        "overdraft_limit": 0
    }
}'
You’ll need a verified Entity to successfully create an Account.

Fetch Bank code

A Counterparty is the transfer recipient.
Search our supported issuers for the Counterparty’s bank and retrieve it’s code.
curl --location --globoff 'https://api.nuvion.dev/issuers?country=NG' \
--header 'Authorization: Bearer {{$NUVION_API_KEY}}' \
--header 'Content-Type: application/json'

Validate account information

This step applies to NGN counterparty only.
Lookup the Counterparty’s bank account information. This helps you to confirm the account name and match it to the information of the Counterparty provided for the transfer.
curl --location --globoff 'https://api.nuvion.dev/counterparty-lookups' \
--header 'Authorization: Bearer {{$NUVION_API_KEY}}' \
--header 'Content-Type: application/json' \
--data '{
    "account_number": "1234567890",
    "issuer": {
        "code": "CHASE"
    },
    "country": "US",
    "currency": "USD"
}'

Create a Counterparty

Set up the recipient as a counterparty object using their account information.
curl --location 'https://api.nuvion.dev/recipient-counterparties' \
--header 'Authorization: Bearer {{$NUVION_API_KEY}}' \
--header 'Content-Type: application/json' \
--data '{
    "type": "individual",
    "entity_relationship": "customer",
    "name": "John Doe",
    "email": "[email protected]",
    "address": {
        "city": "New York",
        "state": "NY",
        "postal_code": "10001",
        "country_code": "US",
        "line_1": "123 Main St",
        "line_2": "Apt 4B"
    },
    "account_details": {
        "issuer": {
            "code": "CHASE",
            "name": "JPMorgan Chase Bank",
            "short_name": "Chase"
        },
        "account_number": "1234567890",
        "routing_number": "021000021",
        "account_type": "checking",
        "country": "US",
        "payment_rails": "ach"
    },
    "meta": {
        "preferred_contact_method": "email"
    }
}'

Initiate a transfer

Create a new transfer using the counterparty’s ID. You’ll need to specify the account to debit and information like the amount, currency and reference for the transfer.
curl --location 'https://api.nuvion.dev/bank-transfers' \
--header 'Authorization: Bearer {{$NUVION_API_KEY}}' \
--header 'Content-Type: application/json' \
--data '{
    "currency": "NGN",
    "amount": 10000,
    "account_id": "01K5ENXPPBNCK6Z38NGGKNTH54",
    "narration": "Test Demo",
    "counterparty_id": "01K60NQCC4PZHXSHWHBPDY9E7C",
    "unique_reference": "a76ac0bd-06e7-4b46-9e9f-67b0b03da323"
}'
You have successfully initiated your first transfer. Learn more about transfers here.