# EDI Transactions

Every EDI document that enters or leaves Tediware is recorded as a transaction: the direction, the sender and receiver identifiers, the control numbers, and the trace GUID linking it to its processing run. For outbound documents, Tediware also tracks whether the partner has acknowledged them with a 997, so you can find documents that are still waiting on an acknowledgment.

Transaction records are retained for 45 days.

## List EDI Transactions

```
GET /platform/edi_transactions
```

Returns a paginated list of EDI transactions for your organization, ordered by most recent first.

Query parameters:

- `incoming`: `true` for documents received from partners, `false` for documents you sent
- `transaction_set_identifier`: filter by transaction set code, such as `850` or `856`
- `trace`: filter by trace GUID to find the transactions from a single processing run
- `ack_status`: filter by 997 acknowledgment state (see below)
- `limit`: number of transactions per page (default 50, maximum 100)
- `cursor`: pagination cursor from a previous response

The `ack_status` parameter accepts:

- `unacknowledged`: outbound documents still waiting for a 997 from the partner
- `acknowledged`: documents the partner has answered with a 997, whether accepted or rejected
- `accepted`: documents the partner's 997 accepted
- `rejected`: documents the partner's 997 rejected

An unrecognized `ack_status` or `incoming` value returns a `400` error.

The response includes an `ediTransactions` array and a `pagination` object:

```json
{
  "ediTransactions": [
    {
      "id": "4c2021f8-8310-4628-80f9-b578d4d68e11",
      "incoming": false,
      "transactionSetIdentifier": "850",
      "senderExtid": "YOURID",
      "senderQualifier": "ZZ",
      "receiverExtid": "PARTNERID",
      "receiverQualifier": "ZZ",
      "interchangeControlNumber": "1042",
      "groupControlNumber": "1043",
      "transactionSetControlNumber": "1043",
      "traceGuid": "5ab72145-4a4b-40f6-95de-e2579f163f79",
      "acknowledgmentStatus": "unacknowledged",
      "createdAt": "2026-07-01T14:22:33.260Z",
      "updatedAt": "2026-07-01T14:22:33.260Z"
    }
  ],
  "pagination": {
    "hasMore": true,
    "nextCursor": "MjAyNi0wMy0zMFQxNDoyMjozMy4yNjAwMDBafDRjMjAyMWY4..."
  }
}
```

`acknowledgmentStatus` is `"accepted"`, `"rejected"`, or `"unacknowledged"`. It is `null` when no acknowledgment is expected: inbound documents, 997s and 999s themselves, documents sent to partners with acknowledgment tracking turned off, and documents sent before tracking was enabled. Acknowledgment tracking can be turned off per partner on the partner's settings page, for partners that do not send 997s.

Cursor-based pagination works the same way as the results endpoint: when `hasMore` is `true`, pass `nextCursor` as the `cursor` parameter in your next request.

```bash
# Outbound documents still waiting on a 997
curl "https://tediware.com/platform/edi_transactions?ack_status=unacknowledged" \
  -H "Authorization: Key your-api-key-here"

# Everything a partner rejected in the last pages of traffic
curl "https://tediware.com/platform/edi_transactions?ack_status=rejected&limit=100" \
  -H "Authorization: Key your-api-key-here"
```
