Submit Business Information
curl --request POST \
--url https://api.bullring.finance/v1/kyc/businesses/{subaccountId}/submit \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '{}'import requests
url = "https://api.bullring.finance/v1/kyc/businesses/{subaccountId}/submit"
payload = {}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.bullring.finance/v1/kyc/businesses/{subaccountId}/submit', 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.bullring.finance/v1/kyc/businesses/{subaccountId}/submit",
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([
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.bullring.finance/v1/kyc/businesses/{subaccountId}/submit"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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.bullring.finance/v1/kyc/businesses/{subaccountId}/submit")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bullring.finance/v1/kyc/businesses/{subaccountId}/submit")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"status": "awaiting_ubo",
"email": "[email protected]",
"rejection_reasons": [],
"endorsements": [
{
"name": "base",
"status": "incomplete",
"additional_requirements": [
"kyc_approval"
]
},
{
"name": "sepa",
"status": "incomplete",
"additional_requirements": [
"kyc_approval",
"kyc_with_proof_of_address"
]
}
],
"created_at": "2026-01-12T16:28:42.790Z",
"updated_at": "2026-01-12T16:30:46.020Z",
"type": "business",
"legal_name": "Bullring Finance 2",
"trade_name": "Anisere",
"description": "yfguy bhbiu",
"source_of_funds": "grants",
"business_type": "corporation",
"website": "bullring.finance",
"registered_address": {
"street_line_1": "1 Swallow Street",
"street_line_2": "",
"city": "birmingham",
"subdivision": "EN",
"postal_code": "B2 4AA",
"country": "GBR"
},
"physical_address": {
"street_line_1": "1 Swallow Street",
"street_line_2": "",
"city": "birmingham",
"subdivision": "EN",
"postal_code": "B2 4AA",
"country": "GBR"
},
"identification": [
{
"type": "crn",
"number": "1760716",
"issuing_country": "GBR",
"image_front": "https://res.cloudinary.com/bullring-finance/image/upload/v1768169867/verification/2026-01-11/ofq7atduwn1bwvtvxrb1.png",
"image_back": ""
}
],
"is_dao": false,
"is_money_transmitter": false,
"business_industry": [
"111150"
],
"account_purpose": "payroll",
"ultimate_beneficial_owners": [
{
"first_name": "John",
"middle_name": "Omoniyi",
"last_name": "Anisere",
"birth_date": "1993-10-05T00:00:00.000Z",
"email": "[email protected]",
"address": {
"street_line_1": "1 Swallow Street",
"street_line_2": "",
"city": "birmingham",
"subdivision": "EN",
"postal_code": "B2 4AA",
"country": "GBR"
},
"identification": [
{
"type": "passport",
"number": "B50091752",
"issuing_country": "NGA",
"image_front": "https://res.cloudinary.com/bullring-finance/image/upload/v1768169918/verification/2026-01-11/mvwnlnpgvzrxuiyw0erl.png",
"image_back": ""
}
],
"has_ownership": true,
"has_control": true,
"is_signer": true,
"title": "CEO"
}
],
"formation_document": "https://res.cloudinary.com/bullring-finance/image/upload/v1768169962/verification/2026-01-11/qxxtzbtflevi7ipxcfkg.png",
"ownership_document": "https://res.cloudinary.com/bullring-finance/image/upload/v1768169966/verification/2026-01-11/vlidzev2rladftq7a1td.png",
"flow_of_funds_document": null,
"has_material_intermediary_ownership": false
}{
"statusCode": 400,
"timestamp": "2025-12-31T10:19:59.164Z",
"error": "Error",
"message": "Missing required fields: signed_agreement_id"
}Verification
Submit Business Information
Submit the business information for verification.
POST
/
v1
/
kyc
/
businesses
/
{subaccountId}
/
submit
Submit Business Information
curl --request POST \
--url https://api.bullring.finance/v1/kyc/businesses/{subaccountId}/submit \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '{}'import requests
url = "https://api.bullring.finance/v1/kyc/businesses/{subaccountId}/submit"
payload = {}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.bullring.finance/v1/kyc/businesses/{subaccountId}/submit', 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.bullring.finance/v1/kyc/businesses/{subaccountId}/submit",
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([
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.bullring.finance/v1/kyc/businesses/{subaccountId}/submit"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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.bullring.finance/v1/kyc/businesses/{subaccountId}/submit")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bullring.finance/v1/kyc/businesses/{subaccountId}/submit")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"status": "awaiting_ubo",
"email": "[email protected]",
"rejection_reasons": [],
"endorsements": [
{
"name": "base",
"status": "incomplete",
"additional_requirements": [
"kyc_approval"
]
},
{
"name": "sepa",
"status": "incomplete",
"additional_requirements": [
"kyc_approval",
"kyc_with_proof_of_address"
]
}
],
"created_at": "2026-01-12T16:28:42.790Z",
"updated_at": "2026-01-12T16:30:46.020Z",
"type": "business",
"legal_name": "Bullring Finance 2",
"trade_name": "Anisere",
"description": "yfguy bhbiu",
"source_of_funds": "grants",
"business_type": "corporation",
"website": "bullring.finance",
"registered_address": {
"street_line_1": "1 Swallow Street",
"street_line_2": "",
"city": "birmingham",
"subdivision": "EN",
"postal_code": "B2 4AA",
"country": "GBR"
},
"physical_address": {
"street_line_1": "1 Swallow Street",
"street_line_2": "",
"city": "birmingham",
"subdivision": "EN",
"postal_code": "B2 4AA",
"country": "GBR"
},
"identification": [
{
"type": "crn",
"number": "1760716",
"issuing_country": "GBR",
"image_front": "https://res.cloudinary.com/bullring-finance/image/upload/v1768169867/verification/2026-01-11/ofq7atduwn1bwvtvxrb1.png",
"image_back": ""
}
],
"is_dao": false,
"is_money_transmitter": false,
"business_industry": [
"111150"
],
"account_purpose": "payroll",
"ultimate_beneficial_owners": [
{
"first_name": "John",
"middle_name": "Omoniyi",
"last_name": "Anisere",
"birth_date": "1993-10-05T00:00:00.000Z",
"email": "[email protected]",
"address": {
"street_line_1": "1 Swallow Street",
"street_line_2": "",
"city": "birmingham",
"subdivision": "EN",
"postal_code": "B2 4AA",
"country": "GBR"
},
"identification": [
{
"type": "passport",
"number": "B50091752",
"issuing_country": "NGA",
"image_front": "https://res.cloudinary.com/bullring-finance/image/upload/v1768169918/verification/2026-01-11/mvwnlnpgvzrxuiyw0erl.png",
"image_back": ""
}
],
"has_ownership": true,
"has_control": true,
"is_signer": true,
"title": "CEO"
}
],
"formation_document": "https://res.cloudinary.com/bullring-finance/image/upload/v1768169962/verification/2026-01-11/qxxtzbtflevi7ipxcfkg.png",
"ownership_document": "https://res.cloudinary.com/bullring-finance/image/upload/v1768169966/verification/2026-01-11/vlidzev2rladftq7a1td.png",
"flow_of_funds_document": null,
"has_material_intermediary_ownership": false
}{
"statusCode": 400,
"timestamp": "2025-12-31T10:19:59.164Z",
"error": "Error",
"message": "Missing required fields: signed_agreement_id"
}Authorizations
Path Parameters
The unique identifier of the subaccount
Body
application/json
The body is of type object.
Response
Submission successful
Show child attributes
Show child attributes
Available options:
business_loans, grants, inter_company_funds, investment_proceeds, legal_settlement, owners_capital, pension_retirement, sale_of_assets, sales_of_goods_and_services, tax_refund, third_party_funds, treasury_reserves Available options:
cooperative, corporation, llc, other, partnership, sole_prop, trust Show child attributes
Show child attributes
Show child attributes
Show child attributes
Array of identification documents for the beneficial owner. See Individual ID Numbers for accepted document types.
Show child attributes
Show child attributes
Array of Industry codes of the industry or industries the business operates in. The can be gotten here Industry Codes
Available options:
charitable_donations, ecommerce_retail_payments, investment_purposes, other, payments_to_friends_or_family_abroad, payroll, personal_or_living_expenses, protect_wealth, purchase_goods_and_services, receive_payments_for_goods_and_services, tax_optimization, third_party_money_transmission, treasury_management Show child attributes
Show child attributes
Supported document formats are jpeg, jpg, png, heic, heif, pdf
Supported document formats are jpeg, jpg, png, heic, heif, pdf
Supported document formats are jpeg, jpg, png, heic, heif, pdf