\documentclass[10pt,a4paper]{article}

% Packages
\usepackage{fancyhdr}           % For header and footer
\usepackage{multicol}           % Allows multicols in tables
\usepackage{tabularx}           % Intelligent column widths
\usepackage{tabulary}           % Used in header and footer
\usepackage{hhline}             % Border under tables
\usepackage{graphicx}           % For images
\usepackage{xcolor}             % For hex colours
%\usepackage[utf8x]{inputenc}    % For unicode character support
\usepackage[T1]{fontenc}        % Without this we get weird character replacements
\usepackage{colortbl}           % For coloured tables
\usepackage{setspace}           % For line height
\usepackage{lastpage}           % Needed for total page number
\usepackage{seqsplit}           % Splits long words.
%\usepackage{opensans}          % Can't make this work so far. Shame. Would be lovely.
\usepackage[normalem]{ulem}     % For underlining links
% Most of the following are not required for the majority
% of cheat sheets but are needed for some symbol support.
\usepackage{amsmath}            % Symbols
\usepackage{MnSymbol}           % Symbols
\usepackage{wasysym}            % Symbols
%\usepackage[english,german,french,spanish,italian]{babel}              % Languages

% Document Info
\author{ZMonk91 (zspitfire04)}
\pdfinfo{
  /Title (edi-electronic-data-interchange.pdf)
  /Creator (Cheatography)
  /Author (ZMonk91 (zspitfire04))
  /Subject (EDI (Electronic Data Interchange) Cheat Sheet)
}

% Lengths and widths
\addtolength{\textwidth}{6cm}
\addtolength{\textheight}{-1cm}
\addtolength{\hoffset}{-3cm}
\addtolength{\voffset}{-2cm}
\setlength{\tabcolsep}{0.2cm} % Space between columns
\setlength{\headsep}{-12pt} % Reduce space between header and content
\setlength{\headheight}{85pt} % If less, LaTeX automatically increases it
\renewcommand{\footrulewidth}{0pt} % Remove footer line
\renewcommand{\headrulewidth}{0pt} % Remove header line
\renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit
% This two commands together give roughly
% the right line height in the tables
\renewcommand{\arraystretch}{1.3}
\onehalfspacing

% Commands
\newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour
\newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols
\newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns
\newcommand{\tn}{\tabularnewline} % Required as custom column type in use

% Font and Colours
\definecolor{HeadBackground}{HTML}{333333}
\definecolor{FootBackground}{HTML}{666666}
\definecolor{TextColor}{HTML}{333333}
\definecolor{DarkBackground}{HTML}{378AA3}
\definecolor{LightBackground}{HTML}{F2F7F9}
\renewcommand{\familydefault}{\sfdefault}
\color{TextColor}

% Header and Footer
\pagestyle{fancy}
\fancyhead{} % Set header to blank
\fancyfoot{} % Set footer to blank
\fancyhead[L]{
\noindent
\begin{multicols}{3}
\begin{tabulary}{5.8cm}{C}
    \SetRowColor{DarkBackground}
    \vspace{-7pt}
    {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent
        \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}}
    }
\end{tabulary}
\columnbreak
\begin{tabulary}{11cm}{L}
    \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{EDI (Electronic Data Interchange) Cheat Sheet}}}} \\
    \normalsize{by \textcolor{DarkBackground}{ZMonk91 (zspitfire04)} via \textcolor{DarkBackground}{\uline{cheatography.com/50566/cs/15216/}}}
\end{tabulary}
\end{multicols}}

\fancyfoot[L]{ \footnotesize
\noindent
\begin{multicols}{3}
\begin{tabulary}{5.8cm}{LL}
  \SetRowColor{FootBackground}
  \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}}  \\
  \vspace{-2pt}ZMonk91 (zspitfire04) \\
  \uline{cheatography.com/zspitfire04} \\
  \end{tabulary}
\vfill
\columnbreak
\begin{tabulary}{5.8cm}{L}
  \SetRowColor{FootBackground}
  \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}}  \\
   \vspace{-2pt}Not Yet Published.\\
   Updated 21st March, 2018.\\
   Page {\thepage} of \pageref{LastPage}.
\end{tabulary}
\vfill
\columnbreak
\begin{tabulary}{5.8cm}{L}
  \SetRowColor{FootBackground}
  \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}}  \\
  \SetRowColor{white}
  \vspace{-5pt}
  %\includegraphics[width=48px,height=48px]{dave.jpeg}
  Measure your website readability!\\
  www.readability-score.com
\end{tabulary}
\end{multicols}}




\begin{document}
\raggedright
\raggedcolumns

% Set font size to small. Switch to any value
% from this page to resize cheat sheet text:
% www.emerson.emory.edu/services/latex/latex_169.html
\footnotesize % Small font.

\begin{multicols*}{3}

\begin{tabularx}{5.377cm}{p{0.74655 cm} x{4.23045 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{X12 Common EDI Transaction Keys}}  \tn
% Row 0
\SetRowColor{LightBackground}
\seqsplit{270/271} & Eligibility Inquiry \& Response \tn 
% Row Count 2 (+ 2)
% Row 1
\SetRowColor{white}
\seqsplit{276/277} & Claim Status Inquiry \& Response \tn 
% Row Count 4 (+ 2)
% Row 2
\SetRowColor{LightBackground}
278 & Health Services Review request \& reply \tn 
% Row Count 6 (+ 2)
% Row 3
\SetRowColor{white}
810 & Invoice \tn 
% Row Count 7 (+ 1)
% Row 4
\SetRowColor{LightBackground}
820 & Payroll Deducted \& Other Group Premium Payment for Insurance Products \tn 
% Row Count 10 (+ 3)
% Row 5
\SetRowColor{white}
834 & Benefits enrollment and maintenance \tn 
% Row Count 12 (+ 2)
% Row 6
\SetRowColor{LightBackground}
835 & Electronic Remittances \tn 
% Row Count 13 (+ 1)
% Row 7
\SetRowColor{white}
837 & Medical Claims with Subtypes for Professional, Institutional, and Dental Varieties \tn 
% Row Count 16 (+ 3)
% Row 8
\SetRowColor{LightBackground}
846 & Inventory Inquiry \tn 
% Row Count 17 (+ 1)
% Row 9
\SetRowColor{white}
850 & Purchase Order \tn 
% Row Count 18 (+ 1)
% Row 10
\SetRowColor{LightBackground}
852 & Product Activity Data \tn 
% Row Count 19 (+ 1)
% Row 11
\SetRowColor{white}
855 & Purchase Order Acknowledgement \tn 
% Row Count 20 (+ 1)
% Row 12
\SetRowColor{LightBackground}
856 & Shipment Notice/Manifest \tn 
% Row Count 21 (+ 1)
% Row 13
\SetRowColor{white}
860 & Purchase Order Change \tn 
% Row Count 22 (+ 1)
% Row 14
\SetRowColor{LightBackground}
894 & Delivery/Return Base Record \tn 
% Row Count 23 (+ 1)
% Row 15
\SetRowColor{white}
940 & Warehouse Ship Order \tn 
% Row Count 24 (+ 1)
% Row 16
\SetRowColor{LightBackground}
945 & Warehouse Ship Advice \tn 
% Row Count 25 (+ 1)
% Row 17
\SetRowColor{white}
997 & Functional Acknowledgement \tn 
% Row Count 26 (+ 1)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{5.377cm}{X}
\SetRowColor{DarkBackground}
\mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Envelopes}}  \tn
\SetRowColor{white}
\mymulticolumn{1}{x{5.377cm}}{The structure for all documents begins and ends with an envelope. The envelope is usually made up of the ISA segment and the GS segments. There can be more than one GS segment per file, but there should only be one ISA segment per file. The ISA is a special segment. Whereas all the other segments are delimited, and therefore can be of varying lenghts, the ISA segment is of fixed width. This is because it tells you how to read the rest of the file. \newline % Row Count 10 (+ 10)
Start with the last three characters of the ISA segment. Those will tell you the element delimiter, the sub-element delimiter, and the segment delimiter% Row Count 14 (+ 4)
} \tn 
\hhline{>{\arrayrulecolor{DarkBackground}}-}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{5.377cm}{x{3.57006 cm} p{0.4577 cm} p{0.54924 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{3}{x{5.377cm}}{\bf\textcolor{white}{X12 | EDIFACT Mapping}}  \tn
% Row 0
\SetRowColor{LightBackground}
\mymulticolumn{3}{x{5.377cm}}{{\bf{PRODUCT/PRICING TRANSACTIONS}}} \tn 
% Row Count 1 (+ 1)
% Row 1
\SetRowColor{white}
Price Sales Catalog & 832 & \seqsplit{PRICAT} \tn 
% Row Count 3 (+ 2)
% Row 2
\SetRowColor{LightBackground}
Electronic Bid Form & 833 & -{}- \tn 
% Row Count 4 (+ 1)
% Row 3
\SetRowColor{white}
Contract Award & 836 & -{}- \tn 
% Row Count 5 (+ 1)
% Row 4
\SetRowColor{LightBackground}
Request For Quotation & 840 & \seqsplit{REQOTE} \tn 
% Row Count 7 (+ 2)
% Row 5
\SetRowColor{white}
Specification/Technical Information & 841 & \seqsplit{PRDSPE} \tn 
% Row Count 9 (+ 2)
% Row 6
\SetRowColor{LightBackground}
Response To Request For Quotation & 843 & \seqsplit{QUOTES} \tn 
% Row Count 11 (+ 2)
% Row 7
\SetRowColor{white}
Price Authorization Acknowledgement/Status & 845 & \seqsplit{ATHSTS} \tn 
% Row Count 13 (+ 2)
% Row 8
\SetRowColor{LightBackground}
\mymulticolumn{3}{x{5.377cm}}{{\bf{ORDERING TRANSACTIONS}}} \tn 
% Row Count 14 (+ 1)
% Row 9
\SetRowColor{white}
Purchase Order & 850 & \seqsplit{ORDERS} \tn 
% Row Count 16 (+ 2)
% Row 10
\SetRowColor{LightBackground}
Product Activity Data & 852 & \seqsplit{SLSRPT} \tn 
% Row Count 18 (+ 2)
% Row 11
\SetRowColor{white}
Purchase Order Acknowledgement & 855 & \seqsplit{ORDRSP} \tn 
% Row Count 20 (+ 2)
% Row 12
\SetRowColor{LightBackground}
Purchase Order Change & 860 & \seqsplit{ORDCHG} \tn 
% Row Count 22 (+ 2)
% Row 13
\SetRowColor{white}
Purchase Order Change Acknowledgment & 865 & ORDSP \tn 
% Row Count 24 (+ 2)
% Row 14
\SetRowColor{LightBackground}
Order Status Inquiry & 869 & \seqsplit{ORSSTA} \tn 
% Row Count 26 (+ 2)
% Row 15
\SetRowColor{white}
Order Status Report & 870 & \seqsplit{ORDREP} \tn 
% Row Count 28 (+ 2)
\hhline{>{\arrayrulecolor{DarkBackground}}---}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{5.377cm}{p{0.4977 cm} x{4.4793 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{X12 Mandatory Segments}}  \tn
% Row 0
\SetRowColor{LightBackground}
ISA & Interchange Header - This contains information about the sender and recipient; \tn 
% Row Count 3 (+ 3)
% Row 1
\SetRowColor{white}
GS & Functional Group Header -  segment of a set of X12 documents of the same document type (transaction set). Here you'll find information about the functional group, e.g. codes for the sender, recipient, and date/time of preparation; \tn 
% Row Count 10 (+ 7)
% Row 2
\SetRowColor{LightBackground}
ST & Transaction Set Header - segment of an X12 document. This marks the start of a transaction set in an interchange; \tn 
% Row Count 14 (+ 4)
% Row 3
\SetRowColor{white}
SE & Transaction Set Trailer - segment of an X12 document. This marks the end of a transaction set; \tn 
% Row Count 17 (+ 3)
% Row 4
\SetRowColor{LightBackground}
GE & Functional Group Trailer - segment of a set of X12 documents of the same transaction set. It tells you the number of functional groups and the control group number. It also marks the end of a group of transaction sets; and \tn 
% Row Count 24 (+ 7)
% Row 5
\SetRowColor{white}
IEA & End of Interchange -  It contains information about the number of functional groups and the interchange control reference number. \tn 
% Row Count 28 (+ 4)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{5.377cm}{x{2.23965 cm} x{2.73735 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Communication Protocols}}  \tn
% Row 0
\SetRowColor{LightBackground}
VAN (Value Added Network) & Private network provider (sometimes called turnkey communcations line) hired by a company to facilitate EDI \tn 
% Row Count 5 (+ 5)
% Row 1
\SetRowColor{white}
AS2 (Applicability Statement 2) & Specification about how to transport data securely and reliably over the internet. Security is achieved by using digital certificates and encryption \tn 
% Row Count 12 (+ 7)
% Row 2
\SetRowColor{LightBackground}
FTP/sFTP (File Transfer Protocol) & Standard network protocol used to transfer files from one host to another over TCP-based network like the Internet. \tn 
% Row Count 18 (+ 6)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}


% That's all folks
\end{multicols*}

\end{document}
