---
title: FunctionalGroup
summary: API reference for FunctionalGroup.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-15
library: SAIF.Framework.Common.Files
reference_type: package
---

# FunctionalGroup

`FunctionalGroup` represents one X12 functional group — the GS/GE-delimited envelope — keyed by the GS segment's group control number (GS06) ([BR-034](../../business-rules.md#br-034-group-keys-derived-from-control-number-elements)). Instances are produced exclusively by `EdiGroupParser.CreateFunctionalGroups`, which is invoked lazily from `EdiFile.FunctionalGroups`.

## Purpose
- Provides typed `Header`/`Trailer` access to the parsed GS and GE segments delimiting this group, in addition to the raw `HeaderSegment`/`TrailerSegment` inherited from `GroupContainer`.
- Owns `TransactionSets`, the collection of `ITransactionSet` instances parsed out of this functional group's member segments by `EdiGroupParser.CreateTransactionSets`.

## Context
- Namespace: `SAIF.Common.Files.Edi`
- Assembly/package: `SAIF.Framework.Common.Files`
- Base class: `GroupContainer`
- Also derives (transitively) from `SegmentGroup` and `List<IEdiSegment>` (framework-standard collection base)
- Implements: `IFunctionalGroup`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| Header | `public GsSegment Header { get; internal set; }` | The strongly-typed GS (functional group header) segment for this group. |
| Trailer | `public GeSegment Trailer { get; internal set; }` | The strongly-typed GE (functional group trailer) segment for this group. |
| TransactionSets | `public ITransactionSetContainer TransactionSets { get; internal set; }` | The transaction sets (ST/SE envelopes) nested within this functional group, parsed by `EdiGroupParser.CreateTransactionSets`. |

## Inherited public members

Members in this section are inherited from `GroupContainer` in `SAIF.Framework.Common.Files`. They are available on this type through inheritance.

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| HeaderSegment | `public IEdiSegment HeaderSegment { get; internal set; }` | The raw GS segment that opens this group. | `SAIF.Framework.Common.Files` — `GroupContainer` |
| TrailerSegment | `public IEdiSegment TrailerSegment { get; internal set; }` | The raw GE segment that closes this group. | `SAIF.Framework.Common.Files` — `GroupContainer` |
| Segments | `public IEnumerable<IEdiSegment> Segments { get; internal set; }` | This group's member segments with the GS/GE control segments excluded ([BR-033](../../business-rules.md#br-033-control-segments-excluded-from-member-segments-collections)). | `SAIF.Framework.Common.Files` — `GroupContainer` |

Members in this section are also inherited from `SegmentGroup` in `SAIF.Framework.Common.Files` (the next ancestor up the chain).

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| SegmentGroupId | `public string SegmentGroupId { get; set; }` | The segment tag (`"GS"`) that this group was delimited by during parsing. | `SAIF.Framework.Common.Files` — `SegmentGroup` |
| Index | `public int Index { get; set; }` | The sequential ordinal assigned to this functional group among its siblings. | `SAIF.Framework.Common.Files` — `SegmentGroup` |
| Key | `public string Key { get; set; }` | The GS06 group control number value that uniquely identifies this functional group ([BR-034](../../business-rules.md#br-034-group-keys-derived-from-control-number-elements)). | `SAIF.Framework.Common.Files` — `SegmentGroup` |
| Level | `public int Level { get; set; }` | The nesting depth of this group, defaulted to `0`. | `SAIF.Framework.Common.Files` — `SegmentGroup` |

## Sources
- Common\SAIF.Common.Files\Edi\FunctionalGroup.cs
- Common\SAIF.Common.Files\Edi\IFunctionalGroup.cs
