Submission Review
Operate Steve as a headless review queue through the external API.
The submission endpoints let an integrator run manual review outside the Steve UI.
Use them to:
- list submissions for the authenticated company
- fetch full detail, including file download URLs and event history
- inspect and resolve fraud matches
- approve, reject, or cancel submissions
Public status model
Steve exposes the following submission statuses through the external API:
| Status | Meaning |
|---|---|
created | Submission record exists but processing has not started |
processing | Steve is running extraction and fraud checks |
review | Human review is required |
approved | Approved and waiting for or entering downstream sync |
synced | Approved and synced downstream |
rejected | Rejected by a reviewer or integration |
cancelled | Cancelled before approval or sync |
failed | Processing failed for a non-review reason |
For workflow sessions, GET /api/v1/jobs/{sessionId} tells you when processing is done. GET /api/v1/submissions/{submissionId} is the canonical read model for manual review.
List submissions
Supported query parameters:
| Parameter | Meaning |
|---|---|
workflow | Filter to one workflow slug |
status | Filter by public submission status |
fraudStatus | Filter by clean, flagged, or blocked |
cursor | Continue from a previous page |
limit | Page size, clamped to 1..100 |
Example response:
Notes:
- timestamps are ISO 8601 strings
clientSubmissionIdis the caller-supplied idempotency key from session creationextractedDatamay be partial or complete depending on processing state
Get submission detail
Example response:
Important details:
- file download URLs are pre-signed and valid for one hour
eventsare newest-first and capped at 100 entriesrejectReasonandcancelReasonare exposed on rejected or cancelled submissions
Fraud match workflow
If a submission is flagged or blocked, inspect the linked fraud matches:
Response shape:
Resolve one match:
Allowed resolutions:
false_positiveconfirmed_fraud
Approvals are blocked while unresolved fraud matches remain.
Approve, reject, and cancel
Approve
Approves a submission that is currently in review.
Response:
Approval triggers Steve's downstream sync path. Later reads may show synced.
Reject
Reject requires a human-readable reason.
Cancel
Cancel is available until the submission reaches approved or synced. The reason is optional.
Operational guidance
- Use
GET /api/v1/jobs/{sessionId}to know when a submission is ready for review. - Use
GET /api/v1/submissions/{submissionId}as the canonical source of truth after any action. - If you need file bytes, fetch them immediately after retrieving submission detail because download URLs expire.
- POST review actions share the
writerate-limit bucket. See Error Handling. - Webhooks are useful for notification, but the safest way to render a review UI is still to refetch the submission after each event.