---
title: "Create and submit a customer DDS for an origin request"
method: POST
path: "/public/v2/eudr/customers/origin-requests/{originRequestId}/customer-dds"
tags: ["EUDR - Customers - DDS"]
---

# Create and submit a customer DDS for an origin request

`POST /public/v2/eudr/customers/origin-requests/{originRequestId}/customer-dds`

## Request

- Base URL: `https://api.prewave.com`
- URL: `https://api.prewave.com/public/v2/eudr/customers/origin-requests/{originRequestId}/customer-dds`
- Auth: API key in header `X-Auth-Token`
- TypeScript: <https://skmtc.dev/prewave/apis/public-prewave-api/docs/public/v2/eudr/customers/origin-requests/:originRequestId/customer-dds/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a Customer Due Diligence Statement scoped to one origin request and submits it asynchronously.
The origin request must belong to an accessible inbound product and have an Allowed DDS gate.

**Required permission:** `access_public_products`

## Path parameters

- `originRequestId` integer, required

## Request body

- PublicCustomerDDSCreatePayloadV3: v3 payload for create-and-submit Customer DDS. Identifier must contain at least one value.
  - `identifier` PublicCustomerDDSIdentifier, required: Operator identifiers. Object is required and must contain at least one key.
    - `eori` string, nullable: EORI number
  - `customerName` string, required: Name of the customer as stated on the DDS.
  - `customerCity` string, required: City of the customer as stated on the DDS.
  - `customerPostalCode` string, required: Postal code of the customer as stated on the DDS.
  - `customerStreet` string, required: Street of the customer as stated on the DDS.
  - `customerCountryCode` string, required: ISO 3166-1 alpha-2 customer country code.
  - `activityType` 'Import' | 'Export' | 'Domestic', required: Activity type for customer DDS create-and-submit. Allowed values: Import, Export, Domestic.
  - `countryOfActivityCode` string, nullable: ISO 3166-1 alpha-2 country of activity. Optional.
  - `netWeightInKg` number, required: Net weight of the product in kg.
  - `quantity` number, nullable: Product quantity.
  - `unit` string, nullable: Unit of the quantity.
  - `percentageEstimationOrDeviation` integer, nullable: Percentage estimation or deviation (0–15). Required for Domestic; must be omitted for Import/Export.

## Response `202`

Accepted. Location points to GET /public/v2/eudr/customers/customer-dds?ids={id}.

- PublicCustomerDDSListItem: Flat-list customer DDS: customer-scoped sync item with productId, updatedAt, originRequestIds, ISO country codes, and identifier.
  - `id` integer, required: Customer DDS ID
  - `productId` integer, required: Inbound product ID
  - `updatedAt` string, date-time, required: Last modification. Timestamp (ISO 8601 UTC)
  - `originRequestIds` integer[], required: Origin request IDs linked to this customer DDS
  - `referenceNumber` string, nullable: EU reference number
  - `verificationNumber` string, nullable: Verification number
  - `date` string, date-time, required: DDS date. Timestamp (ISO 8601 UTC)
  - `origins` PublicOriginSummary[], required: Linked origin summaries. Empty unless includeOrigins=true.
    - `id` integer, required: Origin ID
    - `name` string, nullable: Origin name
    - `active` boolean, required: Whether the origin is active
    - `producedAtStart` string, date-time, nullable: Production start. Timestamp (ISO 8601 UTC)
    - `producedAtEnd` string, date-time, nullable: Production end. Timestamp (ISO 8601 UTC)
    - `countryCode` string, nullable: ISO 3166-1 alpha-2 country code
    - `plot` PublicFeatureCollection: Plot geometry
      - `features` PublicFeature[], required
        - `geometry` PublicGeometrySchema, required: Geometry plot object
          - `type` string, required: Geometry available types: Point, MultiPoint, Polygon, MultiPolygon
          - `coordinates` array[], required: Geometry coordinates
            - array[]: Geometry coordinates
              - …
        - `properties` object, required: Value map with available keys: - ProducerName (String) - ProducerCountry (Country code in form of ISO 3166-1 alpha-2 code) - ProductionPlace (String) - Area (Double)
    - `plotAreaHa` number, double, nullable: Plot area in hectares
    - `originRequestId` integer, nullable: Linked origin request ID
    - `countryRisk` 'Low' | 'Mid' | 'High': Public EUDR risk.
    - `weight` number, nullable: Origin weight
    - `createdAt` string, date-time, nullable: Creation timestamp. Timestamp (ISO 8601 UTC)
    - `updatedAt` string, date-time, nullable: Last update. Timestamp (ISO 8601 UTC)
    - `producerId` integer, nullable: Producer ID
    - `assessments` PublicOriginAssessmentsV3: Deforestation and legality assessments on an origin.
      - `deforestation` PublicOriginDfAssessmentV3, nullable: Origin deforestation assessment.
        - `status` 'Negligible' | 'NonNegligible' | 'NotRequired' | 'Required' | 'Derisked' | 'Pending', required: Filter by deforestation assessment status.
      - `legality` PublicOriginLaAssessmentV3, nullable: Origin legality assessment.
        - `status` 'Negligible' | 'NonNegligible' | 'NotRequired' | 'Required' | 'Derisked' | 'Pending', required: Filter by deforestation assessment status.
  - `identifier` PublicCustomerDDSIdentifier, required: Operator identifiers. Object is required and must contain at least one key.
    - `eori` string, nullable: EORI number
  - `customerName` string, required: Customer name on the DDS
  - `customerCity` string, required: Customer city
  - `customerPostalCode` string, required: Customer postal code
  - `customerStreet` string, required: Customer street
  - `customerCountryCode` string, required: ISO 3166-1 alpha-2 customer country code
  - `state` 'New' | 'Submitting' | 'Submitted' | 'SubmissionError' | 'Available' | 'Rejected' | 'Cancelled' | 'Withdrawn' | 'Archived' | 'Suspended' | 'Updated' | 'Grouped' | 'Obsolete', required: Public customer DDS state.
  - `activityType` 'Import' | 'Export' | 'Domestic' | 'Trade', required: Public activity type on responses and legacy payloads. Trade is deprecated and retained only for legacy data; create-and-submit uses PublicCustomerDDSCreateActivityType instead.
  - `countryOfActivityCode` string, nullable: ISO 3166-1 alpha-2 country of activity code
  - `netWeightInKg` number, required: Net weight in kg
  - `quantity` number, nullable: Quantity
  - `unit` string, nullable: Quantity unit
  - `hsCode` string, required: HS code
  - `submissionError` PublicSubmissionError: Submission error details when state is SubmissionError
    - `code` string, required: Error code
    - `detail` string, required: Human readable details about the error
    - `reasons` string[], nullable: Detailed reasons about the error, if any

## Other responses

- `400`: Invalid payload, or origin-request DDS gate is not Allowed.
- `403`: 403 Forbidden - Authentication or authorization failure. This status code is returned when: (1) the request lacks valid authentication credentials (missing or invalid X-Auth-Token header), or (2) the authenticated user does not have the required permission to access this resource.
- `404`: Origin request or product is not available.
- `429`: 429 Too Many Requests - API rate limit exceeded. The request has been rejected because the rate limit for this endpoint has been exceeded. Default rate limits: GET requests - 100 per 10 seconds, 500 per minute; POST/PUT/PATCH/DELETE requests - 20 per 10 seconds, 100 per minute. For increased access, please contact customer success.
- `500`: 500 Internal Server Error - An unexpected error occurred on the server. The request may or may not have been processed.

## Changes

- **2026-10-19** `2a9e4787c6e5`: 1 warning
  - added the new `permission_limit_not_assigned` enum value to the `e/code/allOf[#/components/schemas/ErrorCode]/` response property for the response status `404`
- **2026-10-02** `64e6664ac3e7`: 2 warning
  - added the new `risk_analysis_migration_blocked` enum value to the `e/code/allOf[#/components/schemas/ErrorCode]/` response property for the response status `404`
  - added the new `risk_analysis_not_legacy` enum value to the `e/code/allOf[#/components/schemas/ErrorCode]/` response property for the response status `404`
- **2026-09-25** `03c1c9d14a3b`: 1 warning
  - added the new `df_checks_not_enabled` enum value to the `e/code/allOf[#/components/schemas/ErrorCode]/` response property for the response status `404`
- **2026-09-23** `acaacfebceb2`: 1 warning
  - added the new `customer_tiern_settings_not_enabled` enum value to the `e/code/allOf[#/components/schemas/ErrorCode]/` response property for the response status `404`
- **2026-09-21** `19288f3a6520`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/prewave/apis/public-prewave-api/changes/public/v2/eudr/customers/origin-requests/:originRequestId/customer-dds/post.md)

---

[API](https://skmtc.dev/prewave/apis/public-prewave-api.md) - [All operations](https://skmtc.dev/prewave/apis/public-prewave-api/llms.txt) - [OpenAPI document](https://skmtc.dev/prewave/apis/public-prewave-api/revisions/8b6e3b3827ca?raw)
