The Transmission entity tracks inbound and outbound message exchanges (EDI, API calls, webhooks, emails, etc.) associated with orders. It provides a complete audit trail of all communication events, including retry logic, error tracking, and payload references.
Transmissions are linked to orders through the OrderTransmission join entity, supporting a many-to-many relationship — a single transmission can span multiple orders, and each order can have many transmissions.
Fields
| Field Name | Type | Max Length | Required | Default | Description |
|---|
| TransmissionId | Int32 | — | Auto | Auto-increment | Primary key |
| OrganizationId | Int32 | — | Yes | — | Organization scope |
| CorrelationId | Guid | — | Yes | NewGuid() | Groups related transmissions together |
| ParentId | Int32? | — | No | — | Self-referential FK for parent/child chains |
| Channel | String | 20 | Yes | — | Communication channel (e.g. EDI, API, EMAIL, WEBHOOK) |
| Direction | TransmissionDirection | — | Yes | — | Inbound (0) or Outbound (1) |
| MessageType | String? | 50 | No | — | Message type identifier (e.g. 204, 990, 214) |
| Sender | String? | 100 | No | — | Sender identifier |
| Receiver | String? | 100 | No | — | Receiver identifier |
| Status | TransmissionStatus? | — | No | — | Current transmission status |
| Endpoint | String? | 500 | No | — | Target URL or endpoint address |
| Protocol | String? | 20 | No | — | Protocol (e.g. HTTPS, SFTP, AS2) |
| HttpStatus | Int16? | — | No | — | HTTP response status code |
| ByteSize | Int32? | — | No | — | Payload size in bytes |
| RetryCount | Int16 | — | Yes | 0 | Current retry attempt |
| MaxRetries | Int16 | — | Yes | 3 | Maximum retry attempts |
| NextRetryAt | DateTime? | — | No | — | Scheduled next retry time |
| ErrorCode | String? | 50 | No | — | Error code for failures |
| ErrorMessage | String? | — | No | — | Error description |
| CustomValues | Dictionary? | — (JSONB) | No | — | Arbitrary key-value metadata |
| Headers | Dictionary? | — (JSONB) | No | — | Message headers |
| PayloadRef | String? | — | No | — | Reference to stored payload (e.g. blob URI) |
| ScheduledAt | DateTime? | — | No | — | When the transmission was scheduled |
| StartedAt | DateTime? | — | No | — | When processing started |
| CompletedAt | DateTime? | — | No | — | When processing completed |
| DurationMs | Int32? | — | No | — | Processing duration in milliseconds |
| IsDeleted | Boolean | — | Yes | false | Soft-delete flag (filtered by default) |
| Created | DateTime | — | Auto | — | Created timestamp |
| CreatedBy | String | 36 | Auto | — | Created by user ID |
| LastModified | DateTime | — | Auto | — | Last modified timestamp |
| LastModifiedBy | String | 36 | Auto | — | Last modified by user ID |
Enums
TransmissionDirection
| Value | Name | Description |
|---|
| 0 | Inbound | Message received from external source |
| 1 | Outbound | Message sent to external destination |
TransmissionStatus
| Value | Name | Description |
|---|
| 0 | Pending | Queued, not yet processed |
| 1 | InProgress | Currently being processed |
| 2 | Sent | Successfully sent (outbound) |
| 3 | Received | Successfully received (inbound) |
| 4 | Delivered | Confirmed delivery at destination |
| 5 | Acknowledged | Functional acknowledgment received |
| 6 | Rejected | Rejected by receiver |
| 7 | Error | Processing error occurred |
| 8 | RetryScheduled | Failed, retry scheduled |
| 9 | Cancelled | Manually or automatically cancelled |
| 10 | Expired | Exceeded retry window |
Relationships
| Relationship | Target Entity | Type | Description |
|---|
| Organization | Organization | Many-to-One | Organization scope |
| Parent | Transmission | Many-to-One (self) | Parent transmission for chains |
| Children | Transmission[] | One-to-Many (self) | Child transmissions |
| OrderTransmissions | OrderTransmission[] | One-to-Many | Join table linking to orders |
OrderTransmission (Join Entity)
| Field Name | Type | Description |
|---|
| OrderId | Int32 | FK to Order |
| TransmissionId | Int32 | FK to Transmission |
Database Indexes
| Index | Column(s) | Purpose |
|---|
| IX_Transmissions_CorrelationId | CorrelationId | Fast lookup of correlated messages |
| IX_Transmissions_OrganizationId | OrganizationId | Org-scoped queries |
| IX_Transmissions_Status | Status | Filter by status |
| IX_Transmissions_Channel | Channel | Filter by channel |
| IX_Transmissions_ParentId | ParentId | Parent/child traversal |
Views
OrderTransmissionSummaryView (vw_order_transmission_summary)
Pre-aggregated summary per order, available via GraphQL as transmissionsSummary on the Order type.
| Field | Type | Description |
|---|
| OrderId | Int32 | Order ID |
| OrganizationId | Int32 | Organization ID |
| TotalCount | Int32 | Total transmissions for this order |
| HasAny | Boolean | Whether the order has any transmissions |
| LatestCreated | DateTime? | Most recent transmission timestamp |
| LatestChannel | String? | Channel of latest transmission |
| LatestStatus | String? | Status of latest transmission |