amadeus-ws-client: PHP client for the Amadeus GDS SOAP Web Service interface

Overview

amadeus-ws-client: PHP client for the Amadeus GDS SOAP Web Service interface

Latest Stable Version Build Status Coverage Status Scrutinizer Code Quality Style Status - PSR-2

This client library provides access to the Amadeus GDS SOAP Web Service interface.

To use this client, you must first obtain your personal access to the Web Service interface through an Amadeus Sales channel of your choice.

The Amadeus documentation portal can be found at https://webservices.amadeus.com/

We currently support a full AIR booking flow with MasterPricer, including seat selection and ATC ticket changer flow, as well as a number of additional messages useful for automation. See the full list of supported messages here.

Purpose

This library makes it a lot easier for developers to integrate content from the Amadeus Web Services into their projects. It takes care of:

  • Session management - setting the correct SOAP headers both for Soap Header 2 and 4.
  • Supports all features of Soap Header 4 such as Stateful and Stateless messages.
  • Building the correct request message based on the provided options: the library tries to simplify overly complex request structures where possible.
  • Handling exceptions and checking for error messages in the response.
  • Dealing with different versions of messages.
  • Dealing with multiple WSDL files in a WSAP.

Requirements

  • PHP 5.4 or newer (tested with 5.4 -> 7.3)
  • SOAP, XSL and DOM extensions activated
  • A WSDL & authentication details from Amadeus (SoapHeader 4 or SoapHeader 2)

Installation

Install amadeus-ws-client through Composer.

composer require amabnl/amadeus-ws-client

After installing, you need to require Composer's autoloader:

require 'vendor/autoload.php';

Update composer to get the client:

composer update

Once the client is installed, read the About & Get Started page.

Release history

The current release is version 1.13.0.

See the Changelog.

Usage


See some example applications built with this library.

Donate

If you want to support development of this library or just buy me a beer, you can do so here :)

Support via PayPal

Comments
  • How to get TST Number on ticketCreateTSTFromPricing?

    How to get TST Number on ticketCreateTSTFromPricing?

    Dear @DerMika, I can retrieve PNR and successfully get controlNumber. But a bit confused about the TST_number, where to get it? Without it, I cant use the function ticketCreateTSTFromPricing to create tickets. Please need urgent help!

    amadeus support waiting for feedback 
    opened by mhrahul 43
  • Regarding FareCheckRules

    Regarding FareCheckRules

    Hi Guys,

    The regarding Fare_CheckRules,

    Im using Fare_MasterPricerTravelboardSearch for get results,

    So i want to get penalty information. My question is after getting Fare_MasterPricerTravelboardSearch response how can i get penalties ? what are the parameters require to get penalties using Fare_CheckRules?? This will be a great help for me. Thanks

    opened by rifkydj 42
  • Masterpricer Expert Search

    Masterpricer Expert Search

    Hi,

    i created a base PR so you can see my progress regarding Issue #168.

    There are no Unit Tests or Docs added right now. But this is working and returning Results.

    I tried to copy only what is needed but i somehow think, maybe the Master Pricer Base Struct could be modified to hold more of the three Master Pricer types?

    Any thoughts for me?

    Thanks for your fast Support :)

    new message 
    opened by m0veax 37
  • Getting Session Array Blank

    Getting Session Array Blank

    Hello,

    I am trying to test the FareMasterPricerTbSearch then i am getting Fault Status with host could not reach. I also try to print the Client response but in this case their is no value coming in sessionId, sequenceNumber, securityToken while when i test through https://webservices.amadeus.com then i get the sessions details. For more please find the below code:

    $params = new Params([ 'authParams' => [ 'officeId' => 'XXX', //Office Id 'userId' => 'XXX', //UserId 'passwordData' =>'XXX', // base 64 encoded password 'passwordLength' => 8, 'dutyCode' => 'XX', // duty code 'organizationId' => 'XX', //Organization Id ], 'sessionHandlerParams' => [ 'soapHeaderVersion' => Client::HEADER_V2, 'wsdl' => '', //path of the wsdl file 'stateful' => true, 'logger' => new Psr\Log\NullLogger(), ], 'requestCreatorParams' => [ 'receivedFrom' => 'My Project' ] ]); $client = new Client($params);

    In the above code when i try to print the $client then i get sessionData array with blank values in sessionId, sequenceNumber, securityToken.

    Secondly i want to know how i debug (print) the request in XML format i try to enable the returnXml=true by default but still the same.

    question 
    opened by JustBeDigital 28
  • Support TransactionFlowLink header

    Support TransactionFlowLink header

    Greetings Eng. Der Mika; Nice to be in contact with you again. I want to change the namespaces and the structure of the tags of the request. Can I do this?

    new feature 
    opened by ghost 27
  • pnrCreatePnr creates multiple fares and the price diffrence is way higher than MPTB

    pnrCreatePnr creates multiple fares and the price diffrence is way higher than MPTB

    Thank you very much for your time and concern towards the library & I am enjoying working with it.

    Once again I am having a problem with pnrCreatePnr, I'll try to brief you as short as possible and detailed.

    Search criteria: 2 Adults From: CMB To: PER Type: Round trip (Seg1: CMB->KUL->PER === Seg2: PER->KUL->CMB)

    As you and the Amadeus workflow suggested, I have done MPTB search then used the Air_SellFromRecommendations then checked the status of the segments and applied PNR_AddMultiElements with Option code 0 and now using same segments and itineraries to Perform PNR Pricing with Fare_PricePNRWithBookingClass once I applied it, instead of giving 1 price its giving me several price like in below picture.

    image

    is this behavior is common? if it is, which one would be the one which has been selected by the user? and even in one of those fareList it has 2 fare data, which one would be the price (I understand that, I am supposed to ask this from my Amadeus support, but any help from you is very much appreciated). Please refer the below image for the above statements.

    image

    Also I have included the option array used to create PNR as attachment for your further clarifications.

    //Request structure for PNR request
            $opt = new PnrCreatePnrOptions([
                'actionCode' => PnrCreatePnrOptions::ACTION_NO_PROCESSING, //0 Do not yet save the PNR
                'travellers' => $travellers,
                'itineraries' => $itineraries,
                'elements' => $elements
            ]);
    

    pnrCreatePnr.txt

    Also my time zone is set to the default server one ([timezone] => Asia/Colombo), will this be a problem, because I read something about the time restriction in Amadeus doc, supposed to be not more than 30 minutes to their server time.

    Please do ask me if you need further clarification or results.

    And Please clarify!

    Thank you.

    amadeus support 
    opened by MyDcode 27
  • How to get the Price for Recommendations in Fare_MasterPricerTravelBoardSearch

    How to get the Price for Recommendations in Fare_MasterPricerTravelBoardSearch

    i get XML response from Fare_MasterPricerTravelBoardSearch but how can i get fare price for each flight? So i can display all flights with fare price into my webpage

    amadeus support 
    opened by gaurav99t 26
  • Adding Tour code (FT element)

    Adding Tour code (FT element)

    Hello,

    is there any way to add tourCode element to PNR_AddMultiElements.

    <PNR_AddMultiElements xmlns="http://xml.amadeus.com/PNRADD_17_1_1A">
        <pnrActions>
            <optionCode>0</optionCode>
        </pnrActions>
        <dataElementsMaster>
            <marker1></marker1>
            <dataElementsIndiv>
                <elementManagementData>
                    <reference>
                        <qualifier>OT</qualifier>
                        <number>1</number>
                    </reference>
                    <segmentName>FT</segmentName>
                </elementManagementData>
                <tourCode>
                    <passengerType>PAX</passengerType>
                    <freeFormatTour>
                        <indicator>FF</indicator>
                        <freetext>TOUR CODE</freetext>
                    </freeFormatTour>
                </tourCode>
            </dataElementsIndiv>
        </dataElementsMaster>
    </PNR_AddMultiElements>
    

    thanks,

    question new message feature 
    opened by XYNOMEX 25
  • 11|Session SoapFault trying to authenticate

    11|Session SoapFault trying to authenticate

    Hi Dieter,

    I was trying to use the client to make a PNR retrieve request, but received error message: Amadeus\Client\Result Object ( [status] => FATAL [messages] => Array ( [0] => Amadeus\Client\Result\NotOk Object ( [code] => 11 [text] => [level] => Session ) ) [response] => [responseXml] => soap:Client 11|Session| )

    I checked the log and pasted below, I suspect the reason was the version of the client, could you take a look for me please? thank you! [2018-03-09 21:34:07] RequestResponseLogs.INFO: Called PNR_Retrieve with request: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://xml.amadeus.com/PNRRET_15_1_1A" xmlns:ns2="http://www.w3.org/2005/08/addressing" xmlns:ns3="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wsswssecurity-secext-1.0.xsd" xmlns:ns4="http://xml.amadeus.com/2010/06/Security_v1">SOAP-ENV:Headerns2:MessageID67FD7569-1766-F71A-9042-6E919A1EA972</ns2:MessageID>ns2:Actionhttp://webservices.amadeus.com/PNRRET_15_1_1A</ns2:Action>ns2:Tohttps://nodeA1.test.webservices.amadeus.com/ENDPOINT</ns2:To><oas:Security xmlns:oas="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <oas:UsernameToken xmlns:oas1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" oas1:Id="UsernameToken-1"> oas:UsernameUSERNAME</oas:Username> <oas:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">NONCE</oas:Nonce> <oas:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">DIGEST</oas:Password> oas1:Created2018-03-09T20:34:07:119Z</oas1:Created> </oas:UsernameToken> </oas:Security>ns4:AMA_SecurityHostedUser<ns4:UserID POS_Type="1" PseudoCityCode="OFFICEID" AgentDutyCode="SU" RequestorType="U"/></ns4:AMA_SecurityHostedUser></SOAP-ENV:Header>SOAP-ENV:Bodyns1:PNR_Retrievens1:retrievalFactsns1:retrievens1:type2</ns1:type></ns1:retrieve>ns1:reservationOrProfileIdentifierns1:reservationns1:controlNumberRMBT66</ns1:controlNumber></ns1:reservation></ns1:reservationOrProfileIdentifier></ns1:retrievalFacts></ns1:PNR_Retrieve></SOAP-ENV:Body></SOAP-ENV:Envelope> [] [] [2018-03-09 21:34:07] RequestResponseLogs.INFO: Response: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:awsse="http://xml.amadeus.com/2010/06/Session_v3" xmlns:wsa="http://www.w3.org/2005/08/addressing">soap:Headerwsa:Tohttp://www.w3.org/2005/08/addressing/anonymous</wsa:To>wsa:Fromwsa:Addresshttps://nodeA1.test.webservices.amadeus.com/1ASIWSAMNH</wsa:Address></wsa:From>wsa:Actionhttp://webservices.amadeus.com/PNRRET_15_1_1A</wsa:Action>wsa:MessageIDurn:uuid:b79fc2a0-31a2-97b4-6932-618a5519b17a</wsa:MessageID><wsa:RelatesTo RelationshipType="http://www.w3.org/2005/08/addressing/reply">67FD7569-1766-F71A-9042-6E919A1EA972</wsa:RelatesTo><awsse:Session TransactionStatusCode="End">awsse:SessionIdSESSID</awsse:SessionId>awsse:SequenceNumber1</awsse:SequenceNumber>awsse:SecurityTokenSECTOKEN</awsse:SecurityToken></awsse:Session></soap:Header>soap:Bodysoap:Faultsoap:Client 11|Session|</soap:Fault></soap:Body></soap:Envelope> [] []

    question amadeus support 
    opened by zhaonan0218 20
  • Error recognizing message versions in Request Creator

    Error recognizing message versions in Request Creator

    Hey, I just updated the lib to newest master and when doing pricing I am getting

    [SOAP-ERROR: Encoding: object has no 'pricingOptionGroup' property] 
    

    My code:

    private function pricePnr($currency) {
            $options =  [
                'ticketType' => FarePricePnrWithBookingClassOptions::TICKET_TYPE_ELECTRONIC,
                'currencyOverride' => $currency
            ];
            $pricingResponse = $this->client->farePricePnrWithBookingClass(
                new FarePricePnrWithBookingClassOptions($options)
            );
            return $pricingResponse;
        }
    

    And error:

    SOAPFAULT while sending message Fare_PricePNRWithBookingClass: SOAP-ERROR: Encoding: object has no 'pricingOptionGroup' property code: 0 at /var/www/html/vendor/amabnl/amadeus-ws-client/src/Amadeus/Client/Session/Handler/Base.php line 194:  
    #0 /var/www/html/vendor/amabnl/amadeus-ws-client/src/Amadeus/Client/Session/Handler/Base.php(194): SoapClient->__call('Fare_PricePNRWi...', Array) 
    #1 /var/www/html/vendor/amabnl/amadeus-ws-client/src/Amadeus/Client.php(1072): Amadeus\Client\Session\Handler\Base->sendMessage('Fare_PricePNRWi...', Object(Amadeus\Client\Struct\Fare\PricePNRWithBookingClass12), Array) 
    #2 /var/www/html/vendor/amabnl/amadeus-ws-client/src/Amadeus/Client.php(508): Amadeus\Client->callMessage('Fare_PricePNRWi...', Object(Amadeus\Client\RequestOptions\FarePricePnrWithBookingClassOptions), Array) 
    #3 /var/www/html/amadeus/apps/booking/manager.php(177): Amadeus\Client->farePricePnrWithBookingClass(Object(Amadeus\Client\RequestOptions\FarePricePnrWithBookingClassOptions)) 
    

    I have 14.1 version of this endpoint but I see lib is using version 12? Any ideas what is wrong? I tried to look in the code but did not find anything that can cause this issue.

    bug 
    opened by bimusiek 20
  • Not getting a session

    Not getting a session

    Hello, thank you for this very helpful library.

    I need help on farePricePnrWithBookingClass with this error : { code: '1383', text: 'PNR NOT PRESENT', level: null }

    I'm currently doing :

    • fareMasterPricerTravelBoardSearch (Stateless)
    • airSellFromRecommendation
    • pnrAddMultiElements (ACTION_END_TRANSACT_RETRIEVE)
    • farePricePnrWithBookingClass

    Also tried it on pnrRetrieve and I am having the same error. I am certain that I am on stateful when I'm sending this messages. I even checked it using isStateful() and it is returning true. Reading through posted issues here that has same problem with me makes me understand that when I'm on stateful I should have a session details but when I checked it using getSessionData() it will give me

    { sessionId: null, sequenceNumber: null, securityToken: null }

    opened by Lourad 19
  • Ticket_IgnoreRefund : DOMDocument::loadXML() Empty string supplied as input

    Ticket_IgnoreRefund : DOMDocument::loadXML() Empty string supplied as input

    Im not able to ignore the refund request that already initialized. error response:

    **DOMDocument::loadXML(): Empty string supplied as input**

    `function __construct($session_header) { 
    	$this->ClientHelper = new ClientHelper;
    	$this->client 	  	= $this->ClientHelper->client(TRUE);
    	$this->client->setSessionData($session_header);
    }
    
    function ignoreRefund($ticketNumbers) {
    	$response                     = $this->client->ticketIgnoreRefund(new TicketIgnoreRefundOptions([]));
    	$response->session_header = $this->client->getSessionData();
    	return $response;
    }`
    

    I followed the Ticket_IgnoreRefund from the samples. Always the function stops at the exception.

    Kindly help .

    Thank you.

    opened by jeybin 4
  • Air_MultiAvailability excluded connections question

    Air_MultiAvailability excluded connections question

    I'm try to do an Air_MultiAvailability call with connection inclusions/exclusions. In the documentation it suggest that 'includedConnections' => ['PAR'], will add xml to the call to set this option. I expected it would do something like

    <qualifiedConnectionOption>
    	<connectionOption>
    		<firstConnection>
    			<location>PAR</location>
    		</firstConnection>
    	</connectionOption>
    </qualifiedConnectionOption>
    

    But it doesn't appear in the ->getLastRequest() nor does it seem to send that command in the request.

    Is this something missing from my WSDL file? Or a feature that was documented but not actually implemented? Or just me missing something obvious?

    What is the missing piece of the puzzle?

    Thanks in advance.

    message version support 
    opened by dnabeast 3
  • Hotel

    Hotel

    I have Implemented the following Hotel_MultiSingleAvailability

    Hotel_EnhancedPricing

    Hotel_Sell

    But I dont know how do I test it , I have tested it by creating a Class and then calling those functions can you please let me know whether I am going right or wrong in my coding. Please Check this link

    opened by rajdeeptayde 0
  • 11 | Session

    11 | Session

    Hello,

    I am new to the Amadeus world and I wanted to test in Laravel Environment. I worked through the how to and I always end up with 11|Session the company sent me an email that contain the office id and user id and password. The used header is v4 and I tested it in the test WSDL version. Any suggestions ?.

    opened by BasselPlanA 4
  • Allow filter by location without limit to airport or city

    Allow filter by location without limit to airport or city

    Hello!

    Currently I am develop a project that involve the MasterPricerTravelBoardSearh and MasterPricerCalendar messages and I'm limited at the moment of filter by location without specify city or airport.

    The consultant team of Amadeus said me that I need to filter the search without this limitation to get more results.

    Adding «all» as a third parameter for this option, we can filter by city and airport in the same time.

    $opt = new FareMasterPricerTbSearch([
            'nrOfRequestedResults' => 10,
            'nrOfRequestedPassengers' => 1,
            'passengers' => [
                new MPPassenger([
                    'type' => MPPassenger::TYPE_ADULT,
                    'count' => 1
                ]),
            ],
            'itinerary' => [
                new MPItinerary([
                    'departureLocation' => new MPLocation(['all' => 'MVD']),
                    'arrivalLocation' => new MPLocation(['all' => 'MIA']),
                    'date' => new MPDate([
                        'dateTime' => new \DateTime('2021-09-15T10:00:00+0000', new \DateTimeZone('UTC')),
                        'timeWindow' => 5,
                        'rangeMode' => MPDate::RANGEMODE_MINUS_PLUS,
                        'range' => 1
                    ])
                ]),
                new MPItinerary([
                    'departureLocation' => new MPLocation(['all' => 'MIA']),
                    'arrivalLocation' => new MPLocation(['all' => 'MVD']),
                    'date' => new MPDate([
                        'dateTime' => new \DateTime('2021-09-30T18:00:00+0000', new \DateTimeZone('UTC')),
                        'timeWindow' => 5,
                        'rangeMode' => MPDate::RANGEMODE_PLUS,
                        'range' => 1
                    ])
                ])
            ]
        ]);
    
    opened by joseayram 3
Releases(v1.13.0)
  • v1.13.0(Apr 5, 2021)

  • v1.12.0(Feb 18, 2021)

    1 new message: MiniRule_GetFromRec

    ES elements now supported in PNR_AddMultiElements

    Fixed a bug where session information was not loaded to the client if a SOAPFault occurred during the first call of the session.

    See the full changelog for details

    Source code(tar.gz)
    Source code(zip)
  • v1.11.0(Jul 9, 2020)

  • v1.10.0(May 27, 2020)

    • Bugfix for DocIssuance_IssueMiscellaneousDocuments
    • New messages: Service_BookPriceService, Fare_PriceUpsellWithoutPNR, Fare_GetFareFamilyDescription
    • Support for Anchored Segments in Fare_MasterPricerTravelBoardSearch

    See the full changelog for details

    Source code(tar.gz)
    Source code(zip)
  • v1.9.0(Jun 23, 2019)

  • v1.8.1(May 29, 2019)

  • v1.8.0(May 25, 2019)

    A long overdue release 1.8.0 is finally here!

    Support for 6 new messages: Ticket_RetrieveListOfTSM, Ticket_CreateTASF, PNR_Ignore, SalesReports_DisplayDailyOrSummarizedReport, SalesReports_DisplayNetRemitReport, Fare_MasterPricerExpertSearch - all of which were contributed!

    Added support for extra features in Queue_, Fare_, Air_ and other mesages.

    Added support for PHP 7.3 as well.

    As always, check the changelog for detailed changes!

    Source code(tar.gz)
    Source code(zip)
  • v1.7.1(Sep 23, 2018)

  • v1.7.0(Apr 30, 2018)

    This release includes several new messages:

    • Air_RebookAirSegment
    • DocRefund_IgnoreRefund
    • Ticket_ProcessETicket
    • Ticket_InitRefund
    • Ticket_IgnoreRefund
    • Ticket_ProcessRefund
    • PNR_Split

    Extra options are supported on the following messages: Air_SellFromRecommendation, Fare_MasterPricerTravelBoardSearch, PNR_AddMultiElements, DocIssuance_IssueTicket, DocIssuance_IssueCombined

    New feature: Support for the TransactionFlowLink SOAP header

    Fixes:

    • FOP_CreateFormOfPayment now works with message versions 14 and lower.
    • FOP_CreateFormOfPayment generated an incorrect message when using sequence number 0

    Check the Changelog for the full list of changes.

    Source code(tar.gz)
    Source code(zip)
  • v1.6.2(Apr 10, 2018)

  • v1.6.1(Mar 19, 2018)

  • v1.6.0(Feb 7, 2018)

    • 3 new messages implemented: MiniRule_GetFromETicket, Ticket_ProcessEDoc, Ticket_CancelDocument.
    • More options for retrieving PNR's using PNR_Retrieve
    • Support for "Layover per connection" option in Fare_MasterPricerTravelBoardSearch
    • 1 bug fixed in PNR_AddMultiElements

    Check out the detailled changelog for more information.

    Source code(tar.gz)
    Source code(zip)
  • v1.5.0(Nov 5, 2017)

    This release includes some improvements to all Pricing messages, PNR_AddMultiElements, PNR_Retrieve, and MasterPricer messages (mostly thanks to @bimusiek!)

    Support was added for Air_MultiAvailability version 16 and up.

    2 new messages were implemented:

    • FOP_ValidateFOP
    • Service_IntegratedCatalogue

    Check out the detailled changelog for more information.

    Source code(tar.gz)
    Source code(zip)
  • v1.4.0(May 15, 2017)

    This release includes a few improvements to PNR_AddMultiElements, an extra pricing option in Fare_PricePNRWithBookingClass (and other Pricing messages), and support for 4 new messages:

    • DocRefund_InitRefund
    • DocRefund_UpdateRefund
    • DocRefund_ProcessRefund
    • Fare_GetFareRules

    See the Changelog for a full overview of changes in this release.

    Source code(tar.gz)
    Source code(zip)
  • v1.3.1(May 5, 2017)

  • v1.3.0(Apr 5, 2017)

    The main feature for this release is the support of the Amadeus Ticket Changer (ATC) Shopper flow (#39). We now support the following messages for this flow:

    • Ticket_CheckEligibility
    • Ticket_ATCShopperMasterPricerTravelBoardSearch
    • Ticket_RepricePNRWithBookingClass
    • Ticket_ReissueConfirmedPricing
    • Ticket_CreateTSMFareElement

    Besides ATC Shopper, a few features were added to Fare_MasterPricerTravelBoardSearch and PNR_AddMultiElements. And a few bugs were fixed.

    For an overview of all changes, check the Changelog.

    Source code(tar.gz)
    Source code(zip)
  • v1.2.2(Mar 8, 2017)

    Fixed a bug that occurred when using Soap Header 4 WSAP's that contain OTA messages.

    In some instances, the authentication headers were not set correctly due to a faulty PHP Classmap -> XSD element translation.

    For more info, see the changelog

    Source code(tar.gz)
    Source code(zip)
  • v1.2.1(Mar 6, 2017)

    Fixed an issue with calling the Security_Authenticate message (Soap Header 2 WSAP's) with authentication parameters provided as shown in the documentation.

    The documentation was wrong. Fixed both scenario's in the code for backwards compatibility.

    See the Changelog

    Source code(tar.gz)
    Source code(zip)
  • v1.2.0(Feb 23, 2017)

    This release adds support for a number of new messages, as well as a number of improvements to previously supported messages.

    New messages supported:

    • Ticket_DeleteTSMP
    • Ticket_DisplayTSMP
    • Ticket_DisplayTSMFareElement
    • DocIssuance_IssueCombined
    • PNR_NameChange
    • FOP_CreateFormOfPayment
    • PointOfRef_Search

    Improvements to the following messages:

    • Fare_MasterPricerTravelBoardSearch
    • Fare_MasterPricerCalendar
    • Fare_CheckRules
    • Queue_List
    • PNR_AddMultiElements
    • PNR_Cancel

    You can check the full changelog for more details

    Source code(tar.gz)
    Source code(zip)
  • v1.1.1(Jan 26, 2017)

  • v1.1.0(Oct 19, 2016)

    New release with a number of improvements to already-supported messages, as well as a few new messages implemented.

    The library now supports all major pricing messages as well as all messages necessary for AIR seat selection and pricing.

    New options implemented for:

    • Fare_MasterPricerTravelBoardSearch
    • Fare_PricePnrWithBookingClass
    • PNR_AddMultiElements
    • DocIssuance_IssueTicket
    • Air_RetrieveSeatMap

    New messages supported:

    • PNR_TransferOwnership
    • Ticket_DisplayTST
    • Ticket_CreateTSMFromPricing
    • Service_IntegratedPricing
    • DocIssuance_IssueMiscellaneousDocuments
    • Fare_MasterPricerCalendar
    • Fare_InformativeBestPricingWithoutPNR
    • Fare_PricePNRWithLowerFares
    • Fare_PricePNRWithLowestFare
    • MiniRule_GetFromPricing
    • Offer_CreateOffer

    For a detailed overview, check the changelog.

    Examples of how to use the new messages/options can be found in the Samples docs

    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Sep 18, 2016)

    First version of the Amadeus Web Services Client for PHP is released.

    Supports a full AIR booking flow as well as a number of messages useful for PNR automation.

    Supports Soap Header 2 and Soap Header 4 WSAP's.

    Source code(tar.gz)
    Source code(zip)
Owner
Amadeus Benelux
Amadeus Benelux
A web interface for MySQL and MariaDB

phpMyAdmin A web interface for MySQL and MariaDB. https://www.phpmyadmin.net/ Code status Download You can get the newest release at https://www.phpmy

phpMyAdmin 6.3k Jan 2, 2023
Simple web interface to manage Redis databases.

phpRedisAdmin phpRedisAdmin is a simple web interface to manage Redis databases. It is released under the Creative Commons Attribution 3.0 license. Th

Erik Dubbelboer 3k Dec 31, 2022
phpRedisAdmin is a simple web interface to manage Redis databases.

phpRedisAdmin phpRedisAdmin is a simple web interface to manage Redis databases. It is released under the Creative Commons Attribution 3.0 license. Th

Erik Dubbelboer 2.8k Dec 1, 2021
Web interface to manage multiple instance of lxd

LXDMosaic ?? Share your feedback ?? More input required ?? Roadmap ??️ Docs ?? Get Started Prepare LXD Setup LXD and ensure LXD is available over the

null 438 Dec 27, 2022
Koel is a simple web-based personal audio streaming service written in Vue and Laravel

Koel (also stylized as koel, with a lowercase k) is a simple web-based personal audio streaming service written in Vue on the client side and Laravel on the server side. Targeting web developers, Koel embraces some of the more modern web technologies – CSS grid, audio, and drag-and-drop API to name a few – to do its job.

Koel 14.3k Jan 4, 2023
Laravel web app for signing up for community service opportunities

Community Service A Laravel web app for registering for service opportunities. Installation Make sure the following are installed on your system: Node

North Point Ministries 0 Mar 6, 2019
A simple wrapper for PHP Intervention Library to provide a more simple interface and convenient way to convert images to webp

This package is a simple wrapper for PHP Intervention Library to provide a more simple interface and convenient way to convert images to webp - next generation format - extension, and resize them to render only needed sizes.

eyad hamza 18 Jun 28, 2022
A unified front-end for different queuing backends. Includes a REST server, CLI interface and daemon runners.

PHP-Queue A unified front-end for different queuing backends. Includes a REST server, CLI interface and daemon runners. Why PHP-Queue? Implementing a

CoderKungfu 646 Dec 30, 2022
Switch the DokuWiki interface language according to the accept-language request header

Switch the DokuWiki interface language according to the accept-language request header

CosmoCode GmbH 1 Jan 4, 2022
Interface Network is an application about social media

Interface Network is an application about social media

Noval 3 Apr 20, 2022
Source code of Strm.pl, brand-new social service.

Strimoid Source code of Strm.pl, brand-new social service.

Strimoid 67 Oct 20, 2022
Hakkie is a social networking service on which users post and interact with messages

Hakkie Hakkie is a social networking service on which users post and interact with eachother with comments, likes, messages, blocks and silencing, ins

Felipe_Estevanatto 3 Sep 20, 2022
A dolibarr module which pushes invoices to AADE MyDATA service

DOLIBARR ERP & CRM MODULE FOR GREEK AADE MYDATA This Dolibarr module pushes invoices to AADE MyDATA Check also that the /custom directory is active by

null 15 Nov 22, 2022
Damn Vulnerable Web Application (DVWA) is a PHP/MySQL web application that is damn vulnerable.

Damn Vulnerable Web Application (DVWA) is a PHP/MySQL web application that is damn vulnerable. Its main goal is to be an aid for security professionals to test their skills and tools in a legal environment, help web developers better understand the processes of securing web applications and to aid both students & teachers to learn about web application security in a controlled class room environment.

Robin Wood 7k Jan 5, 2023
Laravel 9 Web App - Our client José Gustavo, passionate about soccer and technology, wants to have an application that simulates the soccer leagues in his neighborhood, called My League.

Laravel 9 Web App - Our client José Gustavo, passionate about soccer and technology, wants to have an application that simulates the soccer leagues in his neighborhood, called My League.

Álisson Marques 2 May 3, 2022
TinyFileManager is web based file manager and it is a simple, fast and small file manager with a single file, multi-language ready web application

TinyFileManager is web based file manager and it is a simple, fast and small file manager with a single file, multi-language ready web application for storing, uploading, editing and managing files and folders online via web browser. The Application runs on PHP 5.5+, It allows the creation of multiple users and each user can have its own directory and a build-in support for managing text files with cloud9 IDE and it supports syntax highlighting for over 150+ languages and over 35+ themes.

Prasath Mani 3.5k Jan 7, 2023
Kyle is a web application built with Laravel for web developers and small companies to efficiently track and stay on top of yearly expenses related to services

Kyle Kyle is a web application built with Laravel for web developers and small companies to efficiently track and stay on top of yearly expenses relat

Laravelista 36 Jul 15, 2022
Unified sample web app. The easy way to learn web frameworks.

Notejam The easy way to learn web frameworks Do you know framework X and want to try framework Y? The easy way to start with a new framework is to com

Sergey Komar 1.1k Dec 21, 2022
:panda_face: Jitamin is a free software written in PHP, intended to handle the project management over the web. QQ群: 656868

Jitamin Jitamin (pronounced /ˈdʒɪtəmɪn/) is a free software written in PHP, intended to handle the project management over the web. Jitamin is inspire

jitamin 916 Dec 14, 2022