1 Reply Latest reply on Apr 22, 2011 11:38 AM by smokedoyster

    InvoiceDetailRequest URL

    Danny Ferguson Newbie

      I'm modifying a supplier application to support Ariba punchout. Once an order is complete, I want to send the cXML document InvoiceDetailRequest back to Ariba, but how do I determine what URL to send the XML to?    

        • Re: InvoiceDetailRequest URL
          smokedoyster Apprentice

          Hi Danny,


          The way to get this URL (or any other Ariba Network URL) is by using the cXML Profile transaction. The Profile transaction allows any application to query the cXML capabilities and URLs of another application. cXML applications (such as the Ariba Network) can change their URLs on the fly, yet have other connected applications learn about these changes. You send a ProfileRequest and the Ariba Network responds with a ProfileResponse containing all of its URLs for receiving cXML documents.


          1. Here's an example ProfileRequest that you might send:


          <?xml version="1.0" encoding="UTF-8"?>

          <!DOCTYPE cXML SYSTEM "http://xml.cXML.org/schemas/cXML/1.2.021/cXML.dtd">

          <cXML payloadID="456778-199@acme.com" xml:lang="en-US" timestamp="2011-03-12T18:39:09-08:00">


                Your ID



                AN's ID



                Your ID and shared secret


              <ProfileRequest />



          Send this request to one of the following URLs on AN:


             o  https://service.ariba.com/service/transaction/cxml.asp
                    (for shared secret authentication)
             o  https://certservice.ariba.com/service/transaction/cxml.asp
                    (for digital certificate and shared secret authentication)


          2. The Ariba Network then immediately responds with its cXML capabilities and URLs:


          <?xml version="1.0" encoding="UTF-8"?>

          <!DOCTYPE cXML SYSTEM "http://xml.cXML.org/schemas/cXML/1.2.014/cXML.dtd">

          <cXML payloadID="9949494-189@ariba.com" xml:lang="en-US" timestamp="2011-03-12T18:39:10-08:00">

                    <Status code="200" text="OK"/>

                    <ProfileResponse effectiveDate="2011-03-12T18:39:10-08:00">
                         <Transaction requestName="ConfirmationRequest">


                         <Transaction requestName="PunchOutSetupRequest">


                         <Transaction requestName="InvoiceDetailRequest">


                                             ...listing of all other supported transactions...


          Cache these URLs and use them for any transactions that you need to send for the next 24 hours. After 24 hours, issue another ProfileRequest to get an updated list of URLs. Note that the Ariba Network sends you a ProfileRequest once every 24 hours to gather your URLs in the same manner.


          Hope this answers your question.