Commercial Registration
Retrieve verified company registration and business details using a unified registration number.
Integration guide
Goal: Look up a company's official registration and business details by its unified registration number.
Estimated time: 20 minutes
Prerequisites
- Sandbox credentials and an access token
- The company's unified registration number
- Your server IP whitelisted in the dashboard
When to use
- Validate a company's authenticity before a partnership or transaction
- Retrieve official registration status, ownership, contacts, and activities
- Build company verification into onboarding or internal risk systems
What it returns
Request inputs
| Field | Description |
|---|---|
unn | The company's unified registration number to look up |
Response, a structured company record:
| Category | Examples |
|---|---|
| General | Name, CR number, registration capital, issue date, liquidation status |
| Entity & status | Legal form, business entity type, current registration status |
| Parties | Partners / managers with identity, nationality, contribution amounts |
| Operations | Contact info, activities (ISIC-aligned), e-commerce status, fiscal year |
| Capital | Currency, cash / in-kind contributions, totals |
Integration summary
Prepare access
Generate an API key, whitelist your server IP, and obtain a Bearer access token.
Look up by registration number
curl "https://sandbox.sparefinancial.sa/api/v2.0/av/CommercialRegistration/Information?unifiedNationalNumber=..." \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"const res = await fetch(
"https://sandbox.sparefinancial.sa/api/v2.0/av/CommercialRegistration/Information?unifiedNationalNumber=...",
{
headers: {
Authorization: `Bearer ${accessToken}`,
},
},
);
const record = await res.json();import requests
res = requests.get(
"https://sandbox.sparefinancial.sa/api/v2.0/av/CommercialRegistration/Information",
params={"unifiedNationalNumber": "..."},
headers={
"Authorization": f"Bearer {access_token}",
},
)
record = res.json()import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://sandbox.sparefinancial.sa/api/v2.0/av/CommercialRegistration/Information?unifiedNationalNumber=..."))
.header("Authorization", "Bearer " + accessToken)
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
String record = response.body();using System;
using System.Net.Http;
using System.Threading.Tasks;
using var client = new HttpClient();
var request = new HttpRequestMessage(
HttpMethod.Get,
"https://sandbox.sparefinancial.sa/api/v2.0/av/CommercialRegistration/Information?unifiedNationalNumber=...");
request.Headers.Add("Authorization", $"Bearer {accessToken}");
var response = await client.SendAsync(request);
var record = await response.Content.ReadAsStringAsync();package main
import (
"io"
"net/http"
)
req, err := http.NewRequest(
http.MethodGet,
"https://sandbox.sparefinancial.sa/api/v2.0/av/CommercialRegistration/Information?unifiedNationalNumber=...",
nil,
)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+accessToken)
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
record, _ := io.ReadAll(res.Body)Parse the record
Read the structured company details. Handle errors, 404 for not found, 401 for auth failures.
Key takeaways
- Returns a company's full official record from a single unified registration number.
- Covers general details, legal entity + status, partners/managers, operations, and capital.
- Whitelist your server IP; handle
404(not found) and401(auth) explicitly.