📘

**Note**:

Bulk CSV upload is API-only. The RiskOS™ Dashboard supports single-case feedback only through the Case Detail view. There is no CSV upload option in the UI.

## Recommended structure

### CSV format

The CSV **must include a header row**, but header names are **ignored**. Columns are parsed **strictly by position**, so the column order must match the specification below.

| Property | Requirement |
| --- | --- |
| File extension | `.csv` |
| Encoding | UTF-8 |
| Delimiter | `,` |
| Max file size | 10 MB |
| Columns per row | Exactly 8 |

Rows with fewer or more than **8 columns** are rejected.

All columns must be present in each row, even if trailing fields are empty.

### CSV column schema

| # | Column | Required | Description |
| --- | --- | --- | --- |
| 1 | `id` | Required | Evaluation or application ID |
| 2 | `workflow` | Required | Workflow associated with the evaluation |
| 3 | `fraud_label` | Required | Must be `fraud` or `non-fraud` (case-sensitive) |
| 4 | `fraud_type` | Optional | Free-text fraud classification |
| 5 | `notes` | Optional | Free-text notes |
| 6 | `recorded_at` | Optional | Date in `YYYY-MM-DD` format. Defaults to the current date |
| 7 | `recorded_by` | Optional | Defaults to the authenticated user |
| 8 | `tags` | Optional | Comma-separated list of tags |

### Tag formatting

Multiple tags must be comma-separated within a single cell and wrapped in quotes:

```undefined
"tag1,tag2"
```

Tags are validated against the namespace’s configured **tag definitions**. If any tag is invalid, the row is rejected.

### Processing behavior

- Each row is processed **independently**  
- **Partial success is possible**— some rows may succeed while others fail  
- Files without a header row return an error  
- Rows are processed serially, so large files take proportionally longer to complete

### Example CSV

```perl
id,workflow,fraud_label,fraud_type,notes,recorded_at,recorded_by,tags
eval-123,loan_workflow,fraud,synthetic,Sample note,2025-03-13,user@example.com,"tag1,tag2"
eval-456,loan_workflow,non-fraud,,,2025-03-12,,reviewed
eval-789,loan_workflow,fraud,,,,,"tag1,tag2,tag3"
```

X-API-Version

string

Specifies the API version used for the request. If omitted, the default version is used. Socure recommends pinning a version to avoid unexpected behavioral changes when new versions are released.

file

file

required

CSV file containing feedback records.

The file must contain **8 columns in the required order**.

A header row is required, but header names are ignored.

See the endpoint description for the full CSV format specification.

# `` 200      OK - Success.

object

message

string

required

Updated 2 days ago

* * *

Workflow:Select a workflow…Consumer OnboardingGeneric PassthroughTrust and SafetyBank Account VerificationBusiness OnboardingLogin and AuthenticationWorkforce VerificationPayment Screening

ShellJavaPythonNodeGo

Base URL

https://riskos.socure.com/api/feedback/import

```

curl --request POST \n

--url https://riskos.socure.com/api/feedback/import \n

--header 'accept: application/json' \n

--header 'content-type: multipart/form-data' \n

--form file=string
```

```

xxxxxxxxxx

{

"message": "Fraud feedback file has been submitted successfully for processing"
}
```
