Skip to content

Security Notice

This document has been auto-published from the internal knowledge base. All passwords, API keys, tokens, and IP addresses have been redacted for security.

eAdaptor XML Integration — Specialist

Connection

  • Endpoint: https://jecprdservices.wisegrid.net/eAdaptor
  • n8n Credential: "EadaptorProdCredentials" (HTTP Basic Auth)
  • Enterprise/Server/Company: JEC / PRD / LAX
  • Protocol: SOAP 1.1 over HTTPS

Authentication — WS-Security

xml
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
  xmlns:edi="http://www.cargowise.com/Schemas/Communications/1.0">
  <soapenv:Header>
    <wsse:Security>
      <wsse:UsernameToken>
        <wsse:Username>eadaptor_user</wsse:Username>
        <wsse:Password>eadaptor_password</wsse:Password>
      </wsse:UsernameToken>
    </wsse:Security>
  </soapenv:Header>
  <soapenv:Body>
    <edi:SendStream>
      <edi:message>{XML_PAYLOAD_HERE}</edi:message>
      <edi:clientId>YOUR_CLIENT_ID</edi:clientId>
      <edi:trackingId>{UUID}</edi:trackingId>
    </edi:SendStream>
  </soapenv:Body>
</soapenv:Envelope>

XML Message Types

1. UniversalEvent (XUE) — Lightweight Milestone / Document Upload

Used by: AN Upload workflow (hJdFaSEsRZc1VtuF)

xml
<?xml version="1.0" encoding="utf-8"?>
<UniversalEvent xmlns="http://www.cargowise.com/Schemas/Universal/2011/11" version="1.1">
  <Event>
    <DataContext>
      <DataTargetCollection>
        <DataTarget>
          <Type>ForwardingConsol | ForwardingShipment | CustomsDeclaration</Type>
          <Key>{UniqueConsignRef or DeclarationReference}</Key>
        </DataTarget>
      </DataTargetCollection>
      <EnterpriseID>JEC</EnterpriseID>
      <ServerID>PRD</ServerID>
      <Company>
        <Code>LAX</Code>
      </Company>
    </DataContext>
    <EventTime>{ISO 8601 timestamp}</EventTime>
    <EventType>DDI</EventType>
    <IsEstimate>false</IsEstimate>
    <AttachedDocumentCollection>
      <AttachedDocument>
        <FileName>{filename.pdf}</FileName>
        <ImageData>{base64 encoded file}</ImageData>
        <Type>
          <Code>ARN | RAN | CAN</Code>
        </Type>
        <IsPublished>true</IsPublished>
      </AttachedDocument>
    </AttachedDocumentCollection>
  </Event>
</UniversalEvent>

DataTarget Types

TypeMaps to CW TableKey Field
ForwardingConsolJobConsol (JK)JK_UniqueConsignRef
ForwardingShipmentJobShipment (JS)JS_UniqueConsignRef
CustomsDeclarationJobDeclaration (JE)JE_DeclarationReference

Document Code Logic (AN Upload)

ConditionDoc CodeMeaning
Target = CustomsDeclarationARNArrival Notice
Target has existing CANRANReplacement Arrival Notice
Target has no CANCANContainer Arrival Notice

2. UniversalShipment (XUS) — Full Shipment Record

Used for creating/updating complete shipment data with all parties, containers, transport legs, customs, and documents.

xml
<?xml version="1.0" encoding="utf-8"?>
<UniversalShipment xmlns="http://www.cargowise.com/Schemas/Universal/2011/11" version="1.1">
  <Shipment>
    <DataContext>
      <DataTargetCollection>
        <DataTarget>
          <Type>ForwardingShipment</Type>
          <Key>{JS_UniqueConsignRef}</Key>
        </DataTarget>
      </DataTargetCollection>
      <EnterpriseID>JEC</EnterpriseID>
      <ServerID>PRD</ServerID>
      <Company><Code>LAX</Code></Company>
    </DataContext>
    <OrganizationAddressCollection>
      <OrganizationAddress>
        <AddressType>ConsigneeDocumentaryAddress</AddressType>
        <OrganizationCode>{OH_Code}</OrganizationCode>
      </OrganizationAddress>
    </OrganizationAddressCollection>
    <ContainerCollection>
      <Container>
        <ContainerNumber>{MSCU1234567}</ContainerNumber>
        <ContainerType>40HC</ContainerType>
        <SealNumber>{seal}</SealNumber>
      </Container>
    </ContainerCollection>
    <TransportLegCollection>
      <TransportLeg>
        <VesselName>{vessel}</VesselName>
        <VoyageFlightNo>{voyage}</VoyageFlightNo>
        <PortOfLoading><Code>{CNSHA}</Code></PortOfLoading>
        <PortOfDischarge><Code>{USLAX}</Code></PortOfDischarge>
        <ETD>{ISO date}</ETD>
        <ETA>{ISO date}</ETA>
        <TransportMode>SEA</TransportMode>
      </TransportLeg>
    </TransportLegCollection>
  </Shipment>
</UniversalShipment>

3. NativeXml — Raw Database Queries

For complex queries not covered by Universal schemas. Essentially SQL-like access via XML.

xml
<NativeXml>
  <Native>
    <Body>
      <Command>SELECT OH_Code, OH_FullName FROM OrgHeader WHERE OH_Code = 'JCSALELAX'</Command>
    </Body>
  </Native>
</NativeXml>

Common Milestone/Event Codes

CodeMeaning
DDIDocument Delivery Instruction
DEPDeparted
ARRArrived
DELDelivered
TLRTelex Release
CUSTCLRDCustoms Cleared
LOADEDLoaded on vessel
DISCHARGEDDischarged from vessel
GATEDINGate In at terminal
GATEDOUTGate Out from terminal
BOOKEDBooking confirmed
ONBOARDOn board vessel
TRANSHIPTranshipment

eAdaptor Response Parsing

Success Indicator

xml
<Status>PRS</Status>

Extract ProcessingLog element for confirmation details.

Common Errors

ErrorCauseFix
Auth failureWrong credentials or WS-Security formatVerify Registry credentials
XML validationInvalid structure or missing required fieldsValidate against XSD, check namespaces
Key not foundTargetKey doesn't match any CW recordRun BL match query first (see cargowise-schema.md)
Duplicate detectionSame document already uploadedCheck JobRequiredDocument.EQ_DocType before upload

n8n Integration Pattern

HTTP Request Node Setup

  • Method: POST
  • URL: https://jecprdservices.wisegrid.net/eAdaptor
  • Content-Type: text/xml; charset=utf-8
  • SOAPAction: http://www.cargowise.com/Schemas/Communications/1.0/SendStream
  • Body: Full SOAP envelope with WS-Security header

Code Node — Build XML

javascript
// In n8n Code node before HTTP Request
const targetType = $json.TargetType;   // from BL match query
const targetKey = $json.TargetKey;
const base64File = $json.fileBase64;
const filename = $json.filename;
const hasCAN = $json.HasCAN;

// Document code logic
let docCode;
if (targetType === 'CustomsDeclaration') {
  docCode = 'ARN';
} else if (hasCAN) {
  docCode = 'RAN';
} else {
  docCode = 'CAN';
}

const xml = `<?xml version="1.0" encoding="utf-8"?>
<UniversalEvent xmlns="http://www.cargowise.com/Schemas/Universal/2011/11" version="1.1">
  <Event>
    <DataContext>
      <DataTargetCollection>
        <DataTarget>
          <Type>${targetType}</Type>
          <Key>${targetKey}</Key>
        </DataTarget>
      </DataTargetCollection>
      <EnterpriseID>JEC</EnterpriseID>
      <ServerID>PRD</ServerID>
      <Company><Code>LAX</Code></Company>
    </DataContext>
    <EventTime>${new Date().toISOString()}</EventTime>
    <EventType>DDI</EventType>
    <IsEstimate>false</IsEstimate>
    <AttachedDocumentCollection>
      <AttachedDocument>
        <FileName>${filename}</FileName>
        <ImageData>${base64File}</ImageData>
        <Type><Code>${docCode}</Code></Type>
        <IsPublished>true</IsPublished>
      </AttachedDocument>
    </AttachedDocumentCollection>
  </Event>
</UniversalEvent>`;

return { xml, docCode, targetType, targetKey };

AI Parser Integration (Pre-eAdaptor Step)

  • API: udm.api.junctionnet.cloud
  • Auth: AWS Cognito (user: wsi, pass: Test-1234!, ClientId: 6cgkve34vmu2nv0f1rh1f0c9qi)
  • Flow: Upload PDF to S3 → Trigger AI parsing → Poll results (10s, max 2 min) → Get BL/vessel/voyage → Run CW match query → Build XML → Send to eAdaptor

Outbound eAdaptor (CW → External)

CW can push events outward via Workflow Templates:

  • Process Type: FWD (Forwarding), CUS (Customs), WOU (Warehouse)
  • Action: XUS (full shipment) or XUE (event only)
  • Trigger: Milestone completion → sends to configured endpoint
  • Recipient: Must be ORP (Organization Proxy)
  • Monitor: Maintain → EDI Messaging → EDI Interchange

Port Codes (UN/LOCODE) — Common

CodePort
USLAXLos Angeles
USLGBLong Beach
MXZLOManzanillo
MXLZCLazaro Cardenas
MXVERVeracruz
MXATMAltamira
CNSHAShanghai
CNNGBNingbo
CNYTNYantian
KRPUSBusan
JPYOKYokohama
TWKHHKaohsiung

Workflows Using eAdaptor

WorkflowIDStatusPurpose
AN UploadhJdFaSEsRZc1VtuFACTIVEPDF → AI Parse → CW Match → eAdaptor upload
AP UploadKmCdpSqMghk1yNqgInactiveAP invoice upload to CW
AN Audit OrchestratorAsL9OZSRkD7calhdInactive6 sub-workflow audit system
AP Invoice ProcessorYYUjYczdRH8kIfAGInactivePDF → AI extract → CW match → exception check

HandyManny Documentation System