Inbound EDI fails B2B schema validation in supplier collaboration module

We’re facing EDI schema validation failures when suppliers send inbound purchase order acknowledgments through our B2B gateway. The custom XSD we uploaded validates correctly in our test environment, but production rejects files with error “Element ‘PO_ACK_LINE’ is not valid according to schema definition.”

Our trading partner agreement configuration specifies the custom schema, but the validation still fails. We’ve verified the XSD structure matches our supplier’s format:

<xs:element name="PO_ACK_LINE">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="LINE_NUM" type="xs:string"/>

This is blocking supplier onboarding for three critical vendors. Has anyone encountered schema validation issues after uploading custom XSDs to the B2B gateway?

I see you’re on 23c. There was a known issue with custom XSD validation in that release when using complex types with nested sequences. Here’s the complete resolution that addresses all three focus areas:

Custom XSD Upload Fix: The problem is likely that your XSD uses xs:sequence inside xs:complexType, which triggers a validation bug in 23c’s B2B engine. You need to restructure using xs:all instead:

<xs:element name="PO_ACK_LINE">
  <xs:complexType>
    <xs:all>
      <xs:element name="LINE_NUM" type="xs:string"/>
    </xs:all>
  </xs:complexType>
</xs:element>

B2B Schema Validation: After updating the XSD, you must follow this exact sequence:

  1. Upload the modified XSD through Integration Cloud > B2B > Resources > Schemas
  2. Navigate to Document Definitions and create a NEW version (don’t update existing)
  3. Set the new version as active and deactivate the old version
  4. Clear the B2B cache using the REST API endpoint: POST /ic/api/integration/v1/b2b/cache/clear

Trading Partner Agreement Config: Update each affected trading partner agreement:

  • Edit the agreement and go to Document Protocol tab
  • Under Inbound Documents, click on PO_ACK document type
  • Change Schema Validation Mode from “Strict” to “Lax” temporarily
  • Update the Document Definition reference to point to your new version
  • Test with a sample file from your supplier
  • Once validated, switch back to “Strict” mode

The key issue is that 23c’s validator doesn’t properly handle xs:sequence in custom schemas for B2B transactions. The xs:all approach works around this limitation. Also, you MUST create a new document definition version rather than updating in place - the B2B engine doesn’t pick up changes to existing versions reliably.

This resolved the exact same issue for me with three suppliers. After implementing this, all inbound EDI files validated successfully.

Another thing to check - are you using schema versioning in your trading partner agreement? If the agreement is configured to use a specific schema version but your upload went to a different version slot, the gateway will still use the old schema. I’ve debugged this by exporting the active trading partner agreement configuration and checking which schema version reference is actually bound to the inbound document type. Sometimes you need to update the agreement binding after uploading new schemas.

Thanks for the suggestions. I tried the schema reload but still getting the same error. The namespace looks correct in both places. I’m wondering if there’s a version mismatch between what our suppliers are sending and what the gateway expects. The error happens during the inbound processing phase before it even reaches our supplier collaboration workflows.

I’ve seen this exact issue. The B2B gateway caches schema definitions aggressively. After uploading a custom XSD, you need to explicitly refresh the trading partner agreement. Go to Integration Cloud > B2B > Trading Partners, select your agreement, and use the “Reload Schema” action from the Actions menu. This forces the gateway to pick up your latest XSD version instead of using the cached one.