Parser EDI X12

Analizar documentos EDI X12

1
Entendiendo Mensajes EDI X12
TL;DR

EDI X12 es el estandar norteamericano para el intercambio electronico de documentos comerciales — ordenes de compra, facturas y avisos de remesa de pago.

Que es EDI X12?

EDI X12 (Intercambio Electronico de Datos, ANSI ASC X12) es el estandar predominante para el intercambio electronico de documentos comerciales en America del Norte. Desarrollado por el Comite de Estandares Acreditado X12 (originalmente autorizado por ANSI en 1979), define formatos estandarizados para documentos comerciales comunes como ordenes de compra (850), facturas (810), avisos de remesa de pago (820), avisos anticipados de envio (856) y cientos mas.

EDI reemplaza los procesos comerciales basados en papel con mensajes electronicos estructurados que pueden ser procesados automaticamente por sistemas informaticos. En lugar de enviar por correo una orden de compra en papel que debe ser ingresada manualmente en el sistema del proveedor, el sistema ERP del comprador genera un EDI 850 que el sistema del proveedor puede ingerir directamente — eliminando errores de captura de datos, reduciendo el tiempo de procesamiento de dias a minutos y reduciendo costos significativamente.

A pesar del auge de las APIs y las alternativas basadas en XML, EDI X12 sigue profundamente arraigado en la cadena de suministro, la atencion medica, el transporte y los servicios financieros. Los principales minoristas (Walmart, Amazon, Target), los pagadores de atencion medica y las empresas de logistica requieren que sus socios comerciales se comuniquen via EDI.

Estructura del mensaje

Cada intercambio EDI X12 utiliza una estructura de sobre de tres capas — como cajas anidadas — que proporciona enrutamiento, agrupacion y organizacion a nivel de transaccion.

EDI X12 Envelope Structure A nested box diagram showing three concentric layers of the EDI X12 envelope: the outer ISA/IEA Interchange Control layer, the middle GS/GE Functional Group layer, and the inner ST/SE Transaction Set layer containing the business data segments. ISA Interchange Control Header Sender/Receiver IDs, date, control number, delimiters GS Functional Group Header Functional ID (IN=Invoice, PO=Purchase Order), version ST Transaction Set Header Transaction set ID (810, 850, 820...), control number BIG*20240315*INV-2024-001*20240310*PO-2024-500~ N1*ST*ACME CORPORATION*92*SHIP001~ IT1*1*100*EA*25.00**VP*WIDGET-A~ TDS*462500~ Business data segments (varies by transaction set type) SE Transaction Set Trailer — segment count + control number GE Functional Group Trailer — transaction set count + group control number IEA Interchange Control Trailer — functional group count + interchange control number

ISA/IEA (Control de Intercambio) es el sobre mas externo. Identifica al emisor y receptor, establece los delimitadores y envuelve uno o mas grupos funcionales. El segmento ISA siempre tiene exactamente 106 caracteres.

GS/GE (Grupo Funcional) agrupa conjuntos de transacciones relacionados. Un solo intercambio puede contener multiples grupos funcionales (por ejemplo, un grupo de facturas y un grupo de ordenes de compra). El GS identifica el tipo funcional (IN = Factura, PO = Orden de Compra).

ST/SE (Conjunto de Transacciones) contiene el documento comercial real. El segmento ST identifica el tipo de conjunto de transacciones (810 para factura, 850 para orden de compra) y asigna un numero de control. El segmento SE cuenta los segmentos y cierra la transaccion.

Conjuntos de transacciones comunes

ConjuntoNombreDireccionDescripcion
810FacturaVendedor a CompradorFacturacion por bienes o servicios entregados
850Orden de compraComprador a VendedorSolicitud de compra de articulos especificos a precios acordados
820Orden de pago/Aviso de remesaPagador a BeneficiarioInstrucciones de pago con referencias de facturas
856Aviso anticipado de envio (ASN)Vendedor a CompradorNotificacion de envio con detalles de empaque
997Acuse de recibo funcionalReceptor a EmisorConfirma la recepcion y correccion sintactica
834Inscripcion de beneficiosEmpleador a PagadorInscripcion y cambios en atencion medica
835Pago de reclamacion medicaPagador a ProveedorExplicacion de beneficios y detalles de pago
837Reclamacion medicaProveedor a PagadorPresentacion de reclamacion medica

EDI vs alternativas modernas

CaracteristicaEDI X12API XML/JSON
FormatoPosicional fijo + delimitadoMarcado jerarquico/objeto
Legible por humanosDificilFacil
Validacion de esquemaGuias de implementacionXSD / JSON Schema
TransporteVAN, AS2, SFTPHTTPS REST/SOAP
AdopcionUniversal en cadena de suministroCreciente, no universal
Tiempo realTipicamente por lotesCapacidad en tiempo real
CostoTarifas VAN por KBCostos de alojamiento de API

Casos de uso comunes

  • Gestion de cadena de suministro: Ordenes de compra (850), facturas (810) y ASNs (856) automatizan el ciclo de adquisicion a pago entre minoristas y proveedores
  • Reclamaciones medicas: 837 (presentacion de reclamacion), 835 (remesa) y 834 (inscripcion) son obligatorios por HIPAA para transacciones de atencion medica en EE.UU.
  • Procesamiento de pagos: 820 (orden de pago) y 823 (lockbox) automatizan las instrucciones de pago B2B y la aplicacion de efectivo
  • Transporte: 204 (oferta de carga), 214 (estado de envio) y 210 (factura de flete) coordinan la logistica entre expedidores y transportistas
  • Cumplimiento minorista: Los principales minoristas requieren EDI para todas las transacciones con proveedores — el incumplimiento resulta en cargos y penalidades
  • Reportes financieros: 822 (analisis de cuenta de cliente) y 821 (reporte de informacion financiera) respaldan las operaciones de tesoreria

Prueba estos ejemplos

Factura 810 valida Válido

Una factura EDI X12 810 valida envuelta en el sobre estandar de tres capas: ISA/IEA (intercambio), GS/GE (grupo funcional), ST/SE (conjunto de transacciones). La factura hace referencia a PO-2024-500, se envia a ACME CORPORATION, contiene dos lineas de articulos (100 widgets a $25.00, 50 gadgets a $42.50) y totaliza $4,625.00 (segmento TDS en centavos).

ISA*00* *00* *ZZ*SENDERID *ZZ*RECEIVERID *240315*1200*U*00401*000000001*0*P*>~ GS*IN*SENDERID*RECEIVERID*20240315*1200*1*X*004010~ ST*810*0001~ BIG*20240315*INV-2024-001*20240310*PO-2024-500~ N1*ST*ACME CORPORATION*92*SHIP001~ IT1*1*100*EA*25.00**VP*WIDGET-A~ IT1*2*50*EA*42.50**VP*GADGET-B~ TDS*462500~ SE*8*0001~ GE*1*1~ IEA*1*000000001~
EDI invalido (Falta trailer GE) Inválido

Este intercambio EDI no contiene el segmento GE (Trailer de Grupo Funcional) entre los segmentos SE e IEA. El segmento GE es obligatorio y debe contener el numero de conjuntos de transacciones en el grupo y el numero de control del grupo que coincida con el encabezado GS. Sin el, el sistema receptor no puede validar la integridad del grupo.

ISA*00* *00* *ZZ*SENDERID *ZZ*RECEIVERID *240315*1200*U*00401*000000002*0*P*>~ GS*IN*SENDERID*RECEIVERID*20240315*1200*2*X*004010~ ST*810*0001~ BIG*20240315*INV-2024-002~ TDS*100000~ SE*4*0001~ IEA*1*000000002~