---
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`

## Request

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

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.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)
