Canonical Generalized Feedback Implementation Guide and Specifications

Modified on Tue, May 26 at 9:28 AM

ECGrid Simplify

Canonical Generalized Feedback Format Specification

Version: 1.0   Date: May 26, 2026   Owner: ECGrid Product

 

1. Purpose

This document defines the canonical Generalized Feedback format used by ECGrid Simplify. It is the single source of truth for generalized feedback structure, field definitions, data types, length limits, required fields, and serialization rules across XML and JSON.

The Generalized Feedback (997 / Functional Acknowledgment) document provides acknowledgment of EDI transaction set receipt and processing status. It confirms that documents (POs, ASNs, invoices, etc.) have been received and processed by the recipient system. Both XML and JSON representations convey the same logical feedback. A JSON Schema (Simplify_Generalized_Feedback.schema.json) provides machine-enforceable validation. This document is the human-readable companion.

2. Scope

In scope:

  • Generalized feedback document structure and core fields.
  • Field-level definitions, data types, length limits, and validation rules.
  • Canonical XML and JSON representations.
  • Trading partner identification and sender/receiver routing.
  • Document reference and shipment tracking information.

Out of scope:

  • Transport (HTTPS, AS2, SFTP). Covered in ECGrid Simplify API docs.
  • Detailed error reporting and rejection codes (covered in separate error specification).
  • Batch processing and multi-transaction acknowledgment logic.

3. Document Structure

A Generalized Feedback payload contains a single feedback message. The message provides EDI transaction acknowledgment with routing information, document references, and optional shipment/logistics details.

  • Top-level shape:

generalizedFeedbackMessage

└── generalizedFeedback (required, exactly one)

     ├── tradingPartnerID

     ├── documentId

     ├── sender / senderQualifier

     ├── receiver / receiverQualifier

     ├── vendorID

     ├── shipmentId / bookingDate

     └── reservationCode

4. Core Fields

The generalized feedback message contains trading partner routing information and document acknowledgment details.

Field

Type

Length

Req

Description

Example

tradingPartnerID

string

1–35

Yes

ECGrid trading partner identifier. Routes the document.

SEV2TEST01

documentId

string

1–35

Yes

Unique identifier for this feedback document.

FB-2026-05-001

userId

string

1–35

No

User ID of the system processing the feedback.

USER123

sender

string

2–17

Yes

Sender ID in the qualifier namespace (recipient of original transaction).

SEV2TEST02

senderQualifier

string

1–4

Yes

Qualifier for sender ID (e.g. SE, ZZ, 01, 14).

SE

receiver

string

2–17

Yes

Receiver ID in the qualifier namespace (sender of original transaction).

SEV2TEST01

receiverQualifier

string

1–4

Yes

Qualifier for receiver ID.

SE

groupSender

string

1–9

No

EDI functional group sender ID.

1

groupReceiver

string

1–9

No

EDI functional group receiver ID.

1

vendorID

string

1–35

No

Vendor/supplier identifier (if feedback relates to vendor transaction).

VEND12345

scac

string

2–4

No

Standard Carrier Alpha Code (if feedback relates to transportation).

SAIA

shipmentId

string

1–35

No

Shipment identifier being acknowledged.

SHIP-2026-05-001

bookingDate

string

8

No

Booking or reservation date. YYYYMMDD.

20260526

reservationCode

string

1–35

No

Reservation or confirmation code for reference.

RES-2026-05-ABC

5. Field Semantics and Business Rules

5.1 Routing Fields

The Sender and Receiver fields indicate the direction of the feedback relative to the original transaction. Importantly, these are reversed from the original transaction: the Sender of the feedback is the Receiver of the original transaction, and vice versa.

  • Example:
  • Original PO: Sender=Buyer, Receiver=Supplier
  • PO Feedback: Sender=Supplier (acknowledging receipt), Receiver=Buyer (original sender)

5.2 Qualifier Codes

Common qualifier codes for identifying trading partners:

  • SE – Swedish or Sweden identifier
  • ZZ – Mutually defined (custom, proprietary)
  • 01 – DUNS (Dun & Bradstreet number)
  • 14 – DUNS+4
  • 92 – Assigned by buyer

5.3 Optional Logistics Fields

Fields like shipmentId, scac, bookingDate, and reservationCode are optional and provided when the feedback relates to shipment tracking or transportation logistics. These fields enable end-to-end supply chain visibility.

6. Naming Conventions

  • XML: PascalCase for all element names (e.g. GeneralizedFeedback, TradingPartnerID, ShipmentId).
  • JSON: camelCase for all field names (e.g. generalizedFeedback, tradingPartnerID, shipmentId).
  • Field semantics and length limits are identical across both. Only casing differs.
  • Empty optional values in XML use self-closing tags (e.g. <VendorID/>). In JSON, use empty string or null.

7. Usage Scenarios

7.1 PO Acknowledgment Feedback

Scenario: Buyer sends a PO to Supplier. Supplier receives and processes the PO, and sends generalized feedback to confirm receipt.

  • Trading Partners: Original Sender (Buyer) → Original Receiver (Supplier); Feedback Sender (Supplier) → Feedback Receiver (Buyer)
  • Fields Used: tradingPartnerID, documentId, sender, receiver, vendorID

7.2 Invoice Acknowledgment Feedback

Scenario: Supplier sends an invoice to Buyer. Buyer receives and processes the invoice, and sends feedback confirmation.

  • Fields Used: tradingPartnerID, documentId, sender, receiver

7.3 Shipment Tracking Feedback

Scenario: Carrier/supplier communicates shipment status with optional booking or reservation details.

  • Fields Used: tradingPartnerID, documentId, sender, receiver, scac, shipmentId, bookingDate, reservationCode

8. XML Example

Example 1: PO Acknowledgment Feedback

<GeneralizedFeedbackMessage>
<GeneralizedFeedback>
<TradingPartnerID>SEV2TEST01</TradingPartnerID>
<DocumentId>FB-2026-05-001</DocumentId>
<SenderQualifier>SE</SenderQualifier>
<Sender>SEV2TEST01</Sender>
<ReceiverQualifier>SE</ReceiverQualifier>
<Receiver>SEV2TEST02</Receiver>
<VendorID>VEND12345</VendorID>
</GeneralizedFeedback>
 </GeneralizedFeedbackMessage>

Example 2: Shipment Acknowledgment Feedback with Tracking

<GeneralizedFeedbackMessage>
<GeneralizedFeedback>
<TradingPartnerID>SEV2TEST01</TradingPartnerID>
<DocumentId>FB-2026-05-ASN-001</DocumentId>
<SenderQualifier>SE</SenderQualifier>
<Sender>SEV2TEST01</Sender>
<ReceiverQualifier>SE</ReceiverQualifier>
<Receiver>SEV2TEST02</Receiver>
<SCAC>SAIA</SCAC>
<ShipmentId>SHIP-2026-05-001</ShipmentId>
<BookingDate>20260526</BookingDate>
<ReservationCode>RES-2026-05-ABC</ReservationCode>
</GeneralizedFeedback>
 </GeneralizedFeedbackMessage>

9. JSON Example

Example 1: PO Acknowledgment Feedback

{
"generalizedFeedbackMessage": {
"generalizedFeedback": {
"tradingPartnerID": "SEV2TEST01",
"documentId": "FB-2026-05-001",
"senderQualifier": "SE",
"sender": "SEV2TEST01",
"receiverQualifier": "SE",
"receiver": "SEV2TEST02",
"vendorID": "VEND12345"
}
}
 }

Example 2: Shipment Acknowledgment Feedback with Tracking

{
"generalizedFeedbackMessage": {
"generalizedFeedback": {
"tradingPartnerID": "SEV2TEST01",
"documentId": "FB-2026-05-ASN-001",
"senderQualifier": "SE",
"sender": "SEV2TEST01",
"receiverQualifier": "SE",
"receiver": "SEV2TEST02",
"scac": "SAIA",
"shipmentId": "SHIP-2026-05-001",
"bookingDate": "20260526",
"reservationCode": "RES-2026-05-ABC"
}
}
 }

10. Implementation Notes

10.1 Async Communication

Generalized Feedback is typically sent asynchronously after processing the original transaction. The feedback document should be sent as soon as processing is complete, whether successful or with errors.

10.2 Correlation

Implementers should correlate feedback with original transactions using tradingPartnerID and documentId. Additional context from vendorID or shipmentId may help with transaction matching.

10.3 Routing Inversion

Remember that sender and receiver are reversed in feedback compared to the original transaction. The party receiving the original document sends the feedback back to the party that originated it.

10.4 Optional Fields

Fields like SCAC, shipmentId, bookingDate, and reservationCode are optional. Include them only when the feedback relates to shipment tracking or logistics operations. Omit them for document receipt acknowledgments.

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article