It is now possible to send 997 (for X12) messages automatically within Babelway.

Small Intro

A 997 is the functional acknowledgement in X12. It will typically contain information indicating if your X12 message is structurally valid or not and optionally describe errors (data element too long, invalid control numbers etc). The feature we provide now is for a user to be able to ask for a 997 to be generated automatically upon reception of an X12 message. Hence, if your message passed X12 validation (we send the acknowledgement before checking the message against your message definition) we will send a positive acknowledgement. If the X12 validation failed we will try to construct a matching 997 describing the error. Note that depending on the nature of the error this may not succeed: we do not recover from certain structural errors (this is something we can enhance to a certain degree in the future). If the acknowledgement creation fails, then the message will be set in error and will indicate the failure of generating a 997.


Ultimately, when you choose to send out an acknowledgement, the system needs to know which gateway IN to inject it in. This was added to the message definition properties page.

In order for the user not to have to bother with the construction of a separate channel we’ve provided a wizard for him to configure this: > Choose gateway

2. You can choose to reuse existing components:

  • – Gateway out > we will build a channel around it
  • – Gateway IN > we merely use this gateway

Or build a new gateway out which we will integrate in a new channel

Babelway’s 997s:

Our 997s will contain one functional group + transaction set per functional group found in the original message. Note that in Babelway a message either passes entirely or not at all. Thus, if you include multiple messages within an interchange and one of them is in error, the 997 produced will indicate all items are in error.
See below for supported error codes:
In AK9 and AK5: We will provide a status of 
– A for an accepted message
– E for a message accepted with errors: we check segment & values always. If errors are found but you didn’t request to have them checked then the message is in E.
– R: message is rejected
AK9 – Functional group errors 
4  Group control number in the functional group header and trailer do not agree
5  Number of included transaction sets does not match actual count
AK5 – Transaction set errors
3  Transaction set control number in header and trailer do not match
4  Number of included segments does not match actual count
5  One or more segments in error
AK3 – Segment errors
5  Segment exceeds maximum use
8  Segment has data element errors
AK4 – Data element errors 
1  Mandatory data element missing
2  Conditional required data element missing
3  Too many data elements
5  Data element is too long
6  Invalid character in data element
8  Invalid date
9  Invalid time

This ensures that only the person with the linked authenticator app (you) can access your account, making your Babelway platform even more secure.