Skip to Content
B2B APIMerchant Endpoints

Merchant Risk Screening

Screen merchant risk levels and obtain pre-transaction risk assessments.

Endpoint

POST /v1/merchant

Request

The request must include merchant details for risk assessment. Risk assessment is configured via Client Config. Please contact support@orca-fraud.com to enable.

Request Schema

FieldTypeRequiredDescription
idstringYesUnique merchant identifier
namestringYesMerchant business name
statusenumYesMerchant status: ACTIVE, INACTIVE, BLOCKED
timestampnumberYesUnix timestamp in milliseconds
riskLevelstringNoPre-assigned risk level if available
mccstringNoMerchant Category Code
tradingNamestringNoDBA (Doing Business As) name
organizationIdstringNoParent organization identifier
posModestringNoPoint of Sale mode, if applicable
businessSegmentstringNoBusiness industry segment
averagePurchaseSizestringNoAverage transaction size, if applicable
monthlyVolumestringNoExpected monthly transaction volume, if applicable
provincestringNoMerchant location province/state
countrystringNoMerchant location country code
paymentMethodsarrayNoAccepted payment methods, array including: cash, vas, card, bank, crypto, ewa
registrationNumberstringNoBusiness registration/tax ID
verificationStatusenumNoVerification status: PENDING, APPROVED, DECLINED, BLOCKED
accountNumberstringNoMerchant account number
bankIdstringNoMerchant bank identifier
agentIdstringNoIdentifier of agent or distributor

Example Request

{ "id": "MERCH123456", "name": "Example Retail Store", "status": "ACTIVE", "mcc": "5411", "tradingName": "The Retail Store", "businessSegment": "retail", "averagePurchaseSize": 120.50, "monthlyVolume": 250000, "country": "ZA", "province": "Western Cape", "registrationNumber": "2021/123456/07", "verificationStatus": "APPROVED", "timestamp": 1734100200000, "terminalId": "TERM1234" }

Response

The response includes the risk assessment details and any triggered rules.

Example Response - Low Risk

{ "id": "MERCH123456", "riskLevel": "low", "recommendedAction": "ALLOW", "timestamp": 1734100200000 }

Example Response - High Risk

{ "id": "MERCH123456", "riskLevel": "high", "recommendedAction": "REVIEW", "timestamp": 1734100200000, "triggered": [ { "id": "TRIG123456", "name": "High volume transactions", "level": "high", "reason": "Merchant exceeds monthly transaction volume", "recommendedAction": "REVIEW" } ] }

Error Response Format

See the Error Reference section for a full description of API errors. All API errors follow a consistent JSON structure:

{ "error": { "type": "ERROR_TYPE", "message": "Human-readable error description", "details": ["Additional error details (optional)"] }, "timestamp": 1755602195137 }

In the case of a validation error, the format will be as follows:

{ "error": { "type": "VALIDATION_ERROR", "message": "Request validation failed", "details": [ "/id: Expected string" ] }, "timestamp": 1755602195137 }

Response Schema

FieldTypeRequiredDescription
idstringYesUnique identifier for entity screened
riskLevelenumYesRisk level: low, medium_low, medium, high, very_high
recommendedActionenumYesAction to take: ALLOW, REVIEW, BLOCK, STEP_UP_AUTH, FLAG_FOR_MONITORING, REPORT_SUSPICIOUS
triggeredarrayNoArray of triggered risk rules
timestampnumberYesUnix epoch milliseconds

Triggered Rule Schema

FieldTypeDescription
idstringUnique identifier for the triggered rule
namestringName of the triggered rule
levelenumRule severity: low, medium_low, medium, high, very_high
reasonstringReason for the triggered rule
recommendedActionenumSuggested action: ALLOW, REVIEW, BLOCK, STEP_UP_AUTH, FLAG_FOR_MONITORING, REPORT_SUSPICIOUS
Last updated on