---
title: "Bulk request origins for products"
method: POST
path: "/public/v2/eudr/customers/origin-requests"
tags: ["EUDR - Customers - Origin Requests"]
---

# Bulk request origins for products

`POST /public/v2/eudr/customers/origin-requests`

Send origin requests for products to suppliers. Suppliers are notified by in-app notification and email.
Additional email CCs and a comment can be provided in the payload.
Every supplier must have at least one contact to be notified.
To manage and fetch contacts, use the connection-contact endpoints.


**Required permission:** `access_public_products`

## Request body

- PublicCreateOriginRequestPayload — Payload for creating a new origin request. Contains a list of origin request items.
  - `items` PublicOriginRequestItemPayload, required — Payload for a single origin request item. Contains product, date, contacts, comment, and references.
    - `productId` integer, required — ID of the product for which the origin request is made.
    - `endDate` string, date, nullable — End date for the origin request (format: yyyy-MM-dd).
    - `requestedWeight` number, nullable — Requested weight in kg, related to origin requests with weight.
    - `connectionContactIds` integer[], nullable — List of connection contact IDs of the supplier. Contacts can be retrieved and managed by the connection-contact endpoints.
    - `comment` string, nullable — Additional notification comment.
    - `references` PublicOriginRequestRefPayload — Reference for an origin request, including label and type.
      - `reference` string, nullable — Reference label.
      - `referenceType` 'PurchaseOrder' | 'ShipmentNumber' | 'Other', required — Public product reference type.

## Response `200`

Origin requests processed. Check `succeeded` and `failed` for per-item results.

- PublicOriginRequestResult — Bulk result for origin request creation. Contains succeeded and failed items.
  - `succeeded` PublicOriginRequest[], required
    - `id` integer, required — Origin Request ID.
    - `productId` integer, required — Product ID of the origin request.
    - `createdAt` string, date-time, required — Creation date of the origin request.
    - `status` 'Requested' | 'Delayed' | 'Rejected' | 'Canceled' | 'Answered', required — Filter by origin request status.
    - `references` PublicOriginRequestRefPayload — Reference for an origin request, including label and type.
      - `reference` string, nullable — Reference label.
      - `referenceType` 'PurchaseOrder' | 'ShipmentNumber' | 'Other', required — Public product reference type.
  - `failed` BulkResultFailedPublicOriginRequestItemPayload[], required
    - `value` PublicOriginRequestItemPayload, required — Payload for a single origin request item. Contains product, date, contacts, comment, and references.
      - `productId` integer, required — ID of the product for which the origin request is made.
      - `endDate` string, date, nullable — End date for the origin request (format: yyyy-MM-dd).
      - `requestedWeight` number, nullable — Requested weight in kg, related to origin requests with weight.
      - `connectionContactIds` integer[], nullable — List of connection contact IDs of the supplier. Contacts can be retrieved and managed by the connection-contact endpoints.
      - `comment` string, nullable — Additional notification comment.
      - `references` PublicOriginRequestRefPayload — Reference for an origin request, including label and type.
        - `reference` string, nullable — Reference label.
        - `referenceType` 'PurchaseOrder' | 'ShipmentNumber' | 'Other', required — Public product reference type.
    - `message` string, nullable
  - `status` 'Succeeded' | 'PartlySucceeded' | 'Failed', required

## Other responses

- `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.
- `422` — Origin request product unsupported, e.g. product inactive or not inbound.
- `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.

---

[API](https://skmtc.net/prewave/apis/public-prewave-api.md) · [All operations](https://skmtc.net/prewave/apis/public-prewave-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/prewave/public-prewave-api/revisions/466169815b78/schema)
