Onboarding
Create User
This API creates a new user account with business and personal details.
- Endpoint
POST {{baseUrl}}/roecny/api/v1/user
Description
This endpoint creates a new user account with comprehensive business, personal, and document information.Create a new ROECNY account for your users, merchants, subsidiaries, business partners, or clients. After providing all the necessary information, you can activate the account by submitting it through the 'Submit Account for Activation' endpoint.
Request Headers
Parameter | Type | Required | Description |
---|---|---|---|
x-api-key | string | Yes | Shared X-API key provided by Roecny |
x-program-id | string | Yes | Program identifier |
x-request-id | string | Yes | Idempotency key |
user -id | string | Yes | User identifier |
Authorization | string | Yes | Bearer token |
Content-Type | string | Yes | Must be application/json |
Request Body Parameters
Parameter | Type | Required | Description |
---|---|---|---|
Core Fields | |||
emailId | string | Yes | User's email address (primary_contact.email ) |
amount | string | Yes | Estimated monthly revenue amount (account_usage.estimated_monthly_revenue.amount ) |
currency | string | Yes | Revenue currency (e.g., USD ) |
businessName | string | Yes | Registered business name (business_name ) |
businessStructure | string | Yes | Entity type (e.g., COMPANY ) |
contactNumber | string | Yes | Business contact number (contact_number ) |
Identification | |||
identificationType | string | Yes | ID type (e.g., PASSPORT ) |
Idnumber | string | Yes | ID number (identifications.primary.passport.number ) |
issuingCountryCode | string | Yes | ID issuing country (ISO code) |
effectiveAt | string | Yes | ID issue date (YYYY-MM-DD ) |
expireAt | string | Yes | ID expiry date (YYYY-MM-DD ) |
Personal Details | |||
firstName | string | Yes | User's first name (first_name ) |
middleName | string | No | User's middle name (middle_name ) |
lastName | string | Yes | User's last name (last_name ) |
dateOfBirth | string | Yes | DoB (YYYY-MM-DD ) (date_of_birth ) |
nationality | string | Yes | Nationality (ISO code) (nationality ) |
mobile | string | Yes | Mobile number (primary_contact.mobile ) |
roles | string[] | Yes | User roles (e.g., ["BENEFICIAL_OWNER"] ) |
Business Details | |||
legalEntityType | string | Yes | Entity type (e.g., BUSINESS ) |
asTrustee | boolean | Yes | Whether acting as trustee (as_trustee ) |
agreedToTermsAndConditions | boolean | Yes | Terms acceptance (customer_agreements.agreed_to_terms_and_conditions ) |
agreedToDataUsage | boolean | Yes | Data consent (customer_agreements.agreed_to_data_usage ) |
productReference | string[] | Yes | Use cases (e.g., ["ACCEPT_ONLINE_PAYMENTS"] ) |
type | string | Yes | Business ID type (e.g., BRN ) |
number | string | Yes | Business registration number (business_identifiers.number ) |
descriptionOfGoodsOrServices | string | Yes | Description of services (description_of_goods_or_services ) |
industryCategoryCode | string | Yes | Industry code (e.g., ICCV3_0000XX ) |
operatingCountry | string[] | Yes | Operating countries (e.g., ["US", "SG"] ) |
Addresses | |||
registrationAddressLine1 | string | Yes | Business address line 1 |
registrationAddressLine2 | string | No | Business address line 2 |
registrationCountryCode | string | Yes | Business country (ISO code) |
registrationPostcode | string | Yes | Business postal code |
registrationState | string | Yes | Business state/province |
registrationSuburb | string | Yes | Business locality |
residentialAddressLine1 | string | Yes | User's residential address line 1 |
residentialCountryCode | string | Yes | Residential country (ISO code) |
residentialPostcode | string | Yes | Residential postal code |
residentialState | string | Yes | Residential state/province |
residentialSuburb | string | Yes | Residential locality |
Documents | |||
fileId | string | Yes | Business doc file ID (business_documents.file_id ) |
tag | string | Yes | Business doc type (e.g., BUSINESS_LICENSE ) |
frontFileId | string | Yes | ID front file (identifications.primary.passport.front_file_id ) |
personDocumentsFileId | string | Yes | Person doc file ID (business_person_documents.file_id ) |
personDocumentsTag | string | Yes | Person doc type (e.g., PERSON_PURPORTING_TO_ACT_AUTHORISATION_LETTER ) |
liveSelfieFileId | string | Yes | Selfie file ID (missing in cURL) |
countryCode | string | Yes | Business registration country (business_identifiers.country_code ) |
Request Example
- cURL
- Python
- php
- C#
curl --request POST \
--url {{baseUrl}}/roecny/api/v1/user \
--header 'x-api-key: {{Shared Xapikey By Roecny}}' \
--header 'x-program-id: {{BasedOnRequirement}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id:{{Useridentificationkey}}'\
--header 'Authorization: Bearer {{YOUR_TOKEN}}' \
--data-raw '{
"account_details": {
"business_details": {
"account_usage": {
"estimated_monthly_revenue": {
"amount": "50",
"currency": "USD"
},
"product_reference": [
"ACCEPT_ONLINE_PAYMENTS",
"RECEIVE_TRANSFERS"
]
},
"as_trustee": true,
"attachments": {
"business_documents": [
{
"file_id": "NzViMjBjNzgtMjJmYy00ZTAwLWFlOGYtNmEwNTc3MDlhZmFjLHwsaG9uZ2tvbmcsfCxibGFuay5wZGZfMTc0MzQ5NTg5MTYzMA",
"tag": "BUSINESS_LICENSE"
}
]
},
"business_identifiers": [
{
"country_code": "SG",
"number": "A1098762872",
"type": "BRN"
}
],
"business_name": "Roecny Group LLC",
"business_structure": "COMPANY",
"contact_number": "528854125",
"description_of_goods_or_services": "food",
"industry_category_code": "ICCV3_0000XX",
"operating_country": [
"US",
"AU","SG"
],
"registration_address": {
"address_line1": "200 Collins Street",
"address_line2": "200 Collins Street",
"country_code": "SG",
"postcode": "3000",
"state": "Singapore",
"suburb": "Melbourne"
}
},
"business_person_details": [
{
"attachments": {
"business_person_documents": [
{
"file_id": "NzViMjBjNzgtMjJmYy00ZTAwLWFlOGYtNmEwNTc3MDlhZmFjLHwsaG9uZ2tvbmcsfCxibGFuay5wZGZfMTc0MzQ5NTg5MTYzMA",
"tag": "PERSON_PURPORTING_TO_ACT_AUTHORISATION_LETTER"
}
]
},
"residential_address": {
"address_line1": "200 Collins Street",
"country_code": "SG",
"postcode": "3000",
"state": "VIC",
"suburb": "Melbourne"
},
"date_of_birth": "1980-10-10",
"first_name": "testAir",
"roles": [
"BENEFICIAL_OWNER"
],
"identifications": {
"primary": {
"identification_type": "PASSPORT",
"issuing_country_code": "SG",
"passport": {
"effective_at": "2020-11-01",
"expire_at": "2040-11-01",
"front_file_id": "NzViMjBjNzgtMjJmYy00ZTAwLWFlOGYtNmEwNTc3MDlhZmFjLHwsaG9uZ2tvbmcsfCxibGFuay5wZGZfMTc0MzQ5NTg5MTYzMA",
"number": "6275046"
}
}
},
"last_name": "Smith",
"middle_name": "John",
"nationality": "SG"
}
],
"legal_entity_type": "BUSINESS"
},
"customer_agreements": {
"agreed_to_data_usage": true,
"agreed_to_terms_and_conditions": false
},
"primary_contact": {
"email": "roecny11@gmail.com",
"mobile": "896378924"
}
}
import requests
import json
url = "{{baseUrl}}/roecny/api/v1/user"
payload = {
"account_details": {
"business_details": {
"account_usage": {
"estimated_monthly_revenue": {
"amount": "50",
"currency": "USD"
},
"product_reference": [
"ACCEPT_ONLINE_PAYMENTS",
"RECEIVE_TRANSFERS"
]
},
"as_trustee": True,
"attachments": {
"business_documents": [
{
"file_id": "NzViMjBjNzgtMjJmYy00ZTAwLWFlOGYtNmEwNTc3MDlhZmFjLHwsaG9uZ2tvbmcsfCxibGFuay5wZGZfMTc0MzQ5NTg5MTYzMA",
"tag": "BUSINESS_LICENSE"
}
]
},
"business_identifiers": [
{
"country_code": "SG",
"number": "A1098762872",
"type": "BRN"
}
],
"business_name": "Roecny Group LLC",
"business_structure": "COMPANY",
"contact_number": "528854125",
"description_of_goods_or_services": "food",
"industry_category_code": "ICCV3_0000XX",
"operating_country": ["US", "AU", "SG"],
"registration_address": {
"address_line1": "200 Collins Street",
"address_line2": "200 Collins Street",
"country_code": "SG",
"postcode": "3000",
"state": "Singapore",
"suburb": "Melbourne"
}
},
"business_person_details": [
{
"attachments": {
"business_person_documents": [
{
"file_id": "NzViMjBjNzgtMjJmYy00ZTAwLWFlOGYtNmEwNTc3MDlhZmFjLHwsaG9uZ2tvbmcsfCxibGFuay5wZGZfMTc0MzQ5NTg5MTYzMA",
"tag": "PERSON_PURPORTING_TO_ACT_AUTHORISATION_LETTER"
}
]
},
"residential_address": {
"address_line1": "200 Collins Street",
"country_code": "SG",
"postcode": "3000",
"state": "VIC",
"suburb": "Melbourne"
},
"date_of_birth": "1980-10-10",
"first_name": "testAir",
"roles": ["BENEFICIAL_OWNER"],
"identifications": {
"primary": {
"identification_type": "PASSPORT",
"issuing_country_code": "SG",
"passport": {
"effective_at": "2020-11-01",
"expire_at": "2040-11-01",
"front_file_id": "NzViMjBjNzgtMjJmYy00ZTAwLWFlOGYtNmEwNTc3MDlhZmFjLHwsaG9uZ2tvbmcsfCxibGFuay5wZGZfMTc0MzQ5NTg5MTYzMA",
"number": "6275046"
}
}
},
"last_name": "Smith",
"middle_name": "John",
"nationality": "SG"
}
],
"legal_entity_type": "BUSINESS"
},
"customer_agreements": {
"agreed_to_data_usage": True,
"agreed_to_terms_and_conditions": False
},
"primary_contact": {
"email": "roecny11@gmail.com",
"mobile": "896378924"
}
}
headers = {
'x-api-key': '{{Shared Xapikey By Roecny}}',
'x-program-id': '{{BasedOnRequirement}}',
'x-request-id': '{{IdempotencyKey}}',
'x-user-id': '{{Useridentificationkey}}',
'Authorization': 'Bearer {{YOUR_TOKEN}}',
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
print(response.text)
<?php
$url = '{{baseUrl}}/roecny/api/v1/user';
$data = [
'account_details' => [
'business_details' => [
'account_usage' => [
'estimated_monthly_revenue' => [
'amount' => '50',
'currency' => 'USD'
],
'product_reference' => [
'ACCEPT_ONLINE_PAYMENTS',
'RECEIVE_TRANSFERS'
]
],
'as_trustee' => true,
'attachments' => [
'business_documents' => [
[
'file_id' => 'NzViMjBjNzgtMjJmYy00ZTAwLWFlOGYtNmEwNTc3MDlhZmFjLHwsaG9uZ2tvbmcsfCxibGFuay5wZGZfMTc0MzQ5NTg5MTYzMA',
'tag' => 'BUSINESS_LICENSE'
]
]
],
'business_identifiers' => [
[
'country_code' => 'SG',
'number' => 'A1098762872',
'type' => 'BRN'
]
],
'business_name' => 'Roecny Group LLC',
'business_structure' => 'COMPANY',
'contact_number' => '528854125',
'description_of_goods_or_services' => 'food',
'industry_category_code' => 'ICCV3_0000XX',
'operating_country' => ['US', 'AU', 'SG'],
'registration_address' => [
'address_line1' => '200 Collins Street',
'address_line2' => '200 Collins Street',
'country_code' => 'SG',
'postcode' => '3000',
'state' => 'Singapore',
'suburb' => 'Melbourne'
]
],
'business_person_details' => [
[
'attachments' => [
'business_person_documents' => [
[
'file_id' => 'NzViMjBjNzgtMjJmYy00ZTAwLWFlOGYtNmEwNTc3MDlhZmFjLHwsaG9uZ2tvbmcsfCxibGFuay5wZGZfMTc0MzQ5NTg5MTYzMA',
'tag' => 'PERSON_PURPORTING_TO_ACT_AUTHORISATION_LETTER'
]
]
],
'residential_address' => [
'address_line1' => '200 Collins Street',
'country_code' => 'SG',
'postcode' => '3000',
'state' => 'VIC',
'suburb' => 'Melbourne'
],
'date_of_birth' => '1980-10-10',
'first_name' => 'testAir',
'roles' => ['BENEFICIAL_OWNER'],
'identifications' => [
'primary' => [
'identification_type' => 'PASSPORT',
'issuing_country_code' => 'SG',
'passport' => [
'effective_at' => '2020-11-01',
'expire_at' => '2040-11-01',
'front_file_id' => 'NzViMjBjNzgtMjJmYy00ZTAwLWFlOGYtNmEwNTc3MDlhZmFjLHwsaG9uZ2tvbmcsfCxibGFuay5wZGZfMTc0MzQ5NTg5MTYzMA',
'number' => '6275046'
]
]
],
'last_name' => 'Smith',
'middle_name' => 'John',
'nationality' => 'SG'
]
],
'legal_entity_type' => 'BUSINESS'
],
'customer_agreements' => [
'agreed_to_data_usage' => true,
'agreed_to_terms_and_conditions' => false
],
'primary_contact' => [
'email' => 'roecny11@gmail.com',
'mobile' => '896378924'
]
];
$headers = [
'x-api-key: {{Shared Xapikey By Roecny}}',
'x-program-id: {{BasedOnRequirement}}',
'x-request-id: {{IdempotencyKey}}',
'x-user-id: {{Useridentificationkey}}',
'Authorization: Bearer {{YOUR_TOKEN}}',
'Content-Type: application/json'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("{{baseUrl}}/roecny/api/v1/user"),
Headers =
{
{ "x-api-key", "{{Shared Xapikey By Roecny}}" },
{ "x-program-id", "{{BasedOnRequirement}}" },
{ "x-request-id", "{{IdempotencyKey}}" },
{ "x-user-id", "{{Useridentificationkey}}" },
{ "Authorization", "Bearer {{YOUR_TOKEN}}" },
},
Content = new StringContent("{\"account_details\":{\"business_details\":{\"account_usage\":{\"estimated_monthly_revenue\":{\"amount\":\"50\",\"currency\":\"USD\"},\"product_reference\":[\"ACCEPT_ONLINE_PAYMENTS\",\"RECEIVE_TRANSFERS\"]},\"as_trustee\":true,\"attachments\":{\"business_documents\":[{\"file_id\":\"NzViMjBjNzgtMjJmYy00ZTAwLWFlOGYtNmEwNTc3MDlhZmFjLHwsaG9uZ2tvbmcsfCxibGFuay5wZGZfMTc0MzQ5NTg5MTYzMA\",\"tag\":\"BUSINESS_LICENSE\"}]},\"business_identifiers\":[{\"country_code\":\"SG\",\"number\":\"A1098762872\",\"type\":\"BRN\"}],\"business_name\":\"Roecny Group LLC\",\"business_structure\":\"COMPANY\",\"contact_number\":\"528854125\",\"description_of_goods_or_services\":\"food\",\"industry_category_code\":\"ICCV3_0000XX\",\"operating_country\":[\"US\",\"AU\",\"SG\"],\"registration_address\":{\"address_line1\":\"200 Collins Street\",\"address_line2\":\"200 Collins Street\",\"country_code\":\"SG\",\"postcode\":\"3000\",\"state\":\"Singapore\",\"suburb\":\"Melbourne\"}},\"business_person_details\":[{\"attachments\":{\"business_person_documents\":[{\"file_id\":\"NzViMjBjNzgtMjJmYy00ZTAwLWFlOGYtNmEwNTc3MDlhZmFjLHwsaG9uZ2tvbmcsfCxibGFuay5wZGZfMTc0MzQ5NTg5MTYzMA\",\"tag\":\"PERSON_PURPORTING_TO_ACT_AUTHORISATION_LETTER\"}]},\"residential_address\":{\"address_line1\":\"200 Collins Street\",\"country_code\":\"SG\",\"postcode\":\"3000\",\"state\":\"VIC\",\"suburb\":\"Melbourne\"},\"date_of_birth\":\"1980-10-10\",\"first_name\":\"testAir\",\"roles\":[\"BENEFICIAL_OWNER\"],\"identifications\":{\"primary\":{\"identification_type\":\"PASSPORT\",\"issuing_country_code\":\"SG\",\"passport\":{\"effective_at\":\"2020-11-01\",\"expire_at\":\"2040-11-01\",\"front_file_id\":\"NzViMjBjNzgtMjJmYy00ZTAwLWFlOGYtNmEwNTc3MDlhZmFjLHwsaG9uZ2tvbmcsfCxibGFuay5wZGZfMTc0MzQ5NTg5MTYzMA\",\"number\":\"6275046\"}}},\"last_name\":\"Smith\",\"middle_name\":\"John\",\"nationality\":\"SG\"}],\"legal_entity_type\":\"BUSINESS\"},\"customer_agreements\":{\"agreed_to_data_usage\":true,\"agreed_to_terms_and_conditions\":false},\"primary_contact\":{\"email\":\"roecny11@gmail.com\",\"mobile\":\"896378924\"}}", Encoding.UTF8, "application/json")
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}
}
}
Response Example
- 200: Success
- 400: Error
{
"status": "Success",
"message": "User Created Successfully",
"code": 200,
"data": [
{
"id": "acct_DWeNysBzON6IH3AFSs81QQ"
}
]
}
{
"code": 400,
"status": "Error",
"message": "failed reason"
}
Get User
This API retrieves user details from the system.
- Endpoint
GET {{baseUrl}}/roecny/api/v1/user
Description
This endpoint retrieves the details of an existing user including business information, personal details, and account status.Update existing customer details using the update user API endpoint. Any changes to the existing user’s address, user's personal details or phone number can be initiated using the PATCH HTTP method. These changes will not affect the existing user's id. All parameters used in create user can be updated, except Agent Code, subagent Code and email.
Request Headers
Parameter | Type | Required | Description |
---|---|---|---|
x-api-key | string | Yes | Shared X-API key provided by Roecny |
x-program-id | string | Yes | Program identifier |
x-request-id | string | Yes | Idempotency key |
x-user-id | string | Yes | User identification key |
Authorization | string | Yes | Bearer token |
Content-Type | string | Yes | Must be application/json |
Request Examples
- cURL
- Java
- Python
- php
- C#
curl --request GET \
--url {{baseUrl}}/roecny/api/v1/user \
--header 'x-api-key: {{Shared Xapikey By Roecny}}' \
--header 'x-program-id: {{BasedOnRequirement}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{Useridentificationkey}}' \
--header 'Authorization: Bearer {{Bearer Token}}'
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class GetUser {
public static void main(String[] args) throws Exception {
URL url = new URL("{{baseUrl}}/roecny/api/v1/user");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
// Set headers
conn.setRequestProperty("x-api-key", "{{Shared Xapikey By Roecny}}");
conn.setRequestProperty("x-program-id", "{{BasedOnRequirement}}");
conn.setRequestProperty("x-request-id", "{{IdempotencyKey}}");
conn.setRequestProperty("x-user-id", "{{Useridentificationkey}}");
conn.setRequestProperty("Authorization", "Bearer {{Bearer Token}}");
int responseCode = conn.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
}
}
import requests
url = "{{baseUrl}}/roecny/api/v1/user"
headers = {
"x-api-key": "{{Shared Xapikey By Roecny}}",
"x-program-id": "{{BasedOnRequirement}}",
"x-request-id": "{{IdempotencyKey}}",
"x-user-id": "{{Useridentificationkey}}",
"Authorization": "Bearer {{Bearer Token}}"
}
response = requests.get(url, headers=headers)
print(response.json())
<?php
$url = '{{baseUrl}}/roecny/api/v1/user';
$headers = array(
'x-api-key: {{Shared Xapikey By Roecny}}',
'x-program-id: {{BasedOnRequirement}}',
'x-request-id: {{IdempotencyKey}}',
'x-user-id: {{Useridentificationkey}}',
'Authorization: Bearer {{Bearer Token}}'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
using System;
using System.Net;
using System.IO;
class Program
{
static void Main()
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("{{baseUrl}}/roecny/api/v1/user");
request.Method = "GET";
// Set headers
request.Headers["x-api-key"] = "{{Shared Xapikey By Roecny}}";
request.Headers["x-program-id"] = "{{BasedOnRequirement}}";
request.Headers["x-request-id"] = "{{IdempotencyKey}}";
request.Headers["x-user-id"] = "{{Useridentificationkey}}";
request.Headers["Authorization"] = "Bearer {{Bearer Token}}";
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string jsonResponse = reader.ReadToEnd();
Console.WriteLine(jsonResponse);
}
catch (WebException ex)
{
Console.WriteLine(ex.Message);
}
}
}
Response Example
- 200: Success
- 400: Error
{
"status": "success",
"message": "User Details Fetched Successfully",
"code": 200,
"data": {
"account_details": {
"attachments": {
"additional_files": []
},
"business_details": {
"account_usage": {
"estimated_monthly_revenue": {
"amount": "10.0",
"currency": "USD"
},
"product_reference": [
"ACCEPT_ONLINE_PAYMENTS",
"SG"
]
},
"as_trustee": true,
"attachments": {
"business_documents": []
},
"business_address": null,
"business_identifiers": [],
"business_name": "Roecny Group LLC",
"business_name_english": null,
"business_name_trading": null,
"business_start_date": null,
"business_structure": "COMPANY",
"contact_number": null,
"description_of_goods_or_services": "Payment gateway services",
"explanation_for_high_risk_countries_exposure": null,
"has_nominee_shareholders": null,
"industry_category_code": "ICCV3_0000XX",
"no_shareholders_with_over_25percent": null,
"operating_country": [],
"registration_address": {
"address_line1": "123 Market Street",
"address_line2": "Suite 456",
"country_code": "SG",
"postcode": "2010",
"state": "NSW",
"suburb": "Newtown"
},
"registration_address_english": null,
"state_of_incorporation": null,
"url": null,
"urls": null
},
"business_person_details": [],
"trustee_details": null,
"individual_details": null,
"legal_entity_id": "le_CZY8LKCSOzK5LMsCEd7c_A",
"legal_entity_identifier": null,
"legal_entity_type": "BUSINESS"
},
"created_at": "2025-04-25T13:38:40+0000",
"customer_agreements": {
"agreed_to_data_usage": true,
"agreed_to_terms_and_conditions": true,
"terms_and_conditions": {
"device_data": {},
"service_agreement_type": "FULL"
}
},
"id": "acct_mdUe_PvMMzqYGd0Qmlib9g",
"nickname": "acct_mdUe_PvMMzqYGd0Qmlib9g",
"primary_contact": {
"attachments": {
"identity_files": []
},
"email": "testroecny7@gmail.com",
"mobile": "912514678"
},
"status": "CREATED",
"view_type": "EXCLUDED_PII"
}
}
{
"code": 400,
"status": "error",
"message": "Failed to fetch user details"
}
Accept Terms And Conditions
This API allows users to accept the terms and conditions.
- Endpoint
GET {{baseUrl}}/roecny/api/v1/user/termsConditions
Description
This API retrieves the current version of the Terms & Conditions that the user must review and accept. It ensures that the user has agreed to the legal and compliance requirements before proceeding with account creation or accessing platform services. This is a mandatory step in the onboarding process.
Request Headers
Parameter | Type | Required | Description |
---|---|---|---|
x-api-key | string | Yes | Shared X-API key provided by Roecny |
x-program-id | string | Yes | Program identifier |
x-request-id | string | Yes | Idempotency key |
x-user-id | string | Yes | User identification key |
Authorization | string | Yes | Bearer token |
Content-Type | string | Yes | Must be application/json |
Request Examples
- cURL
- Java
- Python
- php
- C#
curl --request GET \
--url {{baseUrl}}/roecny/api/v1/user/termsConditions \
--header 'x-api-key: {{Shared Xapikey By Roecny}}' \
--header 'x-program-id: {{BasedOnRequirement}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{Useridentificationkey}}' \
--header 'Authorization: Bearer {{Bearer Token}}'
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class AcceptTerms {
public static void main(String[] args) throws Exception {
URL url = new URL("{{baseUrl}}/roecny/api/v1/user/termsConditions");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
// Set headers
conn.setRequestProperty("x-api-key", "{{Shared Xapikey By Roecny}}");
conn.setRequestProperty("x-program-id", "{{BasedOnRequirement}}");
conn.setRequestProperty("x-request-id", "{{IdempotencyKey}}");
conn.setRequestProperty("x-user-id", "{{Useridentificationkey}}");
conn.setRequestProperty("Authorization", "Bearer {{Bearer Token}}");
int responseCode = conn.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
}
}
import requests
url = "{{baseUrl}}/roecny/api/v1/user/termsConditions"
headers = {
"x-api-key": "{{Shared Xapikey By Roecny}}",
"x-program-id": "{{BasedOnRequirement}}",
"x-request-id": "{{IdempotencyKey}}",
"x-user-id": "{{Useridentificationkey}}",
"Authorization": "Bearer {{Bearer Token}}"
}
response = requests.get(url, headers=headers)
print(response.json())
<?php
$url = '{{baseUrl}}/roecny/api/v1/user/termsConditions';
$headers = array(
'x-api-key: {{Shared Xapikey By Roecny}}',
'x-program-id: {{BasedOnRequirement}}',
'x-request-id: {{IdempotencyKey}}',
'x-user-id: {{Useridentificationkey}}',
'Authorization: Bearer {{Bearer Token}}'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
using System;
using System.Net;
using System.IO;
class Program
{
static void Main()
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("{{baseUrl}}/roecny/api/v1/user/termsConditions");
request.Method = "GET";
// Set headers
request.Headers["x-api-key"] = "{{Shared Xapikey By Roecny}}";
request.Headers["x-program-id"] = "{{BasedOnRequirement}}";
request.Headers["x-request-id"] = "{{IdempotencyKey}}";
request.Headers["x-user-id"] = "{{Useridentificationkey}}";
request.Headers["Authorization"] = "Bearer {{Bearer Token}}";
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string jsonResponse = reader.ReadToEnd();
Console.WriteLine(jsonResponse);
}
catch (WebException ex)
{
Console.WriteLine(ex.Message);
}
}
}
Response Examples
- 200: Success
- 400: Error
{
"status": "success",
"message": "Terms and conditions accepted successfully"
}
{
"code": 400,
"status": "Error",
"message": "failed reason"
}
Account Activation
This API activates a user account in the system.
- Endpoint
GET {{baseUrl}}/roecny/api/v1/user/activate
Description
This API retrieves the activation status of a user’s account. It checks whether all required onboarding steps have been completed and confirms if the account is fully activated and ready for use. This endpoint is typically used after submitting the account for activation.
Request Headers
Parameter | Type | Required | Description |
---|---|---|---|
x-api-key | string | Yes | Shared X-API key provided by Roecny |
x-program-id | string | Yes | Program identifier |
x-request-id | string | Yes | Idempotency key |
x-user-id | string | Yes | User identification key |
Authorization | string | Yes | Bearer token |
Content-Type | string | Yes | Must be application/json |
Request Examples
- cURL
- Java
- Python
- php
- C#
curl --request GET \
--url {{baseUrl}}/roecny/api/v1/user/activate \
--header 'x-api-key: {{Shared Xapikey By Roecny}}' \
--header 'x-program-id: {{BasedOnRequirement}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{Useridentificationkey}}' \
--header 'Authorization: Bearer {{Bearer Token}}'
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class ActivateAccount {
public static void main(String[] args) throws Exception {
URL url = new URL("{{baseUrl}}/roecny/api/v1/user/activate");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
// Set headers
conn.setRequestProperty("x-api-key", "{{Shared Xapikey By Roecny}}");
conn.setRequestProperty("x-program-id", "{{BasedOnRequirement}}");
conn.setRequestProperty("x-request-id", "{{IdempotencyKey}}");
conn.setRequestProperty("x-user-id", "{{Useridentificationkey}}");
conn.setRequestProperty("Authorization", "Bearer {{Bearer Token}}");
int responseCode = conn.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
}
}
import requests
url = "{{baseUrl}}/roecny/api/v1/user/activate"
headers = {
"x-api-key": "{{Shared Xapikey By Roecny}}",
"x-program-id": "{{BasedOnRequirement}}",
"x-request-id": "{{IdempotencyKey}}",
"x-user-id": "{{Useridentificationkey}}",
"Authorization": "Bearer {{Bearer Token}}"
}
response = requests.get(url, headers=headers)
print(response.json())
<?php
$url = '{{baseUrl}}/roecny/api/v1/user/activate';
$headers = array(
'x-api-key: {{Shared Xapikey By Roecny}}',
'x-program-id: {{BasedOnRequirement}}',
'x-request-id: {{IdempotencyKey}}',
'x-user-id: {{Useridentificationkey}}',
'Authorization: Bearer {{Bearer Token}}'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
using System;
using System.Net;
using System.IO;
class Program
{
static void Main()
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("{{baseUrl}}/roecny/api/v1/user/activate");
request.Method = "GET";
// Set headers
request.Headers["x-api-key"] = "{{Shared Xapikey By Roecny}}";
request.Headers["x-program-id"] = "{{BasedOnRequirement}}";
request.Headers["x-request-id"] = "{{IdempotencyKey}}";
request.Headers["x-user-id"] = "{{Useridentificationkey}}";
request.Headers["Authorization"] = "Bearer {{Bearer Token}}";
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string jsonResponse = reader.ReadToEnd();
Console.WriteLine(jsonResponse);
}
catch (WebException ex)
{
Console.WriteLine(ex.Message);
}
}
}
Response Examples
- 200: Success
- 400: Error
{
"status": "success",
"message": "Account Activated"
}
{
"code": 400,
"status": "Error",
"message": "failed reason"
}
Retrieve RFI
This API retrieves details of an RFI using the given RFI ID.
- Endpoint
GET {{baseUrl}}/roecny/api/v1/user/rfi
Description
This API allows you to retrieve the details of a Request for Information (RFI) linked to a specific account or user. RFIs are generated when additional data or documentation is required for compliance, verification, or due diligence purposes. The API response includes the RFI status, requested items, and any relevant instructions for completion.
Request Headers
Parameter | Type | Required | Description |
---|---|---|---|
x-api-key | string | Yes | Shared X-API key provided by Roecny |
x-program-id | string | Yes | Program identifier |
x-request-id | string | Yes | Idempotency key |
x-user-id | string | Yes | User identification key |
Authorization | string | Yes | Bearer token |
Content-Type | string | Yes | Must be application/json |
Response Fields
Field | Type | Description |
---|---|---|
account_id | string | Unique account identifier |
active_request | object | Current pending RFI details |
answered_requests | array | List of previously answered RFIs |
status | string | RFI status (e.g., ACTION_REQUIRED) |
type | string | RFI type (e.g., KYC) |
created_at | string | ISO 8601 creation timestamp |
updated_at | string | ISO 8601 last update timestamp |
Question Object Fields:
Field | Type | Description |
---|---|---|
id | string | Unique question identifier |
key | string | Question type key (e.g., PROOF_OF_ADDRESS) |
title | object | Localized question titles |
description | object | Localized descriptions |
answer | object | Provided answer details |
attachments | array | List of attached files |
comment | string | Additional comments |
Request Example
- cURL
- Java
- Python
- php
- C#
curl -X GET \
"{{baseUrl}}/roecny/api/v1/user/rfi" \
-H "x-api-key: {{Shared Xapikey By Roecny}}" \
-H "x-program-id: {{BasedOnRequirement}}" \
-H "x-request-id: {{IdempotencyKey}}" \
-H "x-user-id: {{Useridentificationkey}}"
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class CurlRequest {
public static void main(String[] args) {
try {
String baseUrl = "{{baseUrl}}";
String apiKey = "{{Shared Xapikey By Roecny}}";
String programId = "{{BasedOnRequirement}}";
String requestId = "{{IdempotencyKey}}";
String userId = "{{Useridentificationkey}}";
URL url = new URL(baseUrl + "/roecny/api/v1/user/rfi");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
// Set headers
connection.setRequestProperty("x-api-key", apiKey);
connection.setRequestProperty("x-program-id", programId);
connection.setRequestProperty("x-request-id", requestId);
connection.setRequestProperty("x-user-id", userId);
int responseCode = connection.getResponseCode();
System.out.println("Response Code: " + responseCode);
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
import requests
headers = {
"x-api-key": "{{Shared Xapikey By Roecny}}",
"x-program-id": "{{BasedOnRequirement}}",
"x-request-id": "{{IdempotencyKey}}",
"x-user-id": "{{Useridentificationkey}}"
}
response = requests.get(
"{{baseUrl}}/roecny/api/v1/user/rfi",
headers=headers
)
print(response.json())
<?php
$baseUrl = "{{baseUrl}}";
$apiKey = "{{Shared Xapikey By Roecny}}";
$programId = "{{BasedOnRequirement}}";
$requestId = "{{IdempotencyKey}}";
$userId = "{{Useridentificationkey}}";
$url = $baseUrl . "/roecny/api/v1/user/rfi";
$headers = [
"x-api-key: " . $apiKey,
"x-program-id: " . $programId,
"x-request-id: " . $requestId,
"x-user-id: " . $userId
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPGET, true);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
} else {
echo "HTTP Code: " . $httpCode . "\n";
echo "Response: " . $response;
}
curl_close($ch);
?>
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
string baseUrl = "{{baseUrl}}";
string apiKey = "{{Shared Xapikey By Roecny}}";
string programId = "{{BasedOnRequirement}}";
string requestId = "{{IdempotencyKey}}";
string userId = "{{Useridentificationkey}}";
using (HttpClient client = new HttpClient())
{
client.BaseAddress = new Uri(baseUrl);
// Add headers
client.DefaultRequestHeaders.Add("x-api-key", apiKey);
client.DefaultRequestHeaders.Add("x-program-id", programId);
client.DefaultRequestHeaders.Add("x-request-id", requestId);
client.DefaultRequestHeaders.Add("x-user-id", userId);
try
{
HttpResponseMessage response = await client.GetAsync("/roecny/api/v1/user/rfi");
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine($"Status Code: {response.StatusCode}");
Console.WriteLine($"Response: {responseBody}");
}
catch (HttpRequestException e)
{
Console.WriteLine($"Error: {e.Message}");
}
}
}
}
Response Examples
{
"account_id": "acct_e_2wbiZ3Mx-ynlX-7Qidbg",
"active_request": {
"created_at": "2023-04-12T07:29:36+0000",
"questions": [
{
"answer": {
"address": {
"address_line1": "200 Collins Street",
"address_line2": "200 Collins Street",
"country_code": "AU",
"postcode": "3000",
"state": "VIC",
"suburb": "Melbourne"
},
"attachments": [
{
"file_id": "ZTEyOWJjZTItZGI5NS00NzI5LWI1YTQtZmQ2MmZlNDEwNzFlLHwsaG9uZ2tvbmcsfCzpvI7og5xDSS5wZGZfMTY4MzI1Nzg5OTUwOQ"
}
],
"identity_document": {
"back_file_id": "N2EwYTllMTgtZmZjOS00ZDllLWI1MDQtMDMyZjAzZTRjZWE0LHwsLHwsQ05fQkxfbmV3LnBuZ18xNjgzNTUyNjg3Nzg3",
"front_file_id": "N2EwYTllMTgtZmZjOS00ZDllLWI1MDQtMDMyZjAzZTRjZWE0LHwsLHwsQ05fQkxfbmV3LnBuZ18xNjgzNTUyNjg3Nzg3",
"issuing_country": "AU",
"number": "123456789",
"type": "DRIVING_LICENSE"
}
},
"id": "ba7bfb51-77bc-4991-b651-0969ece1d263",
"key": "PROOF_OF_ADDRESS",
"title": {
"en": "Information confirmation",
"zh": "信息确认"
}
}
],
"updated_at": "2023-04-14T07:29:36+0000"
},
"status": "ACTION_REQUIRED",
"type": "KYC",
"updated_at": "2023-04-12T07:29:36+0000"
}
Respond RFI
This API allows you to respond to an RFI request by providing the required answers.
- Endpoint
POST {{baseUrl}}/roecny/api/v1/user/rfi
Description
This API allows you to submit a response to an existing Request for Information (RFI). It is used to provide the required verification details along with any supporting documents requested during the compliance or onboarding process. A successful submission updates the RFI status and moves the review process forward.
Request Headers
Parameter | Type | Required | Description |
---|---|---|---|
x-api-key | string | Yes | Shared X-API key provided by Roecny |
x-program-id | string | Yes | BasedOnRequirement |
x-request-id | string | Yes | Idempotency key |
x-user-id | string | Yes | User identification key |
Authorization | string | Yes | Bearer token |
Content-Type | string | Yes | Must be application/json |
Request Body Parameters
Field | Type | Required | Description |
---|---|---|---|
id | string | Yes | RFI question identifier |
type | string | Yes | Response type (e.g., ADDRESS) |
address_line1 | string | Conditional | Street address line 1 |
address_line2 | string | No | Street address line 2 |
country_code | string | Conditional | 2-letter country code |
postcode | string | Conditional | Postal/ZIP code |
state | string | Conditional | State/Province code |
suburb | string | Conditional | City/Locality name |
attachments | array | No | File IDs of supporting documents |
Supported Response Types:
ADDRESS
: For proof of address verificationDOCUMENT
: For identity document verificationTEXT
: For simple text responses
Request Examples
- cURL
- Java
- Python
- php
- C#
- With Attachments
curl -X POST \
"{{baseUrl}}/roecny/api/v1/user/rfi" \
-H "x-api-key: {{Shared Xapikey By Roecny}}" \
-H "x-program-id: {{BasedOnRequirement}}" \
-H "x-request-id: {{IdempotencyKey}}" \
-H "x-user-id: {{Useridentificationkey}}" \
-H "Content-Type: application/json" \
-d '{
"id": "de73d13b-cb60-4541-8fa6-4bc50c1cbe92",
"type": "ADDRESS",
"address_line1": "200 Collins Street",
"address_line2": "200 Collins Street",
"country_code": "AU",
"postcode": "3000",
"state": "VIC",
"suburb": "Melbourne"
}'
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
public class RoecnyApiClient {
public static void main(String[] args) throws Exception {
String baseUrl = "{{baseUrl}}";
String jsonBody = "{\n" +
" \"id\": \"de73d13b-cb60-4541-8fa6-4bc50c1cbe92\",\n" +
" \"type\": \"ADDRESS\",\n" +
" \"address_line1\": \"200 Collins Street\",\n" +
" \"address_line2\": \"200 Collins Street\",\n" +
" \"country_code\": \"AU\",\n" +
" \"postcode\": \"3000\",\n" +
" \"state\": \"VIC\",\n" +
" \"suburb\": \"Melbourne\"\n" +
"}";
URL url = new URL(baseUrl + "/roecny/api/v1/user/rfi");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("x-api-key", "{{Shared Xapikey By Roecny}}");
conn.setRequestProperty("x-program-id", "{{BasedOnRequirement}}");
conn.setRequestProperty("x-request-id", "{{IdempotencyKey}}");
conn.setRequestProperty("x-user-id", "{{Useridentificationkey}}");
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
try(OutputStream os = conn.getOutputStream()) {
byte[] input = jsonBody.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
int responseCode = conn.getResponseCode();
System.out.println("Response Code: " + responseCode);
// Handle response here
}
}
import requests
headers = {
"x-api-key": "{{Shared Xapikey By Roecny}}",
"x-program-id": "{{BasedOnRequirement}}",
"x-request-id": "{{IdempotencyKey}}",
"x-user-id": "{{Useridentificationkey}}",
"Content-Type": "application/json"
}
payload = {
"id": "de73d13b-cb60-4541-8fa6-4bc50c1cbe92",
"type": "ADDRESS",
"address_line1": "200 Collins Street",
"address_line2": "200 Collins Street",
"country_code": "AU",
"postcode": "3000",
"state": "VIC",
"suburb": "Melbourne"
}
response = requests.post(
"{{baseUrl}}/roecny/api/v1/user/rfi",
headers=headers,
json=payload
)
print(response.json())
<?php
$baseUrl = "{{baseUrl}}";
$url = $baseUrl . "/roecny/api/v1/user/rfi";
$headers = [
'x-api-key: {{Shared Xapikey By Roecny}}',
'x-program-id: {{BasedOnRequirement}}',
'x-request-id: {{IdempotencyKey}}',
'x-user-id: {{Useridentificationkey}}',
'Content-Type: application/json'
];
$data = [
'id' => 'de73d13b-cb60-4541-8fa6-4bc50c1cbe92',
'type' => 'ADDRESS',
'address_line1' => '200 Collins Street',
'address_line2' => '200 Collins Street',
'country_code' => 'AU',
'postcode' => '3000',
'state' => 'VIC',
'suburb' => 'Melbourne'
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo "Response Code: " . $httpCode . "\n";
// Handle response here
curl_close($ch);
?>
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var baseUrl = "{{baseUrl}}";
var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "{{Shared Xapikey By Roecny}}");
client.DefaultRequestHeaders.Add("x-program-id", "{{BasedOnRequirement}}");
client.DefaultRequestHeaders.Add("x-request-id", "{{IdempotencyKey}}");
client.DefaultRequestHeaders.Add("x-user-id", "{{Useridentificationkey}}");
var jsonBody = @"{
""id"": ""de73d13b-cb60-4541-8fa6-4bc50c1cbe92"",
""type"": ""ADDRESS"",
""address_line1"": ""200 Collins Street"",
""address_line2"": ""200 Collins Street"",
""country_code"": ""AU"",
""postcode"": ""3000"",
""state"": ""VIC"",
""suburb"": ""Melbourne""
}";
var content = new StringContent(jsonBody, Encoding.UTF8, "application/json");
var response = await client.PostAsync($"{baseUrl}/roecny/api/v1/user/rfi", content);
Console.WriteLine($"Response Code: {(int)response.StatusCode}");
// Handle response here
}
}
{
"id": "de73d13b-cb60-4541-8fa6-4bc50c1cbe92",
"type": "ADDRESS",
"address_line1": "200 Collins Street",
"country_code": "AU",
"postcode": "3000",
"attachments": [
{
"file_id": "ZTEyOWJjZTItZGI5NS00NzI5LWI1YTQtZmQ2MmZlNDEwNzFl",
"purpose": "PROOF_OF_ADDRESS"
}
]
}
Response Examples
{
"status": "SUBMITTED",
"rfi_id": "de73d13b-cb60-4541-8fa6-4bc50c1cbe92",
"submitted_at": "2023-04-15T08:30:45Z",
"next_steps": "Verification may take 1-3 business days"
}