You need KYB and business data
Call Merchant Profiler for a structured profile, or CorShield for a 0–100 risk score.
Onboarding, KYB, Underwriting, Transaction Monitoring, Merchant Monitoring and Disputes Automation.
Call Merchant Profiler for a structured profile, or CorShield for a 0–100 risk score.
Load your portfolio from files, or push it by API. Coris monitors it and sends you alerts.
Connect Stripe in the portal, or have Coris connect Adyen. Coris then runs its checks for you.
Confirm a business is registered.
Pull a structured profile.
Watch merchants after boarding.
Review and resolve alerts.
Track each chargeback to an outcome.
Log in to see your sandbox key in the samples.
curl -X POST https://sandbox-api.coris.ai/api/v0_2/merchant_profiler/ \
-H 'Authorization: Token YOUR_SANDBOX_KEY' \
-H 'Content-Type: application/json' \
-d '{"business_name": "Acme Plumbing Co.", "address": {"city": "San Jose", "state": "CA", "country": "US", "address_type": "Registration"}}'
# Copy the request_id from the response, then poll.
curl -i 'https://sandbox-api.coris.ai/api/v0_2/merchant_profiler/?request_id=REQUEST_ID' \
-H 'Authorization: Token YOUR_SANDBOX_KEY'import time
import requests
API = "https://sandbox-api.coris.ai/api/v0_2"
HEADERS = {"Authorization": "Token YOUR_SANDBOX_KEY"}
BUSINESS = {
"business_name": "Acme Plumbing Co.",
"address": {"city": "San Jose", "state": "CA", "country": "US", "address_type": "Registration"},
}
start = requests.post(f"{API}/merchant_profiler/", headers=HEADERS, json=BUSINESS)
start.raise_for_status()
request_id = start.json()["request_id"]
while True:
result = requests.get(
f"{API}/merchant_profiler/", headers=HEADERS, params={"request_id": request_id}
)
if result.status_code == 200:
break
if result.status_code not in (206, 425):
result.raise_for_status()
time.sleep(5)
print(result.json()["legal_entity"]["status"])const API = 'https://sandbox-api.coris.ai/api/v0_2';
const headers = {
Authorization: 'Token YOUR_SANDBOX_KEY',
'Content-Type': 'application/json',
};
const start = await fetch(`${API}/merchant_profiler/`, {
method: 'POST',
headers,
body: JSON.stringify({
business_name: 'Acme Plumbing Co.',
address: { city: 'San Jose', state: 'CA', country: 'US', address_type: 'Registration' },
}),
});
const { request_id: requestId } = await start.json();
let result;
do {
await new Promise(resolve => setTimeout(resolve, 5000));
result = await fetch(`${API}/merchant_profiler/?request_id=${requestId}`, { headers });
if (![200, 206, 425].includes(result.status)) throw new Error(`Coris returned ${result.status}`);
} while (result.status !== 200);
console.log((await result.json()).legal_entity.status);