---
title: "CDP Uploader callback"
method: POST
path: "/upload/callback"
tags: ["Upload"]
---

# CDP Uploader callback

`POST /upload/callback`

## Request

- Base URL: `http://localhost:3000`
- URL: `http://localhost:3000/upload/callback`
- Auth: HTTP bearer

Callback endpoint for CDP Uploader service to notify about virus scan results.

**Security**: Requires Bearer token authentication.

When a file passes virus scan (status: clean), it is automatically transferred
to Azure Blob Storage in the background.

## Request body

- CdpCallbackRequest
  - `uploadId` string, uuid, required: Upload identifier
  - `status` 'clean' | 'infected' | 'error': Overall status
  - `virusScanStatus` 'clean' | 'infected' | 'error', required: Virus scan result
  - `processedAt` string, date-time: When CDP finished processing

## Response `200`

Callback processed successfully

- object
  - `success` boolean
  - `message` string

## Other responses

- `401`: Unauthorized - authentication required
- `500`: Internal server error

---

[API](https://skmtc.dev/defra/apis/apha-surveillance-data-submission-portal-api.md) - [All operations](https://skmtc.dev/defra/apis/apha-surveillance-data-submission-portal-api/llms.txt) - [OpenAPI document](https://skmtc.dev/defra/apis/apha-surveillance-data-submission-portal-api/revisions/592deaf8edd7?raw)
