Join Programme API Documentation

v3

The Join Programme endpoint creates a new account within a loyalty programme, registers the member’s security credentials (if provided) and associates the member with the partner or partner programme.

Firstly, the member details and username are checked to ascertain if they are pre-existing within the Loyalty platform. Processing of the request will occur if the member and username do not exist. Successful processing of a request will create a loyalty account and associate the security profile with this new account, if it has been provided.

The member details along with membership number are returned to the consumer as a successful response, however if the request fails an appropriate error message is returned.

Business Context

The process relating to the consumption of the Join Programme endpoint is illustrated in the following swim-lanes diagram:

Join Programme Flow

  • A member wishing to join a partner’s programme accesses a form within the partner channel
  • The member details are entered into the form, including the security profile information
  • The member details are then passed to the Join Programme endpoint
  • The request is validated
  • The provided username is checked for uniqueness. If unique, the service continues to process the request, otherwise an appropriate error is returned
  • The Join Programme endpoint checks the member details and ensures that the member has not previously joined
  • Upon successful processing of the new member details, member details and membership number are returned to the partner as part of the successful response
  • If the request fails, an appropriate error message is returned in the response

Technical Context

The Join Programme endpoint is an independent service and does not rely on any other service having been called. To invoke the Join Programme endpoint the partner must have previously been issued with a valid API key. The following steps are performed by the Join Programme endpoint:

  • Validate input request
  • Standardise postal address in request
  • Persist member information in the system
  • Return member information as successful response

Important Technical Notes

This endpoint can receive upper or lower case ASCII or accented data but this will be converted to upper case ASCII on receipt by the Join Programme endpoint. The response message will contain only upper case ASCII characters.

This endpoint provides functionality to create a new account with the minimal dataset of First Name, Last Name and Email Address of a member.

This endpoint supports accented characters as input in First Name, Middle Initial, Last Name, Address Lines and Security Question Responses but converts them into equivalent uppercase ASCII character before validating the data and persisting data into the systems. Please refer to Appendix G for further details.

Telephone numbers are supplied as separate area code and number fields in the request but are returned as a single combined field in the response.

Pre-conditions

  • The partner must have a valid API key to access the Join Programme endpoint.

Post-conditions

Success outcome: Member information along with account details are returned.

Error outcome: Service error is returned.

Service Details

URI Parameters

Production Endpoint:

POST https://api.avios.com/{version}/memberships?api_key={api_key}

Example

https://api.avios.com/v3/memberships?api_key=abcdef
NameTypeDescriptionExample
version
Required
StringThe version of the endpoint which will be confirmed during the on-boarding process.
Format: Alpha numeric v
v3
api_key
Required
StringThe partner API Key provided during initial partner configuration within Loyalty Programme systems as part of the standard partner on-boarding process.
Format: Alpha-numeric only Min Length: 24 Max Length: 24
abcdefabcdefabcdefabcdef

Request Headers

NameTypeDescriptionExample
Accept
Optional
StringThe Accept request-header field is used to specify certain media types which are acceptable for the response. Only application/json is accepted currently.
Format: application/< content-type >
application/JSON
content-type
Required
StringThe Content-Type request-header field indicates the media type of the entity-body sent to the recipient as request payload. Only application/json is accepted currently.
Format: application/< content-type >
application/JSON
X-Forwarded-For
Optional
StringIdentifies the originating IP address of a consumer. Second and following IP addresses aren’t validated.
Format: Comma separated valid IP address
172.128.25.24, 172.128.25.24

Request Elements

The elements that make up the request message are detailed in the following table. These elements represent the data required to describe a new member within the loyalty programme. The following rules apply to request elements:

  • This endpoint can receive accented characters, upper or lower case ASCII name, address and security response data, however this will be converted to upper case ASCII.
  • The response message will contain only upper case ASCII characters.

Example Requests:

{
  "member": {
    "person": {
      "name": {
        "firstName": "MARK",
NameData typeDescription
campaign
Optional
Complex typeA campaign allows a partner to associate the joining of the programme to marketing activity, for example, to associate a bonus award.
campaign.identifier
Required
StringA value that represents the partner’s campaign. Case sensitive. This value must be agreed in advance with Avios and configured within the partner’s and Avios’ systems. It is possible to configure a single campaign for a partner used in all Join Programme API requests; this ensures any member account created is appropriately associated with the Partner in Avios systems. In the case where the provided campaign identifier is not valid for the requesting partner an Invalid Campaign Identifier error will be returned.
Format: Max length: 8 Alphabetic
member
Required
Complex typeA complex type that represents the member within Avios systems. This type contains a person and an optional security profile, which represent the member’s descriptive information and their security credentials and associated data elements.
member.person
Required
Complex typeRepresents the person details within Avios systems.
member.person.name
Required
Complex typeContains the name of the member, split into various fields that represent a name in a recognised format. Salutation, forename, middle initial (if present), family name.
member.person.name.title
Optional
StringTitle (Salutation) of the member. API will derive the Gender of the member based on gender specific titles (Mr, Mrs, Ms, Miss, Dr, Lady, Sir, and Lord), if any other value will be provided the Gender of the member will be set to NOT_KNOWN.
Format: Min Length: 1, Max length: 30, Alphabetic.
member.person.name.firstName
Required
StringFirst name (forename) of the Loyalty Programme member. Allowable special characters: apostrophe (‘), hyphen (-), spaces and accent characters. First Name must begin with a letter. Hyphen, apostrophe and space are not accepted as the first character for this field.Please refer to Appendix G for accented character conversion rules.
Format: Min Length: 1, Max Length: 25, Alphabetic plus some special characters.
member.person.name.middleInitial
Optional
StringMiddle initial of the Loyalty Programme member.If this value is not supplied a default will not be assigned.Please refer to Appendix G for accented character conversion rules.
Format: Max Length: 1, Alphabetic and accented characters.
member.person.name.familyName
Required
StringSurname (or last name) of the Loyalty Programme member.Allowable special characters: apostrophe (‘), hyphen (-), spaces and accent characters. Family Name must begin with a letter.Hyphen, space and apostrophe are not accepted as the first character for this field.Please refer to Appendix G for accented character conversion rules.
Format: Max Length: 40, Alphabetic plus some special characters.
member.person.dateOfBirth
Optional
DateThe member’s Date of Birth in ISO-8601 Calendar date format.Member must be at least 18 years old (adult) and future dates are not permitted.
Format: YYYY-MM-DD
Member.person.gender
Optional
StringGender identification of Loyalty Programme member. Case Sensitive and must be set to: MALE FEMALE NOT_SPECIFIED NOT_KNOWN API will derive the Gender of the member based on gender specific titles (Mr, Mrs, Ms, Miss, Dr, Lady, Sir, and Lord), if any other value will be provided the Gender of the member will be set to NOT_KNOWN.
Format: Enumeration.
member.person.registeredIdentifier
Conditional
Complex typeThis complex type represents the Identification document provided by the member. In some countries, for example South Africa, there is a requirement to collect recognised Identification when joining. This is typically the passport but could be another government issued Identification document. This element is mandatory in the request if the country of residence is South Africa.
Member.person.registeredIdentifier.token
Required
StringThe passport number or other Identification Card issue number for the Identification provided by the member as part of the Join process.
Format: Max length: 24. Alphanumeric
Member. person.registeredIdentifier.placeOfIssue
Required
Complex typePlace of issue of the identity document related to the token provided above.
Member.person.registeredIdentifier.placeOfIssue.identifier
Required
StringLocation identifier of the place where identification document has been issued. Only length of provided value is validated.
Format: Max length: 2, Min length: 2, ISO 3166-1, Two character alphabetic Country code.
member.person.registeredIdentifier.placeOfIssue.type
Required
StringThe type of location for place of issue. Case sensitive and must be “COUNTRY”.
Format: Enumeration.
member.person.registeredIdentifier.type
Required
StringType of identification document. Case sensitive and must be one of the following: PASSPORT NATIONAL_IDENTITY_CARD
Format: Enumeration.
member.person.locale
Optional
Complex typeContains information about preferred locale for member.
member.person.locale.languageCode
Required
StringPreferred language of the member for use within Avios systems and channels. Supported values are: EN ES CA FR IT
Format: Max length: 2, Min length: 2, ISO 639-1, Alphabetic 2 character language code.
member.person.postalAddresses
Optional
Complex typeA complex type representing the Member’s postal addresses.
Member.person.postalAddresses.preferredPostalAddress
Required
Complex typeA complex type representing the preferred postal address of the member.
Member.person.postalAddresses.preferredPostalAddress.type
Required
StringType of postal address. Case sensitive and must be one of the following: PERSONAL BUSINESS Preferred and other Postal Address types must have different values. If type PERSONAL will be provided in request address will be saved under preferred postal address details if type will be BUSINESS, address details will be saved under other Postal Address
Format: Enumeration.
member.person.postalAddresses.preferredPostalAddress.addressLine
Required
Array of stringAn array of string values, each of which represents a line of the member’s preferred postal address, excluding postcode and country.For countries where postcode is not mandatory, at least two lines of address should be provided For countries where postcode is mandatory, at least one line of address should be provided There should not be a comma (,) at the end of each address line The request should follow JSON format for providing multiple address linesThe field can also have accented characters, which will be converted to equivalent ASCII before any validations. Refer Appendix G for details.Please refer to the Country Address Rules document, which identifies the mandatory elements for each country.
Format: Max length: 30, Alphanumeric plus period (.), comma (,), dash (-), space ( ), ampersand (&), ‘ and accented characters.
member.person.postalAddresses.preferredPostalAddress.country
Required
StringThe country of the member’s preferred address.This field will determine the member’s Market within Avios systems, which will not have an impact on the Partner’s interactions with the customer. If a value is not supplied the member will be assumed to be within a country with code XX, in Europe.
Format: Max length: 2, Min length:2, ISO 3166-1, Alphabetic 2 character country code.
member.person.postalAddresses.preferredPostalAddress.postCode
Conditional
StringPostal code of member’s preferred address.Please refer to the Country Address Rules document, which identifies the mandatory elements for each country. Must not contain spaces.
Format: Max length: 8. Alphanumeric
Member.person.postalAddresses.preferredPostalAddress.validationSource
Optional
StringThis specifies whether address needs to be validated. Case sensitive and the value provided must be one of the following: EXPLICIT (No System validation required) SYSTEM (System Validation required) Providing a value of EXPLICIT will bypass address validation within Avios systems. Omitting this field in the request has the same effect as providing a value of SYSTEM
Format: Enumeration.
member.person.postalAddresses.otherPostalAddress
Optional
Complex typeOptional postal address in addition to the preferred postal address.
member.person.postalAddresses.otherPostalAddress.type
Required
StringType of postal address. Case sensitive and must be one of the following: PERSONAL BUSINESS Preferred and other Postal Address types must have different values. If type PERSONAL will be provided in request address details will be saved under preferred postal address details if type will be BUSINESS, address details will be saved under other Postal Address
Format: Enumeration.
member.person.postalAddresses.otherPostalAddress.addressLine
Required
Array of stringAn array of string values, each of which represents a line of the member’s preferred postal address, excluding postcode and country.For countries where postcode is not mandatory, at least two lines of address should be provided For countries where postcode is mandatory, at least one line of address should be provided There should not be a comma (,) at the end of each address line The request should follow JSON format for providing multiple address linesThe field can also have accented characters, which will be converted to equivalent ASCII before any validations. Refer Appendix G for details.Please refer to the Country Address Rules document, which identifies the mandatory elements for each country.
Format: Max length: 30. Alphanumeric plus period (.), comma (,),dash (-), space ( ), ampersand (&), ‘ and accented characters.
member.person.postalAddresses.otherPostalAddress.country
Required
StringThe country of the member’s preferred address.This field will determine the member’s Market within Avios systems, which will not have an impact on the Partner’s interactions with the customer. If a value is not supplied the member will be assumed to be within a country with code XX, in Europe.
Format: Max length: 2 Min length:2ISO 3166-1 Alphabetic 2 character country code.
member.person.postalAddresses.otherPostalAddress.postCode
Conditional
StringPostal code of member’s preferred address.Please refer to the Country Address Rules document, which identifies the mandatory elements for each country. Must not contain spaces.
Format: Max length: 8. Alphanumeric
member.person.postalAddresses.otherPostalAddress.validationSource
Optional
StringThis specifies whether address needs to be validated. Case sensitive and the value provided must be one of the following: EXPLICIT (No System validation required) SYSTEM (System Validation required) Providing a value of EXPLICIT will bypass address validation within Avios systems. Omitting this field in the request has the same effect as providing a value of SYSTEM
Format: Enumeration.
member.person.emailAddresses
Required
Complex typeA complex type representing the Member’s email addresses.
member.person.emailAddresses.preferredEmailAddress
Required
Complex typeA complex type representing the Member’s preferred email address.
member.person.emailAddresses.preferredEmailAddress.email
Required
StringEmail address of the member. There may be only a single at-sign present. Also, all special characters can be specified before the at-sign and just minus (-) and period (.) after at-sign. Period (.) can’t be before at(@).
Format: AlphanumericMax length: 50 with special characters period (.), underscore , plus (+), minus (-) and at-sign (@), percentage (%).
member.person.telecomAddresses
Optional
Complex typeA complex type that represents a collection of Member’s fully elaborated telephone numbers, which include country and area codes.
member.person.telecomAddresses.preferredTelecomAddress
Required
Complex typeA complex type that represents a Member’s preferred telephone number.
member.person.telecomAddresses.preferredTelecomAddress.countryCode
Optional
StringThe direct dialling code required to call the preferred telecom address from another country. Also referred to as the International Subscriber Dialling (ISD) code.This value will not be prefixed with leading zeros or a plus (+), r example UK telephone numbers will have a country code value of 44.
Format: Max length: 5 Numeric.
Member.person.telecomAddresses.preferredTelecomAddress.areaCode
Optional
StringThe area code element of the Member’s preferred telecom address.The total length of combination of the area code and the number cannot exceed 15 characters. Area code can be included in number element.
Format: Max length: 5 Numeric.
Member.person.telecomAddresses.preferredTelecomAddress.number
Required
StringThe body of the Member’s preferred phone number (Preferred Telecom Address). The total length of combination of the area code and the number cannot exceed 15 characters.
Format: Max length: 15. Numeric.
Member.person.telecomAddresses.preferredTelecomAddress.type
Required
StringTelecom addresses type. Case sensitive and must be one of the following: (BUSINESS, PERSONAL).

The following combinations of deviceType and type are accepted by the application:

deviceType = mobile, type = personal then number is saved as "Mobile Phone"

deviceType = phone, type = business then number is saved as "Work Phone"

deviceType = phone, type = personal then number is saved as "Home Phone".

Any other combination will result in error.
Format: Enumeration.
Member.person.telecomAddresses.preferredTelecomAddress.deviceType
Required
StringTelecom addresses device type. Case sensitive and must be one of the following: (PHONE, MOBILE). This field and Type, described above, are interrelated as per the Description for the Type field above.
Format: Enumeration.
member.person.telecomAddresses.otherTelecomAddress
Optional
Array of complex typeOther telecom address in addition to the preferred telecom address. A member could have more than one telephone number. Avios can store up to 3 telephone numbers for each member, including the preferred telecom address. Will not be visible in response even if provided in request.
member.person.telecomAddresses.otherTelecomAddress.countryCode
Optional
StringTelecom addresses country code. The total string length of the countryCode, areaCode and the telephone number cannot exceed 15 characters. Will not be visible in response even if provided in request.
Format: Numeric characters
member.person.telecomAddresses.otherTelecomAddress.areaCode
Optional
StringTelecom address area code. The total string length of the areaCode and the telephone number cannot exceed 15 characters. Will not be visible in response even if provided in request.
Format: Max length: 15 Numeric characters
member.person.telecomAddresses.otherTelecomAddress.number
Required
StringThe body of the Member’s preferred phone number (Preferred Telecom Address). The total length of combination of the area code and the number cannot exceed 15 characters. Will not be visible in response even if provided in request.
Format: Max length: 15 Numeric characters
member.person.telecomAddresses.otherTelecomAddress.type
Required
StringTelecom addresses type. Case sensitive and must be one of the following: BUSINESS PERSONAL The following combinations of deviceType and type are accepted by the application: If deviceType = mobile and type = Personal, the telephone number is saved as a mobile phone. If deviceType = phone and type = Business, the telephone number is saved as a work phone. If deviceType = phone and type = Personal, the telephone number is saved as a home phone.Any other combination will result in error. Will not be visible in response even if provided in request.
Format: Enumeration
member.person.telecomAddresses.otherTelecomAddress.deviceType
Required
StringTelecom address device type. Must be one of the following: PHONE MOBILE This field and Type, described above, are interrelated as per the Description for the Type field above. Will not be visible in response even if provided in request.
Format: Enumeration
member.person.marketingPreference
Optional
Array of complex typeMember’s preference for receiving marketing communications from Loyalty Programme in relation to products offering. There may be multiple instances of this element. There can only be two marketing preference objects with different campaign type channels being passed into the Array. If there are multiple marketing preference objects with the same campaign types an error will be returned.
member.person.marketingPreference.campaignType
Required
StringPromotion activity of a product conducted by the Partner. Must be one of the following: (TRAVEL_OFFERS, PARTNER). The following combinations are allowed: communicationChannel = POSTAL and campaignType = PARTNER for third party marketing communications by Post. communicationChannel = POSTAL and campaignType = TRAVEL_OFFERS for Avios marketing communications by Post.Any other combination will result in error.
Format: Enumeration
member.person.marketingPreference.communicationChannel
Required
StringChannel of communication preferred by the member to receive partner’s marketing information. Must be “POSTAL”.This field and Type, described above, are interrelated as per the Description for the campaignType field above.
Format: Enumeration
member.person.marketingPreference.selected
Required
StringIndicator if selection is Yes (Y) or No (N). Decides if marketing preference details will be visible in response.
Format: Enumeration
member.person.contactPreference
Optional
Array of complex typeMember’s preference of being contacted by Partner/Loyalty Programme. There may be multiple instances of this element. There can only be passed three contact preference objects with different communication channels. If there are passed few contact preference objects with same communication channel error will be returned.
member.person.contactPreference.communicationChannel
Required
StringChannel of communication preferred by the member to receive partner’s marketing information. The following combinations are allowed: communicationChannel = EMAIL for communications via email. communicationChannel = SMS for communications via SMS. communicationChannel = PHONE for communications via phone. Any other combination will result in error.
Format: Enumeration
member.person.contactPreference.selected
Required
StringIndicator if selection is Yes (Y) or No (N). Decides if contact preference details will be visible in response.
Format: Enumeration
Member.securityProfile
Optional
Complex typeA complex type representing the member’s security profile, which contains the security credentials and responses to the chosen security questions
member.securityProfile.credentials
Required
Complex typeA complex type that represents the member’s security credentials (username and password) to register against the member’s account within the Avios ecosystem
Member.securityProfile.credentials.identifier
Required
StringThe username field. Characters may be alphanumeric and may also include the following: period (.) at (@) hyphen (-) underscore
Format: Min length: 6, Max length: 50. Alphanumeric plus some other characters, refer to description for details.
Member.securityProfile.credentials.token
Required
StringA string containing the Password of the member, this value is hashed and the hash stored in Avios systems. The original Password is discarded.A valid Password must include at least 3 of below rules:At least one number appearing in the string At least one lowercase letter appearing in the string At least one upper case letter appearing in the string At least one special character appearing in the string
Format: MinLength: 8, MaxLength: 20, Alphanumeric plus special characters

Response Elements

The elements that make up the response message are detailed in the following table. The following rules apply to response elements:

  • Response elements will always be returned in upper case ASCII characters.
  • Element names are shown here using the upper camel case convention, for a JSON response the lower camel case convention is supported

Example response from the Member Registration endpoint with minimal data (only join)

{
  "membershipIdentifier": "3081471024602111",
  "membershipStatus": "ACTIVE",
  "member": {
    "person": {

Example response from the Join Programme endpoint with security profile

{
  "person": {
    "name": {
      "title": "MR",
      "firstName": "WERTYHAA",
NameData typeDescription
membershipIdentifier
Required
StringA string containing the membership number generated when the Member’s account was created during the processing of the request message. (Example: 3081471018350495) The membership number format is similar to a credit card number and a LUHN check will return a successful result. The first 6 digits of 308147 represent an Avios related membership number.
Format: Max length: 24. Numeric.
membershipStatus
Required
StringMembership Status. Possible value is “ACTIVE”
Format: Enumeration
member
Required
Complex typeA complex type that represents the member within Avios systems. This type contains a person.
member.person
Required
Complex typeA complex type that represents a member within Avios systems.
member.person.name
Required
Complex typeContains the name of the member, split into various fields that represent a name in a recognised format. Salutation, forename, middle initial (if present), family name.
member.person.name.title
Conditional
StringTitle (Salutation) of the member. API will derive the Gender of the member based on gender specific titles (Mr, Mrs, Ms, Miss, Dr, Lady, Sir, and Lord), if any other value will be provided the Gender of the member will be set to NOT*SPECIFIED.The value provided in the request will be returned in response.
Format: Max Length: 30 Alphabetic.
Member.person.name.firstName
Required
StringFirst name (forename) of the Loyalty Programme member.May contain the following special characters: apostrophe (‘), hyphen (-), spaces. First Name will always begin with a letter.Hyphen, apostrophe and space will never be present as the first character for this field.Please refer to Appendix G for accented character conversion rules.
Format: Max Length: 25. Alphabetic Plus quote (‘), space ( ) and hyphen (-).
Member.person.name.middleInitial
Conditional
StringMiddle initial of the Loyalty Programme member. Will be present if passed in the originating request message.
Format: Max Length: 1. Alphabetic.
Member.person.name.familyName
Required
StringSurname (or last name) of the Loyalty Programme member.May contain the following special characters: apostrophe (‘), hyphen (-), spaces.Family Name will always begin with a letter.Hyphen, space and apostrophe will never be present as the first character for this field.Please refer to Appendix G for accented character conversion rules.
Format: Max Length: 40.Alphabetic plus quote (‘) hyphen (-) and spaces.
member.person.dateOfBirth
Conditional
DateThe member’s Date of Birth in ISO-8601 Calendar date format. It will be present in response when same given in request. It won’t be present in response if passed date in request message will be earlier than 1800-01-02 or date of birth wasn’t passed in request message.
Format: YYYY-MM-DD ISO-8601.Calendar date format.
member.person.gender
Required
StringAn indicator of the gender of a member. API will derive the Gender of the member based on gender specific titles (Mr, Mrs, Ms, Miss, Dr, Lady, Sir, and Lord), if any other value will be provided the Gender of the member will be set to NOT_KNOWN. Will be one of the following:MALE FEMALE NOT_KNOWN
Format: Enumeration.
member.person.countryOfResidence
Conditional
StringThe country code denotes the country of residence of the member. Within Avios systems this will be used to associate the member to the Avios notion of a Market. This concept of Market has no impact on partner systems.Country of residence, if present, will match the country provided in the member’s Preferred Postal Address.If Country of residence is not present then member profile is associated to a default country – “XX”.
Format: Max length: 2Min length: 2ISO 3166-1 Alphabetic 2 character country code.
member.person.locale
Conditional
Complex typeA complex type that represents the chosen locale of the Member.It will present in response when same given in request.
member.person.locale.languageCode
Required
StringPreferred language of the member for use within Avios systems and channels. Will be one of the following values: EN ES CA FR IT
Format: ISO 639-1 Alphabetic 2 character language code
member.person.postalAddresses
Conditional
Complex typeA complex type that represents the Member’s postal addresses. The Join Programme API may validate the address supplied in the request message and depending on the outcome may provide an alternative format, which is retained with Avios systems and returned within the response message.
Member.person.postalAddresses.preferredPostalAddress
Conditional
Complex typeA complex type representing the preferred postal address of the member. Will not be visible if preferredPostalAddress type will contain value BUSINESS and there will be no otherPostalAddress details specified in request message. Will contain address details which will have type PERSONAL.
Member.person.postalAddresses.preferredPostalAddress.type
Required
StringA string representing the type of the Member’s preferred postal address. Will be one of the following: PERSONAL
Format: Enumeration.
member.person.postalAddresses.preferredPostalAddress.addressLine
Required
Array of stringAn array of string values, each of which represents a line of the member’s preferred postal address, excluding postcode and country. For countries where postcode is not mandatory, at least two lines of address should be provided For countries where postcode is mandatory, at least one line of address should be provided There should not be a comma (,) at the end of each address line The request should follow JSON format for providing multiple address linesPlease refer to the Country Address Rules document, which identifies the mandatory elements for each country.
Format: Max length: 30.Alphanumeric plus period (.) and comma (,).
member.person.postalAddresses.preferredPostalAddress.country
Required
StringPostal address country name. Example: UNITED KINGDOM
Format: Alphabetic with space.
member.person.postalAddresses.preferredPostalAddress.postcode
Conditional
StringThe Postal code of address for the Member’s preferred postal address, if the address contains one this value will be present in the response. The postcode is returned without an embedded space. Example: RH109XA
Format: Max length: 8. Alphanumeric
member.person.postalAddresses.otherPostalAddress
Conditional
Complex typeOther postal address details. Optional postal address in addition to the preferred postal address. Will be visible if preferred postal address or other postal address will contain type with value BUSINESS.
member.person.postalAddresses.otherPostalAddress.type
Required
StringType of postal address. Will be one of the following: BUSINESS
Format: Enumeration
member.person.postalAddresses.otherPostalAddress.addressLine
Required
Array of stringIf preferred and other postal address details were sent in request, address line will contain the same address line details as provided under preferredPostalAddress object. Response will contain 5 address lines and API will return null value for each address line which was not provided in request message. An array of string values, each of which represents a line of the member’s preferred postal address, excluding postcode and country. For countries where postcode is not mandatory, at least two lines of address should be provided For countries where postcode is mandatory, at least one line of address should be provided There should not be a comma (,) at the end of each address line The request should follow JSON format for providing multiple address lines* Please refer to the Country Address Rules document, which identifies the mandatory elements for each country.
Format: Max length: 30. Alphanumeric plus period (.) and comma (,).
member.person.postalAddresses.otherPostalAddress.country
Required
StringPostal address country name.Example: UNITED KINGDOM
Format: Alphabetic with space.
member.person.postalAddresses.otherPostalAddress.postcode
Conditional
StringThe Postal code of address for the Member’s preferred postal address, if the address contains one this value will be present in the response. Please refer to the Country Address Rules document, which identifies the mandatory elements for each country.The postcode is returned without an embedded space. Example: RH109XA
Format: Max length: 8 Alphanumeric
member.person.emailAddresses
Required
Complex typeA complex type representing the Member’s email addresses.
Member.person.emailAddresses.preferredEmailAddress
Required
Complex typeA complex type representing the Member’s preferred email address.
member.person.emailAddresses.preferredEmailAddress.email
Required
StringEmail address of the member. There may be only a single at-sign present. Also, all special characters can be visible before the at-sign and just minus (-) and period (.) after at-sign. Period (.) can’t be before at(@).
Format: Alphanumeric Max length: 50 with special characters period (.), underscore (
member.person.telecomAddresses
Conditional
Complex typeA complex type that represents a collection of Member’s fully elaborated telephone numbers, which include country and area codes. Area code and number will be combined in the response in a single field.
member.person.telecomAddresses.preferredTelecomAddress
Required
Complex typeA complex type that represents a Member’s preferred telephone number.
member.person.telecomAddresses.preferredTelecomAddress.countryCode
Required
StringThe direct dialling code required to call the preferred telecom address from another country. Also referred to as the International Subscriber Dialling (ISD) code. It will present in response when same given in request. This value will not be prefixed with leading zeros or a plus (+), for example UK telephone numbers will have a country code value of 44.
Format: NumericInternational dialling code
member.person.telecomAddresses.preferredTelecomAddress.number
Required
StringThe member’s preferred telephone number (telecom address). This will include the area code but not the country code. Example: 01924311750
Format: Max length: 15 Numeric.
member.person.telecomAddresses.preferredTelecomAddress.type
Required
StringTelecom addresses type. Will be one of the following: BUSINESS PERSONAL
Format: Enumeration
member.person.telecomAddresses.preferredTelecomAddress.deviceType
Required
StringTelecom addresses device type. Will be one of the following: PHONE MOBILE
Format: Enumeration
member.person.marketingPreference
Conditional
Array of complex typeMember’s preference for receiving Avios marketing communications. This element can occur multiple times. If marketing preference details weren’t passed in request message default communication channel with value TRAVEL_OFFERS along with communication channel with value POSTAL will be returned in response. This element can occur multiple times.Marketing Preference details will be seen if ‘selected’ element under marketingPreference object has been set to ‘Y’. If ‘selected’ element is set to ‘N’ marketing preference will not be returned. For internal Avios use only.
member.person.marketingPreference.campaignType
Required
StringPromotion activity of a product conducted by the Partner. Will be one of the following: TRAVEL_OFFERS PARTNER For internal Avios use only.
Format: Enumeration
member.person.marketingPreference.communicationChannel
Required
StringChannel of communication preferred by the member to receive marketing information. Will always be “POSTAL”.For internal Avios use only.
Format: Enumeration
member.person.contactPreference
Conditional
Array of complex typeMember’s preference of being contacted by Partner/Loyalty Programme. If contact preference details weren’t passed in request message default will not be returned in response. This element can occur multiple times.Contact Preference details will be returned if ‘selected’ element under contactPreference object has been set to ‘Y’. If ‘selected’ element is set to ‘N’ contact preference details will not be returned.For internal Avios use only.
member.person.contactPreference.communicationChannel
Required
StringChannel of communication preferred by the member to receive partner’s marketing information. Will be one of the following: EMAIL PHONE SMS For internal Avios use only.
Format: Enumeration.
member.person
Required
StringProfile status. Possible values: FULL PARTIAL
Format: Enumeration

Exception Message Elements

The exception message responses may be formatted in either upper or lower case.

Example of an error response

{
  "code": "LOYALTY_MEMBER_ALREADY_EXISTS",
  "businessMessage": "Loyalty member already exists",
  "developerMessage": "Loyalty member already exists",
  "developerLink": "https://developer.iagloyalty.com/docs",
NameData typeDescription
code
Required
StringError code. Example: REQUEST_INVALID
Format: Alphabetic plus under- score .
businessMessage
Conditional
StringA business level message describing the error which has occurred. Example: Request Invalid
Format: Alphabetic
developerMessage
Conditional
StringDeveloper message will be present when detailed technical description is required for the error, which has occurred, by the API.If no specific developer message is required, developer message will be as business message.
Format: Alphabetic
developerLink
Conditional
StringA link to supporting documentation for this API. Example: https://developer.iagloyalty.com/docs
Format: Alphabetic plus colon (:), forward slash (/), dash (-), underscore or period (.).
childError
Conditional
Array of complex typePresent for certain errors (e.g. validation) where one or more child error may have occurred.
childError.code
Required
StringThe error code for the child error (if returned) Example: DATA_INVALID
Format: Alphabetic plus under- score .
hildError.path
Conditional
StringIdentifies the element in the request which has caused the error to occur. This will not come in case of any of the authorisation header elements are invalid or missing
Format: Alphabetic plus period (.), forward slash (/), open bracket (
childError.businessMessage
Conditional
StringA business level message describing the error which has occurred, Example: Programme not supported
Format: Alphabetic
childError.developerMessage
Conditional
StringDeveloper message will be present when detailed technical description is required for the error, which has occurred, by the API.If no specific developer message is required, developer message will be as business message.
Format: Alphabetic
childError.developerLink
Conditional
StringA link to supporting documentation for this API. Example: https://developer.iagloyalty.com/docs
Format: Alphabetic plus colon (:), forward slash (/), dash (-), underscore or period (.).

Error Codes

The table below shows a full list of error codes. If an error is received, then no account will have been created.

Http Status CodeDescription
400
REQUEST_INVALID
DATA_INVALID
Invalid date of birth (or format).

Invalid country code for PhoneNumber.

Invalid CampaignIdentifier length (max length is 8 characters).

Invalid contact preference 'CommunicationChannel'.

Invalid gender value.

Invalid locale 'LanguageCode'.

Email address removed or has invalid special characters.

Invalid 'CampaignType' promotion activity.

Invalid format or missing FirstName (can't start with a number or contain special characters).

Invalid value or format for FamilyName.

Invalid FirstName length (max length is 25 characters).

Invalid format, value or length for MiddleInitial.

Blank Title.

Invalid Title format or value.

Invalid Title length (character max length is 30 characters).

Invalid Country code length in 'PreferredPostalAddress' (max length 2 characters).

Invalid value for 'PostCode' in 'PreferedPostalAddress'.

Invalid value for 'Type' in 'PreferedPostalAdress'.

'PreferredPostalAdress' and 'OtherPostalAddress' need to be of different types (e.g can't both be marked as PERSONAL).

Invalid value for 'Type' in 'PlaceOfIssue'.

Invalid 'RegisteredIdentifier' Token (max length is 24 characters).

Invalid value for 'Type' in 'RegisteredIdentifier'.

Blank 'RegisteredIdentifier'.

Invalid 'SecurityProfile' Token, minnimum length is 8 characters.

Invalid value for Response in 'SecurityProfile.SecurityChallenge' (min length is 1 character).

Invalid 'PartnerIdentifier' (max length is 20 characters).

Invalid 'ProgrammeIdentifier'.

Invalid Value of 'X-Forwarded-For'.

400
REQUEST_INVALID
HEADER_INVALID
Invalid content type for Header.
400
REQUEST_INVALID
LOYALTY_MEMBER_ALREADY_EXISTS
A customer with this username is already registered.
400
REQUEST_INVALID
METHOD_NOT_SUPPORTED
This method is not supported.
400
REQUEST_INVALID
PARTNER_INVALID
PartnerIdentifier or ProgrammeIdentifier are invalid or are not present in database.

Campaign valid and Partner valid value not present in database.

Campaign removed and Partner valid value not present in database.
400
REQUEST_INVALID
POSTAL_ADDRESS_INVALID
The postcode for the PreferredPostalAddress is invalid .
400
REQUEST_INVALID
PROFANITY_FIRST_NAME_INVALID
Invalid content for FirstName (the use of profane words is prohibited).
400
REQUEST_INVALID
PROFANITY_LAST_NAME_INVALID
Invalid content for LastName (the use of profane words is prohibited).
400
REQUEST_INVALID
PROGRAMME_NOT_SUPPORTED
Programme Not supported 'IBPL'.
400
REQUEST_INVALID
REGISTERED_IDENTIFIER_INVALID
Invalid token for RegisteredIdentifier .