cXML PunchOut Mock Supplier

Drop-in punchout supplier for testing the buyer-side cXML flow. No database — all state is stored in JSON files.

Connect this in Prendio (tblpunchoutsuppliers)

Prendio fieldValue
Punchout_URL (setup endpoint)https://punchout.mocked.site/setup
From_Domain (buyer)NetworkID
From_Identity (buyer)BIOPROCURE
From_Shared_Secret (buyer)prendio-punchout-secret-change-me
To_Domain (this supplier)DUNS
To_Identity (this supplier)987654321
Credential checkENFORCED
Checkout form fieldcXML-base64 · base64 · root <cXML>

Flow: Prendio POSTs a PunchOutSetupRequest to the setup URL → mock replies with a StartPage → shopper edits the cart → checkout posts a PunchOutOrderMessage back to the buyer's BrowserFormPost URL.

Credentials & checkout settings

Buyer credential (what Prendio sends & the mock validates)

Supplier credential (this mock; echoed in the order message)

Checkout / form post

Saved to data/config.json.

Sample catalog (5)

Part #DescriptionShort name UOMPriceUNSPSC Mfr nameMfr part

PunchOut sessions (6)

CreatedTokenBuyerCookieReturns toStart page
2026-06-17T14:10:41+00:00 f960d2326c04e2a761c33459 MThfMTI3MzVfMTdfMjVlNWZmMDQtYzExYi00OWE1LTg5YzgtMjU0ZmQ2NDkzZmE5 http://localhost:9000/punchout/checkout?cartid=-1&detailid=0 open
2026-06-17T14:05:41+00:00 e6f94833ba947ac28e7a621d MThfMTI3MzVfMTdfN2UyOTBlMjMtZmIwNS00MzQxLWE2OGQtZmI4NWU2OWE3NDNh http://localhost:9000/punchout/checkout?cartid=-1&detailid=0 open
2026-06-17T13:02:46+00:00 bc51981e35dc6004a613aeca MThfMTI3MzVfMTdfNDc0NTk3YjEtMTU4Ny00ZGFmLTljMGUtYmIxOWFmN2RmZWVk http://localhost:9000/punchout/checkout?cartid=-1&detailid=0 open
2026-06-17T12:59:04+00:00 55569e0b01bd58b841eed6f9 MThfMTI3MzVfMTdfMTFkNjcwZDgtOWRjOC00MWQ3LWFiY2MtYjFmYzQ4ZDVjNDU4 http://localhost:9000/punchout/checkout?cartid=-1&detailid=0 open
2026-06-17T12:56:22+00:00 018e3bd8b0a654f354e7ccad MThfMTI3MzVfMTdfMTZhMjA2NWUtM2ZlZS00ODY0LTg4MWItOTM4MWU5OWU1ZThk http://localhost:9000/punchout/checkout?cartid=-1&detailid=0 open
2026-06-17T12:54:12+00:00 e68e3714998203a51185ce66 MThfMTI3MzVfMTdfMjUwNGNiZWUtMmM5Ny00OTJmLTljZDgtNWI0MWM3MjAzMzYx http://localhost:9000/punchout/checkout?cartid=-1&detailid=0 open

Request log (11 most recent, max 300)

TimeKindPathAuthStatusDetail
2026-06-17 16:12:59 SETUP /robots.txt Not a setup request 404
view
Request:
              
Response:
Not found
2026-06-17 15:00:49 SETUP /robots.txt Not a setup request 404
view
Request:
              
Response:
Not found
2026-06-17 15:00:12 SETUP /robots.txt Not a setup request 404
view
Request:
              
Response:
Not found
2026-06-17 14:19:46 SETUP /js/shared/loading.js Not a setup request 404
view
Request:
              
Response:
Not found
2026-06-17 14:19:45 SETUP /HomePage/config.json Not a setup request 404
view
Request:
              
Response:
Not found
2026-06-17 14:19:45 SETUP /js/live.js Not a setup request 404
view
Request:
              
Response:
Not found
2026-06-17 14:19:44 SETUP /admin/js/admin.js Not a setup request 404
view
Request:
              
Response:
Not found
2026-06-17 14:14:22 ORDER /catalog.php (checkout) OK 200
view
BuyerCookie: MThfMTI3MzVfMTdfMjVlNWZmMDQtYzExYi00OWE1LTg5YzgtMjU0ZmQ2NDkzZmE5
Return: http://localhost:9000/punchout/checkout?cartid=-1&detailid=0
Field: cXML-base64 (base64)
Response:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd">
<cXML payloadID="12804f1be8b09694.1781705662@punchout-mock.com" timestamp="2026-06-17T14:14:22+00:00" xml:lang="en-US" version="1.2.014">
  <Header>
    <From><Credential domain="DUNS"><Identity>987654321</Identity></Credential></From>
    <To><Credential domain="NetworkID"><Identity>BIOPROCURE</Identity></Credential></To>
    <Sender><Credential domain="DUNS"><Identity>987654321</Identity></Credential><UserAgent>PunchOut Mock Supplier</UserAgent></Sender>
  </Header>
  <Message>
    <PunchOutOrderMessage>
      <BuyerCookie>MThfMTI3MzVfMTdfMjVlNWZmMDQtYzExYi00OWE1LTg5YzgtMjU0ZmQ2NDkzZmE5</BuyerCookie>
      <PunchOutOrderMessageHeader operationAllowed="create">
        <Total><Money currency="USD">-3.00</Money></Total>
      </PunchOutOrderMessageHeader>
      <ItemIn quantity="1">
        <ItemID>
          <SupplierPartID>LAB-GLOVE-100</SupplierPartID>
          <SupplierPartAuxiliaryID>NITRILE-M</SupplierPartAuxiliaryID>
        </ItemID>
        <ItemDetail>
          <UnitPrice><Money currency="USD">-3.00</Money></UnitPrice>
          <Description xml:lang="en"><ShortName>Nitrile Exam Gloves, M</ShortName>Powder-free nitrile examination gloves, medium, box of 100.</Description>
          <UnitOfMeasure>BX</UnitOfMeasure>
          <Classification domain="UNSPSC">42132203</Classification>
          <ManufacturerPartID>NG-M-100</ManufacturerPartID>
          <ManufacturerName>SafeHands</ManufacturerName>
        </ItemDetail>
      </ItemIn>
    </PunchOutOrderMessage>
  </Message>
</cXML>
2026-06-17 14:14:14 ORDER /catalog.php (checkout) OK 200
view
BuyerCookie: MThfMTI3MzVfMTdfMjVlNWZmMDQtYzExYi00OWE1LTg5YzgtMjU0ZmQ2NDkzZmE5
Return: http://localhost:9000/punchout/checkout?cartid=-1&detailid=0
Field: cXML-base64 (base64)
Response:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd">
<cXML payloadID="297f5708ceb8e665.1781705654@punchout-mock.com" timestamp="2026-06-17T14:14:14+00:00" xml:lang="en-US" version="1.2.014">
  <Header>
    <From><Credential domain="DUNS"><Identity>987654321</Identity></Credential></From>
    <To><Credential domain="NetworkID"><Identity>BIOPROCURE</Identity></Credential></To>
    <Sender><Credential domain="DUNS"><Identity>987654321</Identity></Credential><UserAgent>PunchOut Mock Supplier</UserAgent></Sender>
  </Header>
  <Message>
    <PunchOutOrderMessage>
      <BuyerCookie>MThfMTI3MzVfMTdfMjVlNWZmMDQtYzExYi00OWE1LTg5YzgtMjU0ZmQ2NDkzZmE5</BuyerCookie>
      <PunchOutOrderMessageHeader operationAllowed="create">
        <Total><Money currency="USD">0.00</Money></Total>
      </PunchOutOrderMessageHeader>
    </PunchOutOrderMessage>
  </Message>
</cXML>
2026-06-17 14:13:36 ORDER /catalog.php (checkout) OK 200
view
BuyerCookie: MThfMTI3MzVfMTdfMjVlNWZmMDQtYzExYi00OWE1LTg5YzgtMjU0ZmQ2NDkzZmE5
Return: http://localhost:9000/punchout/checkout?cartid=-1&detailid=0
Field: cXML-base64 (base64)
Response:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd">
<cXML payloadID="df82d2208c068e1e.1781705616@punchout-mock.com" timestamp="2026-06-17T14:13:36+00:00" xml:lang="en-US" version="1.2.014">
  <Header>
    <From><Credential domain="DUNS"><Identity>987654321</Identity></Credential></From>
    <To><Credential domain="NetworkID"><Identity>BIOPROCURE</Identity></Credential></To>
    <Sender><Credential domain="DUNS"><Identity>987654321</Identity></Credential><UserAgent>PunchOut Mock Supplier</UserAgent></Sender>
  </Header>
  <Message>
    <PunchOutOrderMessage>
      <BuyerCookie>MThfMTI3MzVfMTdfMjVlNWZmMDQtYzExYi00OWE1LTg5YzgtMjU0ZmQ2NDkzZmE5</BuyerCookie>
      <PunchOutOrderMessageHeader operationAllowed="create">
        <Total><Money currency="USD">0.00</Money></Total>
      </PunchOutOrderMessageHeader>
    </PunchOutOrderMessage>
  </Message>
</cXML>
2026-06-17 14:10:41 SETUP /setup OK 200
view
BuyerCookie: MThfMTI3MzVfMTdfMjVlNWZmMDQtYzExYi00OWE1LTg5YzgtMjU0ZmQ2NDkzZmE5
Return: http://localhost:9000/punchout/checkout?cartid=-1&detailid=0
Request:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cXML.org/schemas/cXML/1.1.010/cXML.dtd">
<cXML payloadID="MThfMTI3MzVfMTdfMjVlNWZmMDQtYzExYi00OWE1LTg5YzgtMjU0ZmQ2NDkzZmE5@Integrated DNA Technologies, Inc..com" timestamp="2026-06-17 14:10:40" xml:lang="en-US" version="1.1.010">
	<Header>
		<From>
			<Credential domain="NetworkID">
				<Identity>PRENDIO</Identity>
			</Credential>
		</From>
		<To>
			<Credential domain="NetworkID">
				<Identity>987654321</Identity>
			</Credential>
		</To>
		<Sender>
			<Credential domain="NetworkID">
				<Identity>BIOPROCURE</Identity>
				<SharedSecret>********</SharedSecret>
			</Credential>
			<UserAgent>BIOPROCURE</UserAgent>
		</Sender>
	</Header>
	<Request>
		<PunchOutSetupRequest operation="create">
			<BuyerCookie>MThfMTI3MzVfMTdfMjVlNWZmMDQtYzExYi00OWE1LTg5YzgtMjU0ZmQ2NDkzZmE5</BuyerCookie>
			<Extrinsic name="FirstName">Sanjaya</Extrinsic>
			<Extrinsic name="LastName">Admin</Extrinsic>
			<Extrinsic name="UniqueName"></Extrinsic>
			<Extrinsic name="UserPrintableName">Sanjaya Admin</Extrinsic>
			<Extrinsic name="UserOrgName">Decibel Therapeutics</Extrinsic>
			<Extrinsic name="UserOrgId">18</Extrinsic>
			<Extrinsic name="UserOrgDept"></Extrinsic>
			<Extrinsic name="UserDept"></Extrinsic>
			<Extrinsic name="UniqueUsername"></Extrinsic>
			<Extrinsic name="ReturnFrame">_self</Extrinsic>
			<Extrinsic name="UserEmail">sanjaya-buyersp-dev-aws@prendio.com</Extrinsic>
			<Extrinsic name="PhoneNumber"></Extrinsic>
			<Extrinsic name="User"></Extrinsic>
			<BrowserFormPost>
				<URL>http://localhost:9000/punchout/checkout?cartid=-1&amp;detailid=0</URL>
			</BrowserFormPost>
			<Contact>
				<Name xml:lang="en-US">Sanjaya Admin</Name>
				<Email>sanjaya-buyersp-dev-aws@prendio.com</Email>
			</Contact>
			<ShipTo>
				<Address addressID="05">
					<Name xml:lang="en-US">BioProcure, LLC</Name>
					<PostalAddress>
						<DeliverTo>BioProcure, LLC</DeliverTo>
						<Street>Decibel Therapeutics</Street>
			<Street>1325 Boylston Street</Street>
			<Street>5th Floor</Street>
						<City>Boston</City>
						<State>MA</State>
						<PostalCode>02215</PostalCode>
						<Email name="main">sanjaya-buyersp-dev-aws@prendio.com</Email>
						<Country isoCountryCode="US">United States</Country>
					</PostalAddress>
				</Address>
			</ShipTo>
		</PunchOutSetupRequest>
	</Request>
</cXML>
Response:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd">
<cXML payloadID="860bafa04b50db21.1781705441@punchout-mock.com" timestamp="2026-06-17T14:10:41+00:00" xml:lang="en-US" version="1.2.014">
  <Response>
    <Status code="200" text="OK"/>
    <PunchOutSetupResponse>
      <StartPage>
        <URL>https://punchout.mocked.site/catalog.php?token=f960d2326c04e2a761c33459</URL>
      </StartPage>
    </PunchOutSetupResponse>
  </Response>
</cXML>