Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Create a new company profile

Parameters
NameDescriptionValidation
returnAddSectionsList of additional profile sections which should be included in the response, even if not modified by the current operationOptional parameter (GET)
Code Block
languagebash
curl -v -X POST \
    -H "Authorization: Bearer <token>" \
    -H "Content-Type: application/json" \
    --data '{
    "externalNr": "1337",
    "name": "Umbrella Organisation U+O AG",
    "shortname": "UMBRELLA",
    "data": {
        "contact": {
            "street": "Binzstrasse 33",
            "zipCode": "8620",
            "place": "Wetzikon",
            "countryCode": "CH"
        },
        "genericFieldValues": [
            {
                "field": {
                    "uuid": "180d6569-28d8-43e1-9599-ba520e6d1fec"
                 },
			     "value": "1230A"
            }
        ],
        "agency": {
            "uuid": "52b166c5-4990-49bb-b1f1-d3aa38169175"
        }
    }
}' https://hurricane.umbrellanet.ch/uf-test/api/v1/profiles/company

...

 

Scopeapi.profilesondemand.write
Endpointapi/v1/profiles/company/<uuid>
Request methodPATCH

Updates (part of) the details of a single company profile.

Parameters
NameDescriptionValidation
<uuid>The UUID of the profile to updateRequired parameter
returnAddSectionsList of additional profile sections which should be included in the response, even if not modified by the current operationOptional parameter (GET)
Code Block
curl -v -X PATCH \
    -H "Authorization: Bearer <token>" \
    -H "Content-Type: application/json" \
    --data '{
    "externalNr": "0815",
    "name": "ACME Incorporated",
    "shortname": "ACME-INC",
    "data": {
        "memberships": {
            "airline": [{
                "alliance": "LH",
                "memberNumber": "DEMODEMO123",
                "type": "SPECIAL_KEYWORD"
            }]
        }
    }
}' https://hurricane.umbrellanet.ch/uf-test/api/v1/profiles/company/b9321d7e-9d72-4e80-ac49-d3a
Implementation notes

Depending on the authorization level of the caller, it may not be possible to edit certain properties. Changes to unmodifiable properties will be silently ignored if sent.

Callers should include only the properties they wish to edit in the PATCH request. Due to underlying synchronization logic to third party systems, it is required to perform all profile modifications within one single PATCH call (I.e. do not first edit the shortname, then add a membership code as two separate API calls).

The following logic is applied when editing collections, such as memberships to allow for modification of single elements within the collection without having separate API calls for that purpose:

  • If an “uuid” is supplied, the corresponding collection element is being modified

    • If there is no matching element with the given UUID, the update is ignored

  • In order to remove a collection item, it’s UUID is supplied, along with a property “_operation”, which is set to “remove”

In order to remove generic values from a profile, please include the field uuid or name but set the field content to empty.

Delete company profile

Scopeapi.profilesondemand.write
Endpointapi/v1/profiles/company/<uuid>
Request methodDELETE

Delete a single company profile (along with all associated traveler profiles) from Faces as well as all downline systems.

Parameters
NameDescriptionValidation
<uuid>The UUID of the profile to deleteRequired parameter
Code Block
curl -v -X DELETE \
    -H "Authorization: Bearer <token>" \
    https://hurricane.umbrellanet.ch/uf-test/api/v1/profiles/company/b9321d7e-9d72-4e80-ac49-d3aa38169175
Example response

HTTP 204 “No Content” with empty body

Search traveler profile

Scopeapi.profilesondemand.read
Endpointapi/v1/profiles/travellers
Request methodGET
Allows searching through a paged list of traveler profiles
Parameters
NameDescriptionValidation
qFreetext query for finding matching profilesRequired parameter
pageCurrent page within the result set, starts at 0Optional, number >= 0
pageSizeMaximum number of results per page. Default 10Optional, number > 0 and <= 100
cNarrow down the search for travelers attached to a specific company profileOptional, company UUID
scopeSearch scope

Optional, may be one of:

  • DEFAULT (Applies default search options as is within the Faces UI)

  • EMAIL (To look for profiles with matching E-Mail only - must be an exact match)

  • USERNAME (To look for profiles with matching Username only - must be an exact match)

  • GENERIC_FIELD (To look in a specific field from the agencies generic setup)

  • RECORD_LOCATOR (To look for profiles with matching record locator only)

  • PAPER (to look for profiles with a matching paper, e.g. a passport by number)

  • PHONE_NUMBER (To look for profiles based on a full phone number; must be provided in international format, e.g. +41449335390)
    Note: Please make sure to properly encode the "+" within the query string (as %2B) and do not include any formatting in the number.
    Faces will silently fail and return zero results if the phone number is supplied in an invalid format

pSearch scope parameter

Required if scope=GENERIC_FIELD: Name of the generic field to search in

Optional for scope=RECORD_LOCATOR: System type or Label (e.g. “CSX”, “GALILEO_WS”, “My HR-System”)

Optional for scope=PAPER: Type of paper to search for, PASSPORT, ID_CARD or VISA

Prohibited otherwise

includeDetailsSpecify whether the search response should include detailed profile data

Boolean value: true or false

Optional, default: false

detailSections

Specify additional profile areas to be returned if includeDetails is set to true.

Only explicitly specified sections will be included.

Only the following sections are currently supported:

  • COMPANY_INFO

  • GENERAL_DATA

  • PREFERENCES

  • ROLES

  • HISTORY

Code Block
languagebash
titleExample request
curl -v -H "Authorization: Bearer <token>" \
    "https://hurricane.umbrellanet.ch/uf-test/api/v1/profiles/travellers?q=bob&page=0&pageSize=10"
Code Block
languagejs
titleExample response
{
	"moreResults": false,
	"results": [{
		"uuid": "065fe9e0-47b7-4d12-b3de-d3aa38169175",
		"fullName": "Herr Bob Builder"
	}]
}

Anchor
GetTravelerProfile
GetTravelerProfile
Get traveler profile

Scopeapi.profilesondemand.read
Endpointapi/v1/profiles/traveller/<uuid>
Request methodGET
Retrieves the details of a single traveler profile.

...

Create a new traveler profile

Parameters
NameDescriptionValidation
returnAddSectionsList of additional profile sections which should be included in the response, even if not modified by the current operationOptional parameter (GET)
Code Block
languagebash
titleExample request
curl -v -X POST \
    -H "Authorization: Bearer <token>" \
    -H "Content-Type: application/json" \
    --data '{
    "username": "bob.builder",
    "firstname": "Bob",
    "middlename": "",
    "name": "Builder",
    "data": {
		"contacts": {
	        "emergencyContact": {
    	        "firstname": "Dizzy",
	            "phone": "+414412355889",
    	        "email": "dizzy@umbrella.ch",
        	    "lastname": "Mixer"
			}
        },
        "generalData": {
            "birthdate": "03.05.1973",
            "gender": "MR",
            "mobilePhone": "",
            "nationality": "CH",
            "language": "de_CH",
            "privatePhone": "",
            "businessPhone": "",
            "title": "",
            "email": "bob.builder@umbrella.ch"
        },
        "company": {
            "uuid": "52f2b2c0-4990-49bb-b1f1-d3aa38169175"
        },
        "papers": {
            "visas": [{
                    "country": "US",
                    "number": "8123789",
                    "entryType": "MULTIPLE",
                    "expiration": "01.03.2020",
                    "issueDate": "01.09.2019"
                },
                {
                    "country": "AE",
                    "number": "XXEE1123",
                    "entryType": "",
                    "expiration": "31.10.2020",
                    "issueDate": "09.03.2020"
                }
            ],
            "idCards": [{
                "country": "CH",
                "number": "123456",
                "expiration": "31.12.2030",
                "issueDate": "01.01.2020"
            }],
            "passports": [{
                    "country": "CH",
                    "number": "X12345",
                    "issueCountry": "CH",
                    "expiration": "31.12.2029",
                    "issueDate": "01.01.2019",
                    "issuePlace": "Zurich",
                    "primary": true
                },
                {
                    "country": "CH",
                    "number": "X999999",
                    "issueCountry": "CH",
                    "expiration": "31.12.2029",
                    "issueDate": "01.01.2019",
                    "issuePlace": "Zurich",
                    "primary": false
                }
            ]
        },
        "genericFieldValues": [
            {
                "field": {
                    "uuid": "afee4339-3c12-412a-9504-fb475bed71ab",
                    "name": "EmailPersonal"
                },
                "value": "bob@hasnoemail.com"
            },
            {
                "field": {
                    "uuid": "5e4f3887-5a46-4625-9658-99e579f6c41b",
                    "name": "AARPRate"
                },
                "value": "false"
            },
            {
                "field": {
                    "uuid": "5294be6b-b4d6-4890-8b1f-40e16ab37e25",
                    "name": "PreferWheelchairAccess"
                },
                "value": "false"
            },
            {
                "field": {
                    "uuid": "da0de48e-70c8-4ddb-b334-f2de7bdb2109",
                    "name": "MilitaryRate"
                },
                "value": "false"
            },
            {
                "field": {
                    "uuid": "4577bf5f-d3b3-4f2b-9b4e-5eff858dff77",
                    "name": "SectionPositionCode"
                },
                "value": "Bulkhead"
            },
            {
                "field": {
                    "uuid": "173704e3-7d5c-492e-b206-3d4e2d50e45a",
                    "name": "RuleClass"
                },
                "value": "Default Travel Class"
            }
        ],
        "memberships": {
            "flight": [{
                    "alliance": "EI",
                    "memberNumber": "1199223123"
                },
                {
                    "alliance": "LH",
                    "memberNumber": "999999912317"
                }
            ],
            "rentalCar": [{
                "alliance": "EP",
                "memberNumber": "E111221"
            }],
            "hotel": [{
                    "alliance": "AL",
                    "memberNumber": "LL18675"
                },
                {
                    "alliance": "RT",
                    "memberNumber": "A123F"
                }
            ]
        }
    }
}' https://hurricane.umbrellanet.ch/uf-test/api/v1/profiles/traveller

...

Updates (part of) the details of a single traveler profile.

Parameters
NameDescriptionValidation
<uuid>The UUID of the profile to updateRequired parameter
returnAddSectionsList of additional profile sections which should be included in the response, even if not modified by the current operationOptional parameter (GET)
Code Block
languagebash
titleExample request
curl -v -X PATCH \
    -H "Authorization: Bearer <token>" \
    -H "Content-Type: application/json" \
    --data '{
    "username": "bobby.builder",
    "firstname": "Bobby",
    "data": {
		"contacts": {
	        "emergencyContact": {
    	        "firstname": "",
        	    "phone": "",
            	"email": "",
	            "lastname": ""
			}
        },
        "generalData": {
            "birthdate": "04.05.1973",
            "email": "bobby.builder@umbrella.ch"
        },
        "papers": {
            "visas": [{
                    "country": "US",
                    "number": "8123789",
                    "entryType": "MULTIPLE",
                    "expiration": "01.03.2020",
                    "issueDate": "01.09.2019",
                    "uuid": "44f2ee67-eba5-4b29-9dfa-76e7eb97de39"
                },
                {
                    "_operation": "remove",
                    "uuid": "1eed6a49-f8e8-4441-b3ce-312f4dd1cd73"
                }
            ]
        },
        "genericFieldValues": [
            {
                "field": {
                    "uuid": "afee4339-3c12-412a-9504-fb475bed71ab",
                    "name": "EmailPersonal"
                },
                "value": "bobby@hasnoemail.com"
            }
        ]
    }
}' https://hurricane.umbrellanet.ch/uf-test/api/v1/profiles/traveller/ceb545fd-5000-4f44-93dd-47a272f6f25a

...

This API is an extension to the Profiles API and allows to send and receive plaintext credit card information from / to Umbrella Faces.

Note

This API is currently under development and not yet generally available

 

Info

Partners wishing to use these APIs will be required proof their adherance to the PCI DSS security standards and will receive a custom endpoint from our credit card tokenization partner Midoco, which will ensure PCI compliace and forward card data from / to Umbrella Faces.

PCI Compliance Concept

Umbrella Faces itself is not holding any plaintext credit card numbers. Only credit card tokens are stored and need to be forwarded via our partner Midoco, which handles the tokenization and detokenization from / to plaintext data.

...