---
title: "Submit up to 100 outbound EDI documents in one request (per-item partial success)."
method: POST
path: "/v1/documents/batch"
tags: ["Documents"]
---

# Submit up to 100 outbound EDI documents in one request (per-item partial success).

`POST /v1/documents/batch`

## Request

- Base URL: `https://signaledi.com/api`
- URL: `https://signaledi.com/api/v1/documents/batch`
- Auth: HTTP bearer

Payload and metadata must be JSON objects. Caller metadata may not set server-owned dispatch fields; invalid items are reported without failing valid items (per-item `code` values include VALIDATION_ERROR, PARTNER_NOT_FOUND, STANDARD_DOCUMENT_TYPE_MISMATCH, INVALID_EDI_DOCUMENT, HEALTHCARE_DATA_CLASSIFICATION_REQUIRED, IDEMPOTENCY_CONFLICT, LAB_VALIDATION_FAILED, DATA_FLOW_CONNECTION_MISMATCH, OUTBOUND_FAILED). Throttled at 60 calls per minute per API key.

## Headers

- `Idempotency-Key` string, required

## Request body

- BatchRequest (unresolved $ref)

## Response `200`

Batch processed. Inspect `results[]` for per-item outcomes; `accepted`/`rejected` summarise counts.

- BatchResult
  - `ok` true, required
  - `accepted` integer, required
  - `rejected` integer, required
  - `results` object[], required
    - `index` integer, required
    - `ok` boolean, required
    - `documentId` string
    - `status` string
    - `error` string
    - `code` string
    - `correlationId` string: Opaque reference for a sanitized server-side failure.

## Other responses

- `400`: `Idempotency-Key` header missing or not 8-128 characters (`code` IDEMPOTENCY_KEY_REQUIRED), or the request body failed validation (`code` e.g. VALIDATION_ERROR, NO_WORKSPACE, BATCH_TOO_LARGE).
- `401`: Missing or invalid API key (`code` AUTH_UNAUTHORIZED).
- `403`: API key lacks the `platform` scope (`code` PLATFORM_SCOPE_REQUIRED) or `workspaceId` does not match the authenticated workspace (FORBIDDEN).
- `404`: Resource not found, or the /v1 platform is disabled (`code` NOT_FOUND / PARTNER_NOT_FOUND / WORKSPACE_NOT_FOUND).
- `409`: The `Idempotency-Key` was already used with a different request body (`code` IDEMPOTENCY_CONFLICT). Reuse the key only to replay the identical request.
- `429`: Rate limit exceeded (`code` RATE_LIMITED).
- `500`: Unexpected server error (`code` e.g. PARSE_FAILED, VALIDATE_FAILED, OUTBOUND_FAILED, INBOUND_FAILED, BATCH_FAILED, TRANSACTIONS_FAILED, DOCUMENT_RECEIPT_FAILED, DOCUMENT_PAYLOAD_FAILED). Sanitized bodies carry an opaque `correlationId` to quote to support; internal error text is never echoed.

---

[API](https://skmtc.dev/signaledi/apis/signaledi-developer-api.md) · [All operations](https://skmtc.dev/signaledi/apis/signaledi-developer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/signaledi/apis/signaledi-developer-api/revisions/9bc596644a10?raw)
