Skip to main content
Version: v0.0.2

Function: build999()

build999(spec): X12Interchange

build999 - assemble a 005010X231A1 Implementation Acknowledgment around the supplied envelope + functional-group spec.

Safety guards (refused via AckBuildError):

  • Functional-level A disposition paired with any per-transaction non-A response, or any per-transaction segment-error / syntax-error payload anywhere in the spec → "./errors.js".ACK_BUILD_ERROR_CODES.X12_ACK_ACCEPT_WITH_ERRORS.
  • Per-transaction A disposition paired with non-empty segmentErrors / syntaxErrorCodes → same.
  • AK9-04 (accepted) > AK9-03 (received), AK9-03 > AK9-02 (declared), or response-list length not equal to AK9-03 → "./errors.js".ACK_BUILD_ERROR_CODES.X12_ACK_COUNT_MISMATCH.

Parameters

spec

Build999Spec

Returns

X12Interchange

Example

import { build999 } from "@cosyte/x12";
const ix = build999({
envelope: {
senderId: "SENDER", receiverId: "RECEIVER",
interchangeDate: "250101", interchangeTime: "1200",
interchangeControlNumber: "000000001",
groupControlNumber: "1", transactionSetControlNumber: "0001",
},
functionalGroup: {
functionalIdCode: "HC", groupControlNumber: "1", versionRelease: "005010X222A2",
disposition: "A",
numberOfTransactionSets: 1, numberOfReceivedTransactionSets: 1, numberOfAcceptedTransactionSets: 1,
transactionResponses: [
{ transactionSetIdCode: "837", transactionSetControlNumber: "0001", disposition: "A" },
],
},
});