CONTRL: did my file arrive?

· The EDI equivalent of a read receipt is the CONTRL message. What it means when none arrives, or when it carries errors.

You sent an EDI file. Did it arrive? Was it processed? A separate message answers that: CONTRL. It is the EDI equivalent of a read receipt.

What it does and does not do

CONTRL takes no interest in content. It does not say "I accept your order"; it says "I received your file and the syntax is valid". It is a technical acknowledgement, not a commercial one.

Two things not to confuse:

Receiving a CONTRL does not mean your order was accepted. An order with flawless syntax that will be commercially rejected still gets a positive CONTRL.

Its structure

A CONTRL message shows where the error is, if there is one:

SegmentPurpose
UCIStatus at interchange level
UCMStatus at message level
UCSPosition of the segment in error
UCDThe reason and which element

The status codes are short: 7 accepted, 4 rejected, 8 errors present but processed.


UCI+REF00042+8712345678901:14+8798765432109:14+7'

The trailing 7 says the interchange was accepted without problems. The reference on that line (REF00042) matches the number on the UNB line of the file you sent — that is how you tell which acknowledgement belongs to which file.

When errors come back

On a rejection, UCS gives you the segment position and UCD the reason:


UCS+12'
UCD+13+QTY+2'

That says there is an error in the second data element of the QTY at segment 12. Opening your file and looking at segment 12 shows the problem directly.

Error codes you will see often:

CodeMeaning
12Invalid value
13Mandatory field missing
15Value not in the code list
35Segment repeated too many times
36Segment missing

These codes tell you the kind of problem, not the fix. When you get "mandatory field missing", your specification tells you which field is mandatory.

If no CONTRL arrives at all

That is usually a transport problem rather than a content one. Places to look, in order:

1. Did the file reach the other side? Check the SFTP directory, the expiry of the AS2 certificate, and the connection logs. 2. Does your partner send CONTRL at all? Not everyone does. The specification says so; if they do not, waiting is pointless. 3. Did it arrive but sit in a queue? Some systems process in batches and the acknowledgement can be hours behind.

The expected turnaround is also defined in the specification; it usually ranges from a few minutes to a few hours.

Should you send CONTRL yourself?

If you process incoming files, your partner will most likely expect an acknowledgement from you too. This is not a one-way mechanism.

The most common mistake when generating your own CONTRL is returning an unconditional 7 (accepted) for every file. That marks a syntactically broken file as accepted, and the other side only discovers the problem when an invoice goes unpaid.

A practical suggestion

Keep your CONTRL messages. In an argument about an invoice that "never arrived", a dated acknowledgement is the document that settles it fastest. Proving syntactic validity does not resolve a commercial dispute, but it moves the discussion to the right place: if the file arrived, the problem is not transport but a business rule.

When a CONTRL lands on your desk, reading the numbers in its UCS and UCD lines alongside the file you sent is the quickest route to a diagnosis.

Related reference

UCI UCM UCS UCD

← All posts