{
  "openapi": "3.0.1",
  "info": {
    "title": "EdiNation API",
    "version": "2"
  },
  "servers": [
    {
      "url": "https://api.edination.com/v2"
    }
  ],
  "security": [
    {
      "ApiKey": []
    }
  ],
  "tags": [
    {
      "name": "Edifact",
      "description": "Translate, validate or acknowledge EDIFACT files"
    },
    {
      "name": "EdiModel",
      "description": "Manage EDI transaction models"
    },
    {
      "name": "X12",
      "description": "Translate, validate or acknowledge X12 files"
    }
  ],
  "paths": {
    "/edifact/read": {
      "post": {
        "tags": [
          "Edifact"
        ],
        "summary": "Reads an EDIFACT file and returns its contents translated to an array of EdifactInterchange objects.",
        "parameters": [
          {
            "name": "ignoreNullValues",
            "in": "query",
            "description": "Whether to ignore all null values in the response. The default is false.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "continueOnError",
            "in": "query",
            "description": "Whether to continue reading if a corrupt interchange is encountered. The default is false.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "charSet",
            "in": "query",
            "description": "The encoding of the file contents. The default is utf-8. The available values are: unicodeFFFE, utf-32, utf-32BE, us-ascii, iso-8859-1, utf-7, utf-8, utf-16.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "default": "utf-8"
            }
          },
          {
            "name": "model",
            "in": "query",
            "description": "The model to use. By default, the API will infer the model based on the transaction and version identifiers.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "eancomS3",
            "in": "query",
            "description": "The default syntax for EANCOM transactions. By default all EANCOM transactions will be translated and validated according to the rules of Syntax 4. Set this flag to true if you need Syntax 3 to be used.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/edifact_read_body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EdifactInterchange"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          }
        }
      }
    },
    "/edifact/write": {
      "post": {
        "tags": [
          "Edifact"
        ],
        "summary": "Translates an EdifactInterchange object to a raw EDIFACT interchange and returns it as a stream.",
        "parameters": [
          {
            "name": "preserveWhitespace",
            "in": "query",
            "description": "Whether to preserve blank data elements so the output contains multiple delimiters instead of omitting any excess delimiters. The default is false.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "charSet",
            "in": "query",
            "description": "The encoding of the file contents. The default is utf-8. The available values are: unicodeFFFE, utf-32, utf-32BE, us-ascii, iso-8859-1, utf-7, utf-8, utf-16.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "default": "utf-8"
            }
          },
          {
            "name": "postfix",
            "in": "query",
            "description": "The postfix to be applied at the end of each segment, just after the segment separator. This is usually a carriage return (CR), line feed (LF) or both. By default, there is no postfix.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "sameRepetionAndDataElement",
            "in": "query",
            "description": "Sometimes the same delimiter is used to denote data element separator and repetition separator as in IATA transactions. By default, this is false.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "eancomS3",
            "in": "query",
            "description": "The default syntax for EANCOM transactions. By default all EANCOM transactions will be translated and validated according to the rules of Syntax 4. Set this flag to true if you need Syntax 3 to be used.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The EdifactInterchange object to translate to raw EDIFACT.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EdifactInterchange"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          }
        }
      }
    },
    "/edifact/validate": {
      "post": {
        "tags": [
          "Edifact"
        ],
        "summary": "Validates an EdifactInterchange object according to the EDIFACT standard rules for each version and transaction.",
        "parameters": [
          {
            "name": "syntaxSet",
            "in": "query",
            "description": "In case you need to validate against a syntax set, different than UNOA and UNOB, populate this filed with all of the allowed symbols, url-escaped.\r\n            All data elements with alpha (A) or alphanumeric (AN) data types are validated against a syntax set of allowed characters. The supported syntax sets are UNOA and UNOB. The validator infers the correct syntax set from EdifactInterchange.UNB.SYNTAXIDENTIFIER_1.SyntaxIdentifier_1. The symbols added to this field will override the corresponding sets in both UNOA and UNOB.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "skipTrailer",
            "in": "query",
            "description": "You are allowed to validate an EdifactInterchange with missing interchange, functional group or transaction trailers (UNZ, UNE, UNT). This is because these will be automatically applied during the Write oprtaion so you don't have to worry about counting the items. By default it is expected that all trailers are present when you validate the EdifactInterchange and by default, this is set to false. To skip all trailer validation, set this to true.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "structureOnly",
            "in": "query",
            "description": "This is equivalent to HIPAA Snip level 1, where only the structure and control segments are validated. By default, this is set to false, however if you want to not validate things such as data types, number of repeteitions or dates, set this to true.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "decimalPoint",
            "in": "query",
            "description": "This could be either point . (default) or comma ,.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "default": "."
            }
          },
          {
            "name": "eancomS3",
            "in": "query",
            "description": "The default syntax for EANCOM transactions. By default all EANCOM transactions will be validated according to the rules of Syntax 4. Set this flag to true if you need Syntax 3 to be used.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The EdifactInterchange object to validate.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EdifactInterchange"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          }
        }
      }
    },
    "/edifact/ack": {
      "post": {
        "tags": [
          "Edifact"
        ],
        "summary": "Generates functional and/or technical CONTRL acknowledment(s) for the requested EdifactInterchange.",
        "parameters": [
          {
            "name": "syntaxSet",
            "in": "query",
            "description": "In case you need to validate against a syntax set, different than UNOA and UNOB, populate this filed with all of the allowed symbols, url-escaped. All data elements with alpha (A) or alphanumeric (AN) data types are validated against a syntax set of allowed characters. The supported syntax sets are UNOA and UNOB. The validator infers the correct syntax set from EdifactInterchange.UNB.SYNTAXIDENTIFIER_1.SyntaxIdentifier_1. The symbols added to this field will override the corresponding sets in both UNOA and UNOB.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "detectDuplicates",
            "in": "query",
            "description": "If you need to detect duplicates as in functional groups or transactions with the same reference number, set this flag to true. The default is false.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "tranRefNumber",
            "in": "query",
            "description": "The default is 1. Set this to whatever the CONTRL UNH.MessageReferenceNumber_01 needs to be.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "interchangeRefNumber",
            "in": "query",
            "description": "The default is 1. Set this to whatever the CONTRL EdifactInterchange.UNB.InterchangeControlReference_5 needs to be.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "ackForValidTrans",
            "in": "query",
            "description": "The default is false. Set this to true if you need UCM loops included for all valid transaction as well. By default UCM loops are generated only for invalid transactions.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "batchAcks",
            "in": "query",
            "description": "The default is true. Set this to false if you need to generate separate EdifactInterchange for each acknowledgment. By default all acknowledgments are batched in the same EdifactInterchange.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "technicalAck",
            "in": "query",
            "description": "The default technical acknowledgment CONTRL is generated according to EdifactInterchange.UNB.AcknowledgementRequest_9. You can either enforce it to always generate technical CONTRLs or supress it to never generate any technical CONTRLs. This will override the flag in EdifactInterchange.UNB.AcknowledgementRequest_9.\r\n            The available values are: default, enforce, suppress.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "eancomS3",
            "in": "query",
            "description": "The default syntax for EANCOM transactions. By default all EANCOM transactions will be validated according to the rules of Syntax 4. Set this flag to true if you need Syntax 3 to be used.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The EdifactInterchange object to acknowledge.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EdifactInterchange"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EdifactInterchange"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          }
        }
      }
    },
    "/models": {
      "get": {
        "tags": [
          "EdiModel"
        ],
        "summary": "Retrieves all models for a subscription.",
        "parameters": [
          {
            "name": "system",
            "in": "query",
            "description": "Whether to retrieve EdiNation's or custom uploaded models.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EdiModel"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "EdiModel"
        ],
        "summary": "Uploads a model file to a subscription. It must be a valid DOT NET assembly.",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/models_body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          }
        }
      }
    },
    "/models/{id}": {
      "get": {
        "tags": [
          "EdiModel"
        ],
        "summary": "Retrieve a particular model file as a stream.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The model name.",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "EdiModel"
        ],
        "summary": "Deletes a particular model from the custom models.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The model name.",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          }
        }
      }
    },
    "/models/{id}/transactions": {
      "get": {
        "tags": [
          "EdiModel"
        ],
        "summary": "Retrieves all transactions in a model file.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The model name.",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "system",
            "in": "query",
            "description": "Whether to search in EdiNation's or custom uploaded models.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          }
        }
      }
    },
    "/x12/read": {
      "post": {
        "tags": [
          "X12"
        ],
        "summary": "Reads an X12 file and returns its contents translated to an array of X12Interchange objects.",
        "parameters": [
          {
            "name": "ignoreNullValues",
            "in": "query",
            "description": "Whether to ignore all null values in the response. The default is false.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "continueOnError",
            "in": "query",
            "description": "Whether to continue reading if a corrupt interchange is encountered. The default is false.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "charSet",
            "in": "query",
            "description": "The encoding of the file contents. The default is utf-8. The available values are: unicodeFFFE, utf-32, utf-32BE, us-ascii, iso-8859-1, utf-7, utf-8, utf-16.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "default": "utf-8"
            }
          },
          {
            "name": "model",
            "in": "query",
            "description": "The model to use. By default, the API will infer the model based on the transaction and version identifiers.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/x12_read_body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/X12Interchange"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          }
        }
      }
    },
    "/x12/write": {
      "post": {
        "tags": [
          "X12"
        ],
        "summary": "Translates an X12Interchange object to a raw X12 interchange and returns it as a stream.",
        "parameters": [
          {
            "name": "preserveWhitespace",
            "in": "query",
            "description": "Whether to preserve blank data elements so the output contains multiple delimiters instead of omitting any excess delimiters. The default is false.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "charSet",
            "in": "query",
            "description": "The encoding of the file contents. The default is utf-8. The available values are: unicodeFFFE, utf-32, utf-32BE, us-ascii, iso-8859-1, utf-7, utf-8, utf-16.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "default": "utf-8"
            }
          },
          {
            "name": "postfix",
            "in": "query",
            "description": "The postfix to be applied at the end of each segment, just after the segment separator. This is usually a carriage return (CR), line feed (LF) or both. By default, there is no postfix.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "requestBody": {
          "description": "The X12Interchange object to translate to raw X12.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/X12Interchange"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          }
        }
      }
    },
    "/x12/validate": {
      "post": {
        "tags": [
          "X12"
        ],
        "summary": "Validates an X12Interchange object according to the X12 standard rules for each version and transaction.",
        "parameters": [
          {
            "name": "basicSyntax",
            "in": "query",
            "description": "All data elements with alpha (A) or alphanumeric (AN) data types are validated against a syntax set of allowed characters. The default syntax set is the Extended, hence the default for this parameter is false. By setting this to true, validation will use the Basic syntax set.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "syntaxSet",
            "in": "query",
            "description": "In case you need to validate against a syntax set, different than Basic and Extended, populate this filed with all of the allowed symbols, url-escaped.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "skipTrailer",
            "in": "query",
            "description": "You are allowed to validate an X12Interchange with missing interchange, functional group or transaction trailers (IEA, GE, SE). This is because these will be automatically applied during the Write oprtaion so you don't have to worry about counting the items. By default it is expected that all trailers are present when you validate the X12Interchange and by default, this is set to false. To skip all trailer validation, set this to true.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "structureOnly",
            "in": "query",
            "description": "This is equivalent to HIPAA Snip level 1, where only the structure and control segments are validated. By default, this is set to false, however if you want to not validate things such as data types, number of repeteitions or dates, set this to true.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The X12Interchange object to validate.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/X12Interchange"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          }
        }
      }
    },
    "/x12/ack": {
      "post": {
        "tags": [
          "X12"
        ],
        "summary": "Generates functional/implementation and/or technical acknowledment(s) for the requested X12Interchange.",
        "parameters": [
          {
            "name": "basicSyntax",
            "in": "query",
            "description": "All data elements with alpha (A) or alphanumeric (AN) data types are validated against a syntax set of allowed characters. The default syntax set is the Extended, hence the default for this parameter is false. By setting this to true, validation will use the Basic syntax set.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "syntaxSet",
            "in": "query",
            "description": "In case you need to validate against a syntax set, different than Basic and Extended, populate this filed with all of the allowed symbols, url-escaped.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "detectDuplicates",
            "in": "query",
            "description": "If you need to detect duplicates as in functional groups or transactions with the same reference number, set this flag to true. The default is false.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "tranRefNumber",
            "in": "query",
            "description": "The default is 1. Set this to whatever the 997 or 999 X12Interchange.ST.TransactionSetControlNumber_02 needs to be. In case there are multiple acknowledgments (for multiple functional groups), this will be starting reference number and every subsequent acknowledgment will have the previous reference number incremented with 1.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "interchangeRefNumber",
            "in": "query",
            "description": "The default is 1. Set this to whatever the 997 or 999 X12Interchange.ISA.InterchangeControlNumber_13 needs to be.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "ackForValidTrans",
            "in": "query",
            "description": "The default is false. Set this to true if you need AK2 loops included for all valid transaction as well. By default AK2 loops are generated only for invalid transactions.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "batchAcks",
            "in": "query",
            "description": "The default is true. Set this to false if you need to generate separate X12Interchange for each acknowledgment. By default all acknowledgments are batched in the same X12Interchange.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "technicalAck",
            "in": "query",
            "description": "The default technical acknowledgment TA1 is generated according to X12Interchange.ISA.AcknowledgementRequested_14. You can either enforce it to always generate TA1s or supress it to never generate any TA1s. This will override the flag in X12Interchange.ISA.AcknowledgementRequested_14.\r\n            The available values are: default, enforce, suppress.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ack",
            "in": "query",
            "description": "The default value is 997. The type of acknowledgment being generated. Set this to 999 if you need to generate an implementation instead of functional acknowledgment. The available values are: 997, 999.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "default": "997"
            }
          },
          {
            "name": "ak901isP",
            "in": "query",
            "description": "The value of the AK9's first element. By default it is \"E\". Set this to true if you want this value to be \"P\" instead.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "The X12Interchange object to acknowledge.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/X12Interchange"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/X12Interchange"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetails"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "UNA": {
        "type": "object",
        "properties": {
          "ComponentDataElement": {
            "type": "string"
          },
          "DataElement": {
            "type": "string"
          },
          "DecimalNotation": {
            "type": "string"
          },
          "ReleaseIndicator": {
            "type": "string"
          },
          "Reserved": {
            "type": "string"
          },
          "Segment": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "S001": {
        "type": "object",
        "properties": {
          "SyntaxIdentifier_1": {
            "type": "string",
            "nullable": true
          },
          "SyntaxVersionNumber_2": {
            "type": "string",
            "nullable": true
          },
          "ServiceCodeListDirectoryVersionNumber_3": {
            "type": "string",
            "nullable": true
          },
          "CharacterEncoding_4": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "S002": {
        "type": "object",
        "properties": {
          "InterchangeSenderIdentification_1": {
            "type": "string",
            "nullable": true
          },
          "IdentificationCodeQualifier_2": {
            "type": "string",
            "nullable": true
          },
          "InterchangeSenderInternalIdentification_3": {
            "type": "string",
            "nullable": true
          },
          "InterchangeSenderInternalSubIdentification_4": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "S003": {
        "type": "object",
        "properties": {
          "InterchangeRecipientIdentification_1": {
            "type": "string",
            "nullable": true
          },
          "IdentificationCodeQualifier_2": {
            "type": "string",
            "nullable": true
          },
          "InterchangeRecipientInternalIdentification_3": {
            "type": "string",
            "nullable": true
          },
          "InterchangeRecipientInternalSubIdentification_4": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "S004": {
        "type": "object",
        "properties": {
          "Date_1": {
            "type": "string",
            "nullable": true
          },
          "Time_2": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "S005": {
        "type": "object",
        "properties": {
          "RecipientReferencePassword_1": {
            "type": "string",
            "nullable": true
          },
          "RecipientReferencePasswordQualifier_2": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UNB": {
        "type": "object",
        "properties": {
          "SYNTAXIDENTIFIER_1": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/S001"
              }
            ]
          },
          "INTERCHANGESENDER_2": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/S002"
              }
            ]
          },
          "INTERCHANGERECIPIENT_3": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/S003"
              }
            ]
          },
          "DATEANDTIMEOFPREPARATION_4": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/S004"
              }
            ]
          },
          "InterchangeControlReference_5": {
            "type": "string",
            "nullable": true
          },
          "RECIPIENTSREFERENCEPASSWORDDETAILS_6": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/S005"
              }
            ]
          },
          "ApplicationReference_7": {
            "type": "string",
            "nullable": true
          },
          "ProcessingPriorityCode_8": {
            "type": "string",
            "nullable": true
          },
          "AcknowledgementRequest_9": {
            "type": "string",
            "nullable": true
          },
          "InterchangeAgreementIdentifier_10": {
            "type": "string",
            "nullable": true
          },
          "TestIndicator_11": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "S006": {
        "type": "object",
        "properties": {
          "ApplicationSenderIdentification_1": {
            "type": "string",
            "nullable": true
          },
          "IdentificationCodeQualifier_2": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "S007": {
        "type": "object",
        "properties": {
          "ApplicationRecipientIdentification_1": {
            "type": "string",
            "nullable": true
          },
          "IdentificationCodeQualifier_2": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "S008": {
        "type": "object",
        "properties": {
          "MessageVersionNumber_1": {
            "type": "string",
            "nullable": true
          },
          "MessageReleaseNumber_2": {
            "type": "string",
            "nullable": true
          },
          "AssociationAssignedCode_3": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UNG": {
        "type": "object",
        "properties": {
          "MessageGroupIdentification_1": {
            "type": "string",
            "nullable": true
          },
          "APPLICATIONSENDERIDENTIFICATION_2": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/S006"
              }
            ]
          },
          "APPLICATIONRECIPIENTIDENTIFICATION_3": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/S007"
              }
            ]
          },
          "DATEANDTIMEOFPREPARATION_4": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/S004"
              }
            ]
          },
          "GroupReferenceNumber_5": {
            "type": "string",
            "nullable": true
          },
          "ControllingAgency_6": {
            "type": "string",
            "nullable": true
          },
          "MESSAGEVERSION_7": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/S008"
              }
            ]
          },
          "ApplicationPassword_8": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UNE": {
        "type": "object",
        "properties": {
          "GroupControlCount_1": {
            "type": "string",
            "nullable": true
          },
          "GroupReferenceNumber_2": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EdifactGroup": {
        "required": [
          "Transactions"
        ],
        "type": "object",
        "properties": {
          "UNG": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/UNG"
              }
            ]
          },
          "Transactions": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false
            }
          },
          "UNETrailers": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/UNE"
            }
          }
        },
        "additionalProperties": false
      },
      "UNZ": {
        "type": "object",
        "properties": {
          "InterchangeControlCount_1": {
            "type": "string",
            "nullable": true
          },
          "InterchangeControlReference_2": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OperationDetail": {
        "type": "object",
        "properties": {
          "Index": {
            "type": "integer",
            "format": "int32"
          },
          "TransactionIndex": {
            "type": "integer",
            "format": "int32"
          },
          "TransactionRef": {
            "type": "string",
            "nullable": true
          },
          "SegmentId": {
            "type": "string",
            "nullable": true
          },
          "DataElementIndex": {
            "type": "integer",
            "format": "int32"
          },
          "Value": {
            "type": "string",
            "nullable": true
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Status": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OperationResult": {
        "type": "object",
        "properties": {
          "LastIndex": {
            "type": "integer",
            "format": "int32"
          },
          "Details": {
            "type": "array",
            "nullable": true,
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/OperationDetail"
            }
          },
          "Status": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "EdifactInterchange": {
        "required": [
          "Groups",
          "UNB"
        ],
        "type": "object",
        "properties": {
          "UNA": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/UNA"
              }
            ]
          },
          "UNB": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UNB"
              }
            ]
          },
          "Groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EdifactGroup"
            }
          },
          "UNZTrailers": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/UNZ"
            }
          },
          "Result": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/OperationResult"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "ErrorDetails": {
        "type": "object",
        "properties": {
          "Code": {
            "type": "integer",
            "format": "int32"
          },
          "Details": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "Link": {
        "type": "object",
        "properties": {
          "Rel": {
            "type": "string",
            "nullable": true
          },
          "Href": {
            "type": "string",
            "nullable": true
          },
          "Action": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EdiModel": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "DateCreated": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "Links": {
            "type": "array",
            "nullable": true,
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/Link"
            }
          }
        },
        "additionalProperties": false
      },
      "ISA": {
        "type": "object",
        "properties": {
          "AuthorizationInformationQualifier_1": {
            "type": "string",
            "nullable": true
          },
          "AuthorizationInformation_2": {
            "type": "string",
            "nullable": true
          },
          "SecurityInformationQualifier_3": {
            "type": "string",
            "nullable": true
          },
          "SecurityInformation_4": {
            "type": "string",
            "nullable": true
          },
          "SenderIDQualifier_5": {
            "type": "string",
            "nullable": true
          },
          "InterchangeSenderID_6": {
            "type": "string",
            "nullable": true
          },
          "ReceiverIDQualifier_7": {
            "type": "string",
            "nullable": true
          },
          "InterchangeReceiverID_8": {
            "type": "string",
            "nullable": true
          },
          "InterchangeDate_9": {
            "type": "string",
            "nullable": true
          },
          "InterchangeTime_10": {
            "type": "string",
            "nullable": true
          },
          "InterchangeControlStandardsIdentifier_11": {
            "type": "string",
            "nullable": true
          },
          "InterchangeControlVersionNumber_12": {
            "type": "string",
            "nullable": true
          },
          "InterchangeControlNumber_13": {
            "type": "string",
            "nullable": true
          },
          "AcknowledgementRequested_14": {
            "type": "string",
            "nullable": true
          },
          "UsageIndicator_15": {
            "type": "string",
            "nullable": true
          },
          "ComponentElementSeparator_16": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TA1": {
        "type": "object",
        "properties": {
          "InterchangeControlNumber_1": {
            "type": "string",
            "nullable": true
          },
          "InterchangeDate_2": {
            "type": "string",
            "nullable": true
          },
          "InterchangeTime_3": {
            "type": "string",
            "nullable": true
          },
          "InterchangeAcknowledgmentCode_4": {
            "type": "string",
            "nullable": true
          },
          "InterchangeNoteCode_5": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GS": {
        "type": "object",
        "properties": {
          "CodeIdentifyingInformationType_1": {
            "type": "string",
            "nullable": true
          },
          "SenderIDCode_2": {
            "type": "string",
            "nullable": true
          },
          "ReceiverIDCode_3": {
            "type": "string",
            "nullable": true
          },
          "Date_4": {
            "type": "string",
            "nullable": true
          },
          "Time_5": {
            "type": "string",
            "nullable": true
          },
          "GroupControlNumber_6": {
            "type": "string",
            "nullable": true
          },
          "TransactionTypeCode_7": {
            "type": "string",
            "nullable": true
          },
          "VersionAndRelease_8": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GE": {
        "type": "object",
        "properties": {
          "NumberOfIncludedSets_1": {
            "type": "string",
            "nullable": true
          },
          "GroupControlNumber_2": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "X12Group": {
        "required": [
          "GS",
          "Transactions"
        ],
        "type": "object",
        "properties": {
          "GS": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GS"
              }
            ]
          },
          "Transactions": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false
            }
          },
          "GETrailers": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/GE"
            }
          }
        },
        "additionalProperties": false
      },
      "IEA": {
        "type": "object",
        "properties": {
          "NumberOfIncludedGroups_1": {
            "type": "string",
            "nullable": true
          },
          "InterchangeControlNumber_2": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "X12Interchange": {
        "required": [
          "DataElementDelimiter",
          "Groups",
          "ISA",
          "SegmentDelimiter"
        ],
        "type": "object",
        "properties": {
          "SegmentDelimiter": {
            "type": "string"
          },
          "DataElementDelimiter": {
            "type": "string"
          },
          "ISA": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ISA"
              }
            ]
          },
          "TA1": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/TA1"
              }
            ]
          },
          "Groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/X12Group"
            }
          },
          "IEATrailers": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/IEA"
            }
          },
          "Result": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/OperationResult"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "edifact_read_body": {
        "required": [
          "fileName"
        ],
        "type": "object",
        "properties": {
          "fileName": {
            "type": "string",
            "description": "Upload File",
            "format": "binary"
          }
        }
      },
      "models_body": {
        "required": [
          "fileName"
        ],
        "type": "object",
        "properties": {
          "fileName": {
            "type": "string",
            "description": "Upload File",
            "format": "binary"
          }
        }
      },
      "x12_read_body": {
        "required": [
          "fileName"
        ],
        "type": "object",
        "properties": {
          "fileName": {
            "type": "string",
            "description": "Upload File",
            "format": "binary"
          }
        }
      }
    },
    "securitySchemes": {
      "ApiKey": {
        "type": "apiKey",
        "description": "API key to authenticate requests",
        "name": "Ocp-Apim-Subscription-Key",
        "in": "header"
      }
    }
  }
}