Documentation/Developers
Back
  • Getting started
    • Frontends and app types
    • Environments and endpoints
  • OAuth clients
    • Client ID and secret
    • Redirect URIs and start URL
    • Secret rotation
  • Login with appsolut
    • Authorization code flow
    • Tokens and claims
    • Frontend role
    • Sign-out
    • Revocation and issued tokens
    • Token endpoint errors
  • Frontend keys
    • Issue and store a key
    • Send a key
    • Rotate and revoke
  • Members API
    • Eligibility from a backend
    • The signed-in member
    • Results, rate limits and errors
    • Is an applicant an eligible member?
    • The signed-in frontend user's membership
  • appsolut register API
    • Implement the API
    • Connect and test
    • Verify a member with their challenge code
    • List every member
    • The status of several members
    • The status of one member
    • The person data of several members
    • The person data of one member
    • The claims of several members
    • The claims of one member
    • Health check

The person data of one member

GET /members/data/{memberCode}

The Studio calls it with the member code as the person typed it at onboarding without a challenge code and at every eligibility check, unless a filter needs claims (then it calls "The claims of one member"), and compares the first name, last name and birth date with what was entered. It also calls it with the stored member code for the member data a frontend reads (with a deadline of 1.5 seconds) and with the test member code in the connection test. Answer 404 for a member code the register does not hold.

Authentication

  • appsolut_m2m (sent in the header x-api-key): The "API key" entered in the register's connection in the Studio, sent with every call. The Studio keeps it encrypted and never shows it again. Answer 401 or 403 to a wrong key.

Parameters

NameInRequiredTypeDescription
memberCodepathYesstringThe member code, URL-encoded as one path segment. Example: 100001.
x-tenant-idheaderYesstringThe "Tenant ID" entered in the register's connection in the Studio, sent unchanged with every call. Your register can use it to tell apart the organisations it serves. Example: pannoniqa.
x-custom-scopeheaderYesstringThe "Scope" entered in the register's connection in the Studio, sent unchanged with every call. Your register can use it to choose the data set it answers from. Example: employees.

Responses

200

The member's status and person data. For the membership check, the first name, last name and birth date are required; without them the Studio treats the register as unavailable.

Content type: application/json

FieldTypeRequiredDescription
sourcestringYesThe name of your data source, such as "SAP HR".
statusobjectYes
status.statusCodestringYesThe member's status in the register. Filters in the membership definition and in communities can check it. Allowed values: active, inactive, pending.
paramsobjectYesThe person data the register holds. Every field is optional in the contract, but where the Studio compares facts it needs the first name, last name and birth date. The address is member data a frontend may show its signed-in member.
params.firstNamestringNoFirst name.
params.lastNamestringNoLast name.
params.memberCodestringNoThe member code as the register holds it.
params.birthDatestring (date)NoBirth date, YYYY-MM-DD.
params.zipstringNoPostal code.
params.citystringNoCity.
params.streetstringNoStreet and house number.
params.countrystringNoCountry code, such as AT.

Example: An active employee

{
  "source": "SAP HR",
  "status": {
    "statusCode": "active"
  },
  "params": {
    "firstName": "Anna",
    "lastName": "Berger",
    "memberCode": "100001",
    "birthDate": "1979-02-02",
    "zip": "7100",
    "city": "Neusiedl am See",
    "street": "Musterweg 3",
    "country": "AT"
  }
}

Example: A retired employee

{
  "source": "SAP HR",
  "status": {
    "statusCode": "inactive"
  },
  "params": {
    "firstName": "Johann",
    "lastName": "Novak",
    "memberCode": "100009",
    "birthDate": "1952-07-07",
    "zip": "7000",
    "city": "Eisenstadt",
    "street": "Beispielgasse 7",
    "country": "AT"
  }
}

400

The register could not process the request. The Studio treats it as the register being unavailable and does not read the body.

Content type: text/plain

Type: string

Example

Bad request

401

The API key is wrong. The Studio reports the credentials as rejected (it does the same for 403) and treats the register as unavailable.

Content type: text/plain

Type: string

Example

Unauthorized

404

The register holds no member with this member code. The Studio treats the person as not found in this register.

Content type: text/plain

Type: string

Example

Not found