Search code examples
xmlsabre

Sabre Retrieve Itinerary Soap API Error


I am using sabre soap api to retrieve PNR. But facing following error Action specified in EbxmlMessage does not exist. As mentioned in wsdl soap action is GetReservationOperation. But I don't why its returning invalid action. I am using rest api's for search Bargain finder max and for PNR create passenger record. because get itinerary is not available in rest so that's why i am using Soap API. Does that can cause any problem. If you have any idea please let me know

Request:

<soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:sec="http://schemas.xmlsoap.org/ws/2002/12/secext"
    xmlns:mes="http://www.ebxml.org/namespaces/messageHeader"
    xmlns:v1="http://webservices.sabre.com/pnrbuilder/v1_17"
    xmlns:v11="http://services.sabre.com/res/or/v1_11">
    <soapenv:Header>
        <sec:Security>
            <sec:BinarySecurityToken>Shared/IDL:IceSess\/SessMgr:1\.0.IDL/Common/!ICESMS\/RESA!ICESMSLB\/RES.LB!-3185560751641243001!1025760!0</sec:BinarySecurityToken>
        </sec:Security>
        <mes:MessageHeader mes:id="?" mes:version="2.0">
            <mes:From>
                <mes:PartyId mes:type="urn:x12.org:IO5:01">99999</mes:PartyId>
            </mes:From>
            <mes:To>
                <mes:PartyId mes:type="urn:x12.org:IO5:01">1231231</mes:PartyId>
            </mes:To>
            <mes:CPAId>ipcc</mes:CPAId>
            <mes:ConversationId>ID</mes:ConversationId>
            <mes:Service mes:type="?">GetReservationOperation</mes:Service>
            <mes:Action>GetReservationOperation</mes:Action>
            <mes:MessageData>
                <mes:MessageId>1000</mes:MessageId>
                <mes:Timestamp>2018-01-25T10:00:00</mes:Timestamp>
                <mes:TimeToLive>2018-01-25T12:00:00</mes:TimeToLive>
            </mes:MessageData>
        </mes:MessageHeader>
    </soapenv:Header>
    <soapenv:Body>
        <v1:GetReservationRQ Version="1.17.0" EchoToken="?">
            <v1:Locator>VKSLRM</v1:Locator>
            <v1:RequestType>Stateless</v1:RequestType>
            <v1:ReturnOptions>
                <v1:ViewName>Full</v1:ViewName>
                <v1:ResponseFormat>STL</v1:ResponseFormat>
            </v1:ReturnOptions>
        </v1:GetReservationRQ>
    </soapenv:Body>
</soapenv:Envelope>

Response:

<soap-env:Envelope
    xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
    <soap-env:Header>
        <eb:MessageHeader eb:version="1.0" soap-env:mustUnderstand="1"
            xmlns:eb="http://www.ebxml.org/namespaces/messageHeader">
            <eb:From>
                <eb:PartyId eb:type="urn:x12.org:IO5:01">1231231</eb:PartyId>
            </eb:From>
            <eb:To>
                <eb:PartyId eb:type="urn:x12.org:IO5:01">99999</eb:PartyId>
            </eb:To>
            <eb:CPAId>ipcc</eb:CPAId>
            <eb:ConversationId>ID</eb:ConversationId>
            <eb:Service eb:type="?">GetReservationOperation</eb:Service>
            <eb:Action>ErrorRS</eb:Action>
            <eb:MessageData>
                <eb:MessageId>5618033481599870201</eb:MessageId>
                <eb:Timestamp>2018-01-25T13:22:39</eb:Timestamp>
                <eb:RefToMessageId>1000</eb:RefToMessageId>
            </eb:MessageData>
        </eb:MessageHeader>
        <wsse:Security
            xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext">
            <wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">Shared/IDL:IceSess\/SessMgr:1\.0.IDL/Common/!ICESMS\/RESA!ICESMSLB\/RES.LB!-3185560751641243001!1025760!0</wsse:BinarySecurityToken>
        </wsse:Security>
    </soap-env:Header>
    <soap-env:Body>
        <soap-env:Fault>
            <faultcode>soap-env:Client.InvalidAction</faultcode>
            <faultstring>Action specified in EbxmlMessage does not exist.</faultstring>
            <detail>
                <StackTrace>com.sabre.universalservices.base.exception.ApplicationException: errors.xml.USG_INVALID_ACTION</StackTrace>
            </detail>
        </soap-env:Fault>
    </soap-env:Body>
</soap-env:Envelope>

Solution

  • The correct action code for getReservationRQ is "getReservationRQ".

    https://developer.sabre.com/docs/read/soap_apis/management/itinerary/retrieve_itinerary