curl --request POST \
--url https://api-fundflow.venly.io/v1/company-bank-accounts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Primary EUR Account",
"bankName": "Deutsche Bank",
"companyName": "Acme Corporation Ltd",
"bankCountry": "DE",
"beneficiaryAddressLine1": "123 Main Street",
"beneficiaryCity": "Berlin",
"beneficiaryPostalCode": "10115",
"beneficiaryCountry": "DE",
"iban": "DE89370400440532013000",
"beneficiaryAddressLine2": "Suite 100",
"bankAccountType": "EUR_SEPA",
"bic": "COBADEFFXXX",
"intermediaryBic": "<string>",
"email": "jsmith@example.com",
"phoneNumber": "<string>",
"beneficiaryState": "<string>"
}
'import requests
url = "https://api-fundflow.venly.io/v1/company-bank-accounts"
payload = {
"name": "Primary EUR Account",
"bankName": "Deutsche Bank",
"companyName": "Acme Corporation Ltd",
"bankCountry": "DE",
"beneficiaryAddressLine1": "123 Main Street",
"beneficiaryCity": "Berlin",
"beneficiaryPostalCode": "10115",
"beneficiaryCountry": "DE",
"iban": "DE89370400440532013000",
"beneficiaryAddressLine2": "Suite 100",
"bankAccountType": "EUR_SEPA",
"bic": "COBADEFFXXX",
"intermediaryBic": "<string>",
"email": "jsmith@example.com",
"phoneNumber": "<string>",
"beneficiaryState": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Primary EUR Account',
bankName: 'Deutsche Bank',
companyName: 'Acme Corporation Ltd',
bankCountry: 'DE',
beneficiaryAddressLine1: '123 Main Street',
beneficiaryCity: 'Berlin',
beneficiaryPostalCode: '10115',
beneficiaryCountry: 'DE',
iban: 'DE89370400440532013000',
beneficiaryAddressLine2: 'Suite 100',
bankAccountType: 'EUR_SEPA',
bic: 'COBADEFFXXX',
intermediaryBic: '<string>',
email: 'jsmith@example.com',
phoneNumber: '<string>',
beneficiaryState: '<string>'
})
};
fetch('https://api-fundflow.venly.io/v1/company-bank-accounts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-fundflow.venly.io/v1/company-bank-accounts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Primary EUR Account',
'bankName' => 'Deutsche Bank',
'companyName' => 'Acme Corporation Ltd',
'bankCountry' => 'DE',
'beneficiaryAddressLine1' => '123 Main Street',
'beneficiaryCity' => 'Berlin',
'beneficiaryPostalCode' => '10115',
'beneficiaryCountry' => 'DE',
'iban' => 'DE89370400440532013000',
'beneficiaryAddressLine2' => 'Suite 100',
'bankAccountType' => 'EUR_SEPA',
'bic' => 'COBADEFFXXX',
'intermediaryBic' => '<string>',
'email' => 'jsmith@example.com',
'phoneNumber' => '<string>',
'beneficiaryState' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-fundflow.venly.io/v1/company-bank-accounts"
payload := strings.NewReader("{\n \"name\": \"Primary EUR Account\",\n \"bankName\": \"Deutsche Bank\",\n \"companyName\": \"Acme Corporation Ltd\",\n \"bankCountry\": \"DE\",\n \"beneficiaryAddressLine1\": \"123 Main Street\",\n \"beneficiaryCity\": \"Berlin\",\n \"beneficiaryPostalCode\": \"10115\",\n \"beneficiaryCountry\": \"DE\",\n \"iban\": \"DE89370400440532013000\",\n \"beneficiaryAddressLine2\": \"Suite 100\",\n \"bankAccountType\": \"EUR_SEPA\",\n \"bic\": \"COBADEFFXXX\",\n \"intermediaryBic\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"phoneNumber\": \"<string>\",\n \"beneficiaryState\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-fundflow.venly.io/v1/company-bank-accounts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Primary EUR Account\",\n \"bankName\": \"Deutsche Bank\",\n \"companyName\": \"Acme Corporation Ltd\",\n \"bankCountry\": \"DE\",\n \"beneficiaryAddressLine1\": \"123 Main Street\",\n \"beneficiaryCity\": \"Berlin\",\n \"beneficiaryPostalCode\": \"10115\",\n \"beneficiaryCountry\": \"DE\",\n \"iban\": \"DE89370400440532013000\",\n \"beneficiaryAddressLine2\": \"Suite 100\",\n \"bankAccountType\": \"EUR_SEPA\",\n \"bic\": \"COBADEFFXXX\",\n \"intermediaryBic\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"phoneNumber\": \"<string>\",\n \"beneficiaryState\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-fundflow.venly.io/v1/company-bank-accounts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Primary EUR Account\",\n \"bankName\": \"Deutsche Bank\",\n \"companyName\": \"Acme Corporation Ltd\",\n \"bankCountry\": \"DE\",\n \"beneficiaryAddressLine1\": \"123 Main Street\",\n \"beneficiaryCity\": \"Berlin\",\n \"beneficiaryPostalCode\": \"10115\",\n \"beneficiaryCountry\": \"DE\",\n \"iban\": \"DE89370400440532013000\",\n \"beneficiaryAddressLine2\": \"Suite 100\",\n \"bankAccountType\": \"EUR_SEPA\",\n \"bic\": \"COBADEFFXXX\",\n \"intermediaryBic\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"phoneNumber\": \"<string>\",\n \"beneficiaryState\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"result": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"companyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"bankName": "<string>",
"companyName": "<string>",
"email": "<string>",
"phoneNumber": "<string>",
"bankCountry": "<string>",
"beneficiaryAddressLine1": "<string>",
"beneficiaryAddressLine2": "<string>",
"beneficiaryCity": "<string>",
"beneficiaryState": "<string>",
"beneficiaryPostalCode": "<string>",
"beneficiaryCountry": "<string>",
"bankAccountType": "EUR_SEPA",
"supportedRampType": "ON_RAMP",
"verificationStatus": "PENDING",
"verifiedAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"version": 123,
"iban": "<string>",
"bic": "<string>",
"intermediaryBic": "<string>"
}
}{
"success": false,
"errors": [
{
"code": "validation-error",
"message": "A descriptive error message"
}
]
}{
"success": false,
"errors": [
{
"code": "UNAUTHORIZED",
"message": "Access is denied."
}
]
}{
"success": false,
"errors": [
{
"code": "FORBIDDEN",
"message": "User doesn't have proper authority to access this resource"
}
]
}{
"success": false,
"errors": [
{
"code": "NOT_FOUND"
}
]
}{
"success": false,
"errors": [
{
"code": "METHOD_NOT_SUPPORTED",
"message": "HttpMethod is not supported. Supported methods are [..]"
}
]
}{
"success": false,
"errors": [
{
"code": "INVALID_MEDIA_TYPE"
}
]
}{
"success": false,
"errors": [
{
"code": "INTERNAL_SERVER_ERROR",
"message": "A description of the error (optional)"
}
]
}Whitelist a company bank account
Register a company bank account for fiat settlement in ramp requests.
curl --request POST \
--url https://api-fundflow.venly.io/v1/company-bank-accounts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Primary EUR Account",
"bankName": "Deutsche Bank",
"companyName": "Acme Corporation Ltd",
"bankCountry": "DE",
"beneficiaryAddressLine1": "123 Main Street",
"beneficiaryCity": "Berlin",
"beneficiaryPostalCode": "10115",
"beneficiaryCountry": "DE",
"iban": "DE89370400440532013000",
"beneficiaryAddressLine2": "Suite 100",
"bankAccountType": "EUR_SEPA",
"bic": "COBADEFFXXX",
"intermediaryBic": "<string>",
"email": "jsmith@example.com",
"phoneNumber": "<string>",
"beneficiaryState": "<string>"
}
'import requests
url = "https://api-fundflow.venly.io/v1/company-bank-accounts"
payload = {
"name": "Primary EUR Account",
"bankName": "Deutsche Bank",
"companyName": "Acme Corporation Ltd",
"bankCountry": "DE",
"beneficiaryAddressLine1": "123 Main Street",
"beneficiaryCity": "Berlin",
"beneficiaryPostalCode": "10115",
"beneficiaryCountry": "DE",
"iban": "DE89370400440532013000",
"beneficiaryAddressLine2": "Suite 100",
"bankAccountType": "EUR_SEPA",
"bic": "COBADEFFXXX",
"intermediaryBic": "<string>",
"email": "jsmith@example.com",
"phoneNumber": "<string>",
"beneficiaryState": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Primary EUR Account',
bankName: 'Deutsche Bank',
companyName: 'Acme Corporation Ltd',
bankCountry: 'DE',
beneficiaryAddressLine1: '123 Main Street',
beneficiaryCity: 'Berlin',
beneficiaryPostalCode: '10115',
beneficiaryCountry: 'DE',
iban: 'DE89370400440532013000',
beneficiaryAddressLine2: 'Suite 100',
bankAccountType: 'EUR_SEPA',
bic: 'COBADEFFXXX',
intermediaryBic: '<string>',
email: 'jsmith@example.com',
phoneNumber: '<string>',
beneficiaryState: '<string>'
})
};
fetch('https://api-fundflow.venly.io/v1/company-bank-accounts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-fundflow.venly.io/v1/company-bank-accounts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Primary EUR Account',
'bankName' => 'Deutsche Bank',
'companyName' => 'Acme Corporation Ltd',
'bankCountry' => 'DE',
'beneficiaryAddressLine1' => '123 Main Street',
'beneficiaryCity' => 'Berlin',
'beneficiaryPostalCode' => '10115',
'beneficiaryCountry' => 'DE',
'iban' => 'DE89370400440532013000',
'beneficiaryAddressLine2' => 'Suite 100',
'bankAccountType' => 'EUR_SEPA',
'bic' => 'COBADEFFXXX',
'intermediaryBic' => '<string>',
'email' => 'jsmith@example.com',
'phoneNumber' => '<string>',
'beneficiaryState' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-fundflow.venly.io/v1/company-bank-accounts"
payload := strings.NewReader("{\n \"name\": \"Primary EUR Account\",\n \"bankName\": \"Deutsche Bank\",\n \"companyName\": \"Acme Corporation Ltd\",\n \"bankCountry\": \"DE\",\n \"beneficiaryAddressLine1\": \"123 Main Street\",\n \"beneficiaryCity\": \"Berlin\",\n \"beneficiaryPostalCode\": \"10115\",\n \"beneficiaryCountry\": \"DE\",\n \"iban\": \"DE89370400440532013000\",\n \"beneficiaryAddressLine2\": \"Suite 100\",\n \"bankAccountType\": \"EUR_SEPA\",\n \"bic\": \"COBADEFFXXX\",\n \"intermediaryBic\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"phoneNumber\": \"<string>\",\n \"beneficiaryState\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-fundflow.venly.io/v1/company-bank-accounts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Primary EUR Account\",\n \"bankName\": \"Deutsche Bank\",\n \"companyName\": \"Acme Corporation Ltd\",\n \"bankCountry\": \"DE\",\n \"beneficiaryAddressLine1\": \"123 Main Street\",\n \"beneficiaryCity\": \"Berlin\",\n \"beneficiaryPostalCode\": \"10115\",\n \"beneficiaryCountry\": \"DE\",\n \"iban\": \"DE89370400440532013000\",\n \"beneficiaryAddressLine2\": \"Suite 100\",\n \"bankAccountType\": \"EUR_SEPA\",\n \"bic\": \"COBADEFFXXX\",\n \"intermediaryBic\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"phoneNumber\": \"<string>\",\n \"beneficiaryState\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-fundflow.venly.io/v1/company-bank-accounts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Primary EUR Account\",\n \"bankName\": \"Deutsche Bank\",\n \"companyName\": \"Acme Corporation Ltd\",\n \"bankCountry\": \"DE\",\n \"beneficiaryAddressLine1\": \"123 Main Street\",\n \"beneficiaryCity\": \"Berlin\",\n \"beneficiaryPostalCode\": \"10115\",\n \"beneficiaryCountry\": \"DE\",\n \"iban\": \"DE89370400440532013000\",\n \"beneficiaryAddressLine2\": \"Suite 100\",\n \"bankAccountType\": \"EUR_SEPA\",\n \"bic\": \"COBADEFFXXX\",\n \"intermediaryBic\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"phoneNumber\": \"<string>\",\n \"beneficiaryState\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"result": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"companyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"bankName": "<string>",
"companyName": "<string>",
"email": "<string>",
"phoneNumber": "<string>",
"bankCountry": "<string>",
"beneficiaryAddressLine1": "<string>",
"beneficiaryAddressLine2": "<string>",
"beneficiaryCity": "<string>",
"beneficiaryState": "<string>",
"beneficiaryPostalCode": "<string>",
"beneficiaryCountry": "<string>",
"bankAccountType": "EUR_SEPA",
"supportedRampType": "ON_RAMP",
"verificationStatus": "PENDING",
"verifiedAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"version": 123,
"iban": "<string>",
"bic": "<string>",
"intermediaryBic": "<string>"
}
}{
"success": false,
"errors": [
{
"code": "validation-error",
"message": "A descriptive error message"
}
]
}{
"success": false,
"errors": [
{
"code": "UNAUTHORIZED",
"message": "Access is denied."
}
]
}{
"success": false,
"errors": [
{
"code": "FORBIDDEN",
"message": "User doesn't have proper authority to access this resource"
}
]
}{
"success": false,
"errors": [
{
"code": "NOT_FOUND"
}
]
}{
"success": false,
"errors": [
{
"code": "METHOD_NOT_SUPPORTED",
"message": "HttpMethod is not supported. Supported methods are [..]"
}
]
}{
"success": false,
"errors": [
{
"code": "INVALID_MEDIA_TYPE"
}
]
}{
"success": false,
"errors": [
{
"code": "INTERNAL_SERVER_ERROR",
"message": "A description of the error (optional)"
}
]
}PENDING status. Provide the fields for your account type — EUR_SEPA, USD_WIRE, USD_ACH, USD_SWIFT, GBP_FPS, GBP_CHAPS, or OTHER_SWIFT. The account must be in your company’s legal name.
Concept guide: Account management
VERIFIED. Only verified accounts can be used in ramp requests.Authorizations
OAuth2 authentication via Venly Identity Platform
Body
- Create EUR SEPA Bank Account
- Create GBP CHAPS Bank Account
- Create GBP Faster Payments Bank Account
- Create Other Currency SWIFT Bank Account
- Create US ACH Bank Account
- Create US SWIFT Bank Account
- Create US Wire Transfer Bank Account
Request to create a European SEPA bank account with IBAN and BIC
Display name for the bank account
255"Primary EUR Account"
Name of the bank
255"Deutsche Bank"
Legal name of the company (account holder)
255"Acme Corporation Ltd"
ISO 3166-1 alpha-2 country code of the bank
"DE"
First line of beneficiary address
255"123 Main Street"
Beneficiary city
100"Berlin"
Beneficiary postal/ZIP code
20"10115"
ISO 3166-1 alpha-2 country code of the beneficiary
"DE"
Types of ramp operations this account supports:
- ON_RAMP: Can receive fiat (for deposit)
- OFF_RAMP: Can send fiat (for withdrawal)
- ON_AND_OFF_RAMP: Supports both operations
ON_RAMP, OFF_RAMP, ON_AND_OFF_RAMP International Bank Account Number
15 - 34^[A-Z]{2}\d{2}[A-Z0-9]{1,30}$"DE89370400440532013000"
Second line of beneficiary address (optional)
255"Suite 100"
Type of bank account/payment network
EUR_SEPA Bank Identifier Code (SWIFT code)
8 - 11^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"COBADEFFXXX"
Intermediary bank BIC (if applicable)
8 - 11^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$Contact email for account holder
255Contact phone number
50^\+?\d{7,15}$Beneficiary state/province (if applicable)
100Was this page helpful?

