What is the Coris API
One API for merchant risk, from business verification and underwriting to monitoring, alerts and disputes.
The Coris API verifies, underwrites and monitors the businesses you serve. It is built for payment platforms, ISOs, PayFacs, sponsor banks, lenders and marketplaces. You send a business name and address, and you get back a structured profile, risk signals and alerts.
- InputBusiness details
- Step 1Merchant ProfilerPOST /
merchant_profiler/ - Returnsestablishment
+ legal_entity - Step 2Create the accountPOST /
accounts/Monitored by default. - ResultsWebhooks and portal
Try it
-
Create a sandbox API key. See Authenticate your requests.
-
Set your base URL and key.
export CORIS_BASE_URL="https://sandbox-api.coris.ai/api/v0_2"
export CORIS_API_KEY="YOUR_API_KEY"import requests
BASE_URL = "https://sandbox-api.coris.ai/api/v0_2"
HEADERS = {"Authorization": "Token YOUR_API_KEY"}const BASE_URL = "https://sandbox-api.coris.ai/api/v0_2";
const HEADERS = {
Authorization: "Token YOUR_API_KEY",
"Content-Type": "application/json",
};- Start a profile for a fictional business.
REQUEST_ID=$(curl -s -X POST "$CORIS_BASE_URL/merchant_profiler/" \
-H "Authorization: Token $CORIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"business_name": "Acme Plumbing Co.",
"address": {
"address_type": "Registration",
"city": "San Jose",
"state": "CA",
"country": "US"
},
"phone_number": "408-555-0142",
"website": "https://www.acmeplumbing.example"
}' | jq -r '.request_id')
echo "$REQUEST_ID"response = requests.post(
f"{BASE_URL}/merchant_profiler/",
headers=HEADERS,
json={
"business_name": "Acme Plumbing Co.",
"address": {
"address_type": "Registration",
"city": "San Jose",
"state": "CA",
"country": "US",
},
"phone_number": "408-555-0142",
"website": "https://www.acmeplumbing.example",
},
)
response.raise_for_status()
request_id = response.json()["request_id"]
print(request_id)const created = await fetch(`${BASE_URL}/merchant_profiler/`, {
method: "POST",
headers: HEADERS,
body: JSON.stringify({
business_name: "Acme Plumbing Co.",
address: {
address_type: "Registration",
city: "San Jose",
state: "CA",
country: "US",
},
phone_number: "408-555-0142",
website: "https://www.acmeplumbing.example",
}),
});
if (!created.ok) throw new Error(await created.text());
const { request_id: requestId } = await created.json();
console.log(requestId);Try POST /merchant_profiler/ in the API explorer.
Use the returned request_id to fetch the profile. See the Quickstart.
Choose how you use Coris
Pick the path that matches how merchants reach you.
What you get back
| What Coris returns | Start here |
|---|---|
| Registration data, OFAC and AML screening, a 0–100 risk score | Verify a business at onboarding |
| Profile, website, reviews, industry, licenses, personnel, a 0–100 risk score | Underwrite a merchant |
| Alerts when a monitored account changes | Monitor your portfolio |
| Payment alerts your team works in the portal | Triage transaction alerts |
| One place to work disputes in the portal | Respond to disputes |
What to do next
| If you want to | Do this |
|---|---|
| Make your first complete call | Follow the Quickstart. |
| Understand the objects | Read Core concepts. |
| Plan an integration | Read the path for your business model. |
FAQ
Is the Coris API a data provider or a decision engine?
It is both. You can read structured data and scores, or let Coris monitor accounts and raise alerts. You keep the final decision.
Do I need the portal?
Business data calls need the portal only for your API key. Monitoring, alert review and dispute work use the portal day to day.
Can I test without production data?
Yes. The sandbox returns mocked results for most data. See Test in the sandbox.
Next: Quickstart
Updated 5 days ago