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 claims of one member

GET /members/claims/{memberCode}

The Studio calls it instead of "The person data of one member" or "The status of one member" when the membership definition or a community filters on a claim, and after "Verify a member with their challenge code" when claims are needed, which that operation does not answer. 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, person data and claims. Where the Studio compares facts, the first name, last name and birth date are required, as for "The person data of one member".

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.
claimsobjectYesFacts about the member that the membership definition and communities can filter on. All are optional and any may be null, such as for a claim the register does not know; what null means is the claim's own (for leavingDate, still employed). A register may send claims of its own beyond these.
claims.entitledboolean or nullNoWhether the member is entitled to community benefits.
claims.discountLevelinteger or nullNoDiscount level, in percent. At least 0. At most 100.
claims.companyNamestring or nullNoThe company the member works for.
claims.employeeGroupstring or nullNoThe member's employee group.
claims.employmentLevelinteger or nullNoEmployment level, in percent of full time. At least 0. At most 100.
claims.leavingDatestring (date) or nullNoThe date the member left, YYYY-MM-DD; a date-time is accepted too. Null while employed.
claims.isAnnualSalaryAbove50kboolean or nullNoWhether the annual salary is above 50,000.
claims.numberOfKidsinteger or nullNoNumber of children. At least 0.
claims.childAllowanceboolean or nullNoWhether the member receives child allowance.
claims.soleEarnerboolean or nullNoWhether the member is a sole earner.
claims.mealVouchernumber or nullNoAmount of the meal voucher. At least 0.

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"
  },
  "claims": {
    "numberOfKids": 2,
    "employeeGroup": "Production",
    "isAnnualSalaryAbove50k": false,
    "discountLevel": 10,
    "employmentLevel": 100,
    "leavingDate": null,
    "companyName": "Pannoniqa AG"
  }
}

Example: A former employee who left

{
  "source": "SAP HR",
  "status": {
    "statusCode": "inactive"
  },
  "params": {
    "firstName": "Eva",
    "lastName": "Steiner",
    "memberCode": "100003",
    "birthDate": "1960-01-01",
    "zip": "7000",
    "city": "Eisenstadt",
    "street": "Musterweg 21",
    "country": "AT"
  },
  "claims": {
    "employeeGroup": "Administration",
    "employmentLevel": 50,
    "leavingDate": "2025-10-31",
    "companyName": "Pannoniqa AG"
  }
}

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