API Fault Codes

 

The following faults codes have been defined as the standard for all respax APIs. The majority are generic enough that they can cover faults from all servers. When a specific fault code is required it will be defined in a block of codes for that particular server. 


 The fault code number may vary from one error to the next as the revision of all fault codes has not been distributed to all operators. As more operators are upgraded to the latest version of the API the error codes should become more consistent. 


List of Faults 

1 - 99 Server and Connection

Faults caused by the server being unavailable or not having access to necessary resources such as the Respax database.  

1 - Server is unavailable.
The physical machine that handles the xmlrpc requests is running however the xmlrpc server has been taken offline. This is usually done for maintenance issues and most of the time will not persist for an extended period.  

2 - Server did not respond.
The connection layer handling the xmlrpc request reported an error that is preventing communication with the server.  

3 - Unable to decode server response.
The server response is not valid xml and cannot be decoded successfully.  

4 - Server function terminated unexpectedly.
The call reached the server however the server function terminated unexpectedly before it could complete.  

5 - Protocol not supported.
A required communication protocol is not supported by the server.  

6 - Database connection failed.
The API was unable to establish a connection to the database. This is a server side configuration error. Please contact the system administrator for assistance.  

7-99 - Undefined.  

 

100 - 199 User Authentication

 

In general these codes are used for any issues that prevent the user from logging in or performing a specific task. This can include password and permission errors as well as configuration issues with the organisations associated with the user.  

100 - Invalid logged in status.
 For most functions this means the user is not logged in. For the login functions, the situation is reversed and the user must not be logged in.  

101 - Invalid authentication details.
The details provided for authenticating the user are invalid. The user may exist but expressions of ownership over the user records may prevent it from being visible.  

102 - User is not enabled.
The user was found and the authentication details are correct but the user has been disabled.  

103 - User does not have permission to login.
The user is enabled but does not have the permission to login over xmlrpc.  

104 - Invalid user organisation.
An organisation associated to the user could not be found.  

105 - User organisation is not enabled.
An organisation associated with the user was found but has been disabled.  

106-109 - Undefined.  

110 - Unknown or unsupported credit status.
The credit status of the agent organisation associated with the user either does not exist or is not supported by the API.  

111 - Invalid payment option.
The credit status of the agent organisation associated with the user does not allow the user to process the requested payment option.  

112 - Stopped agent organisation.
The action being attempted cannot complete as the agent organisation associated with the user has the credit status stop. Stopped agents cannot add new bookings or modify existing bookings in a way that changes the total value of the booking.  

113-196 - Undefined.  

197 - General user organisation configuration error.
One or more of the organisations associated with the user is not configured correctly for the API.  

198 - General user permission error.
The user does not have permission to call the requested method.  

199 - General user configuration error.
The user is not configured correctly for the API. As an example, the respax-external API requires the user to be configured as an agent.  

 

200 - 299 General Data

Generic fault codes that can be used regardless of the type of data.  

200 - Insufficient criteria provided.
One or more mandatory criteria were not specified.  

201 - No records found.
No records could be found matching the criteria specified.  

202 - Records unavailable due to ownership restrictions.
The current user cannot view the records due to ownership restrictions.  

203 - Duplicate primary key.
An attempt was made to insert a record with a primary key that is already in use.  

204 - Unable to identify specific record.
The criteria provided returned multiple records for a single record operation.  

205 - Record is disabled.
A record was found however it is flagged as disabled and so is not accessible.  

206 - Record's owner is disabled.
A record was found however it's owner organisation is flagged as disabled and so is not accessible.  

207 - Verifiction does not match required.
A verification field does not hold the same value as its corresponding required field. (eg. password and retype password)  

208 - Value exceeds acceptable range.
The value of the field does not fall within the range or size capable of being processed.  

209 - Binary data exceeds maximum size.
The size of binary file exceeds the maximum size limit for the field.  

210 - Dependent values are not related.
The values for two or more fields which are linked by a foreign key are not related. (eg. Providing a tour code and a basis id where the basis belongs to a different tour.)  

211-297 - Undefined.  

298 - General credit card authentication failure.
Used for faults from the authentication server that are currently unhandled or do not have a specific fault code. The authentication response has been provided as the fault string.  

299 - Action not supported.
Although the method may have been called correctly, the API does not support manipulating the data specified.  

 

300 - 399 Reservations

Faults returned when attempting to create or update a reservation.  

300 - Insufficient availability for specified trip.
There are not enough seats on the trip for the specified number of passengers.  

301 - Reservation validation failed.
Check the error string for specific issues.  

302 - Reservation is cancelled.
The reservation is cancelled thus updating or cancelling is not permitted.  

303 - Reservation is archived.
The reservation is archived thus updating or cancelling is not permitted.  

304-319 - Undefined  

320 - Cutoff prevents adding new reservations.
A cutoff exists at a certain time before departure. Once this time has passed it is no longer possible to add new reservations for that date.  

321 - Cutoff prevents editing existing reservations.
A cutoff exists at a certain time before departure. Once this time has passed it is no longer possible to modify reservations for that date. It is also not possible to modify reservations after they have travelled.  

322 - Cutoff prevents cancelling existing reservations.
A cutoff exists at a certain time before departure. Once this time has passed it is no longer possible to cancel reservations for that date. It is also not possible to cancel reservations after they have travelled.  

323 - Policy prevents adding new reservations.
The policy governing new reservations prevents reservations for the date specified.  

324 - Policy prevents editing existing reservations.
The policy governing the reservation specified prevents editing some or all fields.  

325 - Policy prevents cancelling existing reservations.
The policy governing the reservation specified prevents cancelling the reservation.  

326 - Payment prevents editing existing reservations.
Certain payment types can only be modified by the Respax operator. Any reservation with these payment types cannot be edited by this API.  

327 - Payment prevents cancelling existing reservations.
Certain payment types can only be modified by the Respax operator. Any reservation with these payment types cannot be cancelled by this API.  

328-329 - Undefined  

330 - Payments are not balanced.
The total value of all payments does not equal the total value of the reservation.  

331 - Payment currency error.
The base currency of one or more payments does not match the reservation currency.  

332-399 - Undefined  

 

400 - 499 Tour Content

 

Faults related to tour configurations and content.  

400 - Tour is not enabled for this interface.
Control flags on the tour prevent it from being booked through this interface.  

401 - Unable to calculate price with the criteria provided.
The host has not configured prices for this set of criteria. This criteria cannot be booked.
 

This fault code is new and may not be returned by all hosts.  

402 - Unable to calculate availability with the criteria provided.
The host has not configured availability for this set of criteria. This criteria cannot be booked.

This fault code is new and may not be returned by all hosts.  

403 - Tour has no active departure times.

Prices and availability cannot be calculated for the tour. The tour cannot be booked.  

404-449 - Undefined  

450 - Invalid category root node.
The starting point for the tour categories is invalid or undefined.  

451-499 - Undefined  

500 - 599 Hop-On Hop-Off Itinerary

 

Fault codes related to manipulating hop-on hop-off itineraries.  

500 - Failed to initialise itinerary.
An issue with the itinerary specified resulted in the initialisation process failing.  

501 - Itinerary has not been initialised.
Loading up a hop-on hop-off itinerary requires multiple hits to the database. As a result any API that manipulates the itineraries will likely keep some of the itinerary in session. If subsequent function calls require this information and it cannot be found in session, a fault with this code should be returned.  

502 - Itinerary contains route errors.
If the operator has changed the route without updating existing itineraries route errors will occur. These itineraries must be fixed by the operator before any changes can be made.  

503 - Sector out of sequence.
One or more sectors within a leg are geographically out of sequence.  

504 - Leg out of sequence.
One or more legs within an itinerary are chronologically out of sequence.  

505 - Sector already booked.
A reservation that is not cancelled already exists for one of the sectors specified.  

506-599 - Undefined.  

 

600 - 699 Gateway

Fault codes related to gateway interfaces for accessing multiple operators. (eg. RON)  

600 - Remote server unavailable.
Connection with the gateway was successful however the operator server is currently unavailable.  

601 - Invalid automated authentication details.
Authentication with the gateway was successful however the registered details for automatically authenticating the user with the operator are invalid. The user may exist but expressions of ownership over the user records may prevent it from being visible.  

602 - Mapping already processed.
The login mapping request has already been processed.  

603-697 - Undefined  

698 - Connection layer error.
The connection layer handling the communication between the gateway and the operator reported an error.  

699 - Unhandled or unassigned fault.
Used for faults from the gateway that are currently unhandled or do not have a specific fault code.   

 

700 - 799 Communication

Fault codes related to attempts by the API to communicate externally on behalf of the caller. (eg. failed emails)  

700 - Mail server error.
Data passed validation but the email server reported that the message failed to be sent.  

701 - Invalid email address.
An attempt was made to send an email to an invalid address.  

 

Reserved by the XML-RPC Specification for Fault Code Interoperability

See: http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php  

-32700 - parse error. not well formed  

-32701 - parse error. unsupported encoding  

-32702 - parse error. invalid character for encoding  

-32600 - server error. invalid xml-rpc. not conforming to spec.  

-32601 - server error. requested method not found  

-32602 - server error. invalid method parameters  

-32603 - server error. internal xml-rpc error  

-32500 - application error  

-32400 - system error  

-32300 - transport error  

In addition, the range -32099 to -32000, inclusive is reserved for implementation defined server errors. Server errors which do not cleanly map to a specific error defined by this spec should be assigned to a number in this range. This leaves the remainder of the space available for application defined errors.