Get Issuance Requirements
curl --request GET \
--url https://api.rolla.xyz/api/v1/external/accounts/{accountId}/bank-accounts/requirements \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.rolla.xyz/api/v1/external/accounts/{accountId}/bank-accounts/requirements"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.rolla.xyz/api/v1/external/accounts/{accountId}/bank-accounts/requirements', 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.rolla.xyz/api/v1/external/accounts/{accountId}/bank-accounts/requirements",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.rolla.xyz/api/v1/external/accounts/{accountId}/bank-accounts/requirements"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.rolla.xyz/api/v1/external/accounts/{accountId}/bank-accounts/requirements")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rolla.xyz/api/v1/external/accounts/{accountId}/bank-accounts/requirements")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Bank account requirements retrieved successfully",
"data": {
"currency": "<string>",
"applicationApproved": true,
"requiredFields": [
"<string>"
],
"missingFields": [
"<string>"
],
"onboardingState": "<string>",
"prefilled": {},
"availableDocuments": {}
}
}{
"success": false,
"message": "<string>"
}{
"success": false,
"message": "<string>"
}{
"success": false,
"message": "<string>"
}Account Onboarding
Get Issuance Requirements
Shows which provider will be used for the given currency, the details prefilled from the account’s application, and anything still missing before a bank account can be issued. Use this to know exactly what to pass in accountData when issuing.
GET
/
accounts
/
{accountId}
/
bank-accounts
/
requirements
Get Issuance Requirements
curl --request GET \
--url https://api.rolla.xyz/api/v1/external/accounts/{accountId}/bank-accounts/requirements \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.rolla.xyz/api/v1/external/accounts/{accountId}/bank-accounts/requirements"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.rolla.xyz/api/v1/external/accounts/{accountId}/bank-accounts/requirements', 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.rolla.xyz/api/v1/external/accounts/{accountId}/bank-accounts/requirements",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.rolla.xyz/api/v1/external/accounts/{accountId}/bank-accounts/requirements"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.rolla.xyz/api/v1/external/accounts/{accountId}/bank-accounts/requirements")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rolla.xyz/api/v1/external/accounts/{accountId}/bank-accounts/requirements")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Bank account requirements retrieved successfully",
"data": {
"currency": "<string>",
"applicationApproved": true,
"requiredFields": [
"<string>"
],
"missingFields": [
"<string>"
],
"onboardingState": "<string>",
"prefilled": {},
"availableDocuments": {}
}
}{
"success": false,
"message": "<string>"
}{
"success": false,
"message": "<string>"
}{
"success": false,
"message": "<string>"
}Shows everything needed to issue a bank account for the given currency: which provider will be used, the details prefilled from the account’s application, and anything still missing. Whatever is missing can be supplied via
accountData when calling Issue Bank Account.
Example Request
curl -X GET "https://api.rolla.xyz/api/v1/external/accounts/eec3cbed-79d8-4370-87a0-b6be9e287337/bank-accounts/requirements?currency=NGN" \
-H "X-API-Key: your_api_key_here"
Example Response
NGN
{
"success": true,
"message": "Bank account requirements retrieved successfully",
"data": {
"currency": "NGN",
"provider": "rolla",
"applicationApproved": true,
"requiredFields": ["businessName", "businessIdentifier", "mobileNum", "bvn"],
"missingFields": ["bvn"],
"prefilled": {
"businessName": "Beta Logistics LLC",
"businessIdentifier": "LLC-123987",
"mobileNum": "+13025550124",
"bvn": ""
}
}
}
USD
{
"success": true,
"message": "Bank account requirements retrieved successfully",
"data": {
"currency": "USD",
"provider": "rolla",
"applicationApproved": true,
"onboardingState": null,
"prefilled": {
"onboardingDetails": {
"businessInfo": { "name": "Beta Logistics LLC", "taxId": "98-7654321" },
"businessAddress": { "line1": "77 Commerce Ave", "city": "Wilmington", "state": "DE", "postalCode": "19801", "country": "US" }
},
"representatives": [
{ "firstName": "Jane", "lastName": "Doe", "relatedPersonId": "a3d4f21e-f499-488f-8508-43228dfea485", "ownershipPercentage": 75, "isSigner": true }
],
"kybDocs": [
{ "id": "0c95b2a1-7a93-4a3a-9a52-2a1f0b9b3c11", "type": "certificate_of_incorporation", "source": "rolla" }
]
},
"availableDocuments": {
"business": [],
"representatives": []
}
}
}
Response Fields
| Field | Description |
|---|---|
provider | Provider that will issue the account, chosen by currency and account type |
applicationApproved | Bank accounts can only be issued once the application is approved |
requiredFields / missingFields | NGN: fields the provider requires and which are still empty |
onboardingState | USD: provider onboarding state, null until first submission |
prefilled | The payload that will be sent, built from the account’s application |
availableDocuments | USD: documents that will be attached, from the application and identity verification |
Authorizations
Your Rolla API key
Path Parameters
Identifier of an account owned by the same user as your API key's business
Query Parameters
Available options:
NGN, USD ⌘I