Collection: EDI Transactions | Audience: EDI developers, B2B integration teams, trading partner technical contacts
When a trading partner sends an X12 file containing multiple transaction sets under a single envelope, Orderful automatically splits the file and creates a separate transaction for each ST/SE block. This article explains how that splitting works, what gets preserved, and how Orderful handles 997 functional acknowledgments for split files.
How Inbound Splitting Works
Every X12 file has an envelope structure that can contain multiple transaction sets:
The ISA/IEA envelope wraps the entire file
One or more GS/GE functional groups sit inside the ISA/IEA envelope
Each ST/SE block is an individual transaction set inside a GS/GE group
When Orderful receives a file with multiple ST/SE blocks, it splits each one into a separate transaction. A file containing five 850 purchase orders becomes five separate 850 transactions, each with its own transaction ID in Orderful.
This behavior is automatic and applies to all inbound X12 files. There is no configuration required and it cannot be disabled.
What Gets Preserved
For each transaction created from a split file, Orderful attaches the original X12 file as received from the trading partner. Every child transaction carries the full original envelope — not just its own ST/SE block — as an attachment. This is useful when troubleshooting, as you can always reconcile a transaction against the raw file your trading partner sent.
The original file's control numbers are also preserved and can be used as filters in Orderful by both the sender and the receiver to look up transactions from a specific file.
Control Numbers When the Receiver Also Trades X12
When the receiver trades X12 (rather than consuming transactions via JSON API), Orderful must deliver multiple individual X12 transactions to them. To ensure each outbound X12 transaction has a unique set of control numbers — as required by the X12 spec — Orderful generates new control numbers for the receiver side.
Both the sender and receiver can filter transactions in Orderful using either the original sender control numbers or the new receiver-side control numbers.
How 997 Acknowledgments Work for Split Files
When Orderful splits an inbound file, it tracks which transactions belong to which GS functional group and maintains the mapping between the original sender control numbers and the receiver-side control numbers generated for each split transaction.
If the receiver also trades X12, they send back individual 997s keyed to their own control numbers — one per split transaction. Orderful reconciles these against the original GS envelope structure and generates a single, correctly addressed 997 back to the sender for each original GS group, using the sender's original control numbers and acknowledging all transaction sets that were under that GS.
The sender receives a spec-compliant 997 that reflects their original file structure. The control number mapping and reconciliation across the split is handled entirely by Orderful — neither the sender nor the receiver needs to manage this themselves.
Important: Orderful can only generate the outbound 997 once all transactions under a GS functional group have been acknowledged. If a single transaction in the group is still pending acknowledgment — for example, because it failed validation or the receiver hasn't yet processed it — the 997 for the entire GS group will not be sent until that transaction is resolved.
What to Send Orderful Support
If inbound splitting behaves unexpectedly — for example, transactions from a multi-transaction file are missing, duplicated, or showing incorrect control numbers — contact [email protected] with:
The original X12 file or a transaction ID from the split (the original file is attached to each child transaction)
Sender and receiver ISA IDs
Number of ST/SE blocks in the original file and how many transactions appeared in Orderful
997 details if the acknowledgment issue is related to a split file (include the GS control numbers from the original file)
Frequently Asked Questions
If my trading partner sends one file with five purchase orders, how many transactions appear in Orderful?
Five — one for each ST/SE block. Each has its own transaction ID in Orderful.
Can I see the original file my trading partner sent?
Yes. The original X12 file is attached to each transaction created from the split. Open any of the child transactions and look for the Original X12 attachment.
Can I search for transactions by their original control numbers?
Yes. The original control numbers from the sender's file are preserved and can be used as filters in Orderful by both sender and receiver.
Why do the control numbers look different on the receiver side?
When the receiver trades X12, Orderful generates new control numbers for each split transaction to guarantee uniqueness on the outbound side, as required by the X12 spec. Both sender and receiver can filter by these new receiver-side control numbers in Orderful.
Will my trading partner receive one 997 or multiple?
One per GS functional group. Orderful tracks the functional group structure across split transactions and sends a single 997 per GS envelope back to the sender, as required by the X12 spec.
My partner says they didn't receive a 997 — what can I troubleshoot?
The most common cause is that not all transactions under the relevant GS functional group have been acknowledged yet. Orderful holds the outbound 997 until every ST/SE block in the group has been acknowledged by the receiver. Check whether any transactions from the same original file are still in a pending or unacknowledged state in Orderful. If all transactions appear to be acknowledged and the 997 still hasn't been sent, contact [email protected] with the GS control numbers from the original file.
Does splitting affect delivery or validation of individual transactions?
No. Each transaction is validated and delivered independently after splitting. Validation errors on one transaction do not affect the others from the same file.
Can I disable automatic splitting?
No. Splitting is automatic for all inbound X12 files and cannot be configured or turned off.
My trading partner sends a single 850 with multiple ship-to destinations (SDQ). My system needs one PO per destination — can Orderful split it that way?
No. Orderful's inbound splitting operates at the X12 envelope level — it splits ST/SE transaction sets, not business logic within a transaction. Splitting a single 850 by ship-to destination or SDQ segment is a business transformation that needs to happen in your connector or integration layer before transactions are posted to Orderful.
Can Orderful consolidate outbound transactions before sending — for example, holding multiple invoices until all shipments for a PO are complete?
No. Orderful does not apply time-based or business logic consolidation to outbound transactions. If you need to batch or consolidate transactions before they reach your trading partner, that logic should be implemented in your connector or integration layer before posting to Orderful.