---
title: "GET /end-user-identity"
canonical: "https://openfinanceguide.com/en/stet/1.6.3/endpoints/aisp/end-user-identity-get"
edition: "STET PSD2 API 1.6.3.1"
source: "https://openfinanceguide.com/docs/stet/1.6.3/pdf/api-dsp2-stet-v1.6.3.2-openapi.yaml"
pdf: "https://openfinanceguide.com/docs/stet/1.6.3/pdf/api-dsp2-stet-v1.6.3.1-part-2-functional-model.pdf"
section: "4.9"
pdf_pages: "50"
language: "en"
normative: "The normative text is the English PDF and OpenAPI file published by STET. This Markdown reproduces it for reading; where they differ, the PDF prevails."
license: "CC BY 3.0 FR (https://creativecommons.org/licenses/by/3.0/fr/), STET. Converted to Markdown by Open Finance Guide."
---

# GET /end-user-identity

Retrieval of the identity of the end-user (AISP)

Operation: `EndUserIdentityGet` · Tags: AISP · Scopes: `aisp` · Source: [§ 4.9 Retrieval of the identity of the end-user (AISP), PDF p. 50](https://openfinanceguide.com/docs/stet/1.6.3/pdf/api-dsp2-stet-v1.6.3.1-part-2-functional-model.pdf#page=50)

### Description
This call returns the identity of the PSU (end-user).
### Prerequisites
- The TPP was registered by the Registration Authority for the AISP role.
- The TPP and the PSU have a contract that was enrolled by the ASPSP
    - At this step, the ASPSP has delivered an OAUTH2 "Authorization Code" or "Resource Owner Password" access token to the TPP (cf. paragraph  3.4.2).
- The TPP and the ASPSP have successfully processed a mutual check and authentication
- The TPP has presented its OAUTH2 "Authorization Code" or "Resource Owner Password" access token which allows the ASPSP to identify the relevant PSU and retrieve the linked PSU context (cf. paragraph  3.4.2) if any.
- The ASPSP takes into account the access token that establishes the link between the PSU and the AISP.
### Business Flow
  The AISP asks for the identity of the PSU.
  The ASPSP answers with the identity, i.e. first and last names of the end-user.

## Parameters

- `Authorization`, in header, `string`, required — Access token to be passed as a header
- `PSU-IP-Address`, in header, `string` — IP address used by the PSU's terminal when connecting to the TPP
- `PSU-IP-Port`, in header, `string` — IP port used by the PSU's terminal when connecting to the TPP
- `PSU-HTTP-Method`, in header, `string` — Http method for the most relevant PSU's terminal request to the TTP
- `PSU-Date`, in header, `string` — Timestamp of the most relevant PSU's terminal request to the TTP
- `PSU-GEO-Location`, in header, `string` — Geographical location of the PSU as provided by the PSU mobile terminal if any to the TPP
- `PSU-User-Agent`, in header, `string` — "User-Agent" header field sent by the PSU terminal when connecting to the TPP
- `PSU-Referer`, in header, `string` — "Referer" header field sent by the PSU terminal when connecting to the TPP.
  Notice that an initial typo in RFC 1945 specifies that "referer" (incorrect spelling) is to be used. The correct spelling "referrer" can be used but might not be understood.
- `PSU-Accept`, in header, `string` — "Accept" header field sent by the PSU terminal when connecting to the TPP
- `PSU-Accept-Charset`, in header, `string` — "Accept-Charset" header field sent by the PSU terminal when connecting to the TPP
- `PSU-Accept-Encoding`, in header, `string` — "Accept-Encoding" header field sent by the PSU terminal when connecting to the TPP
- `PSU-Accept-Language`, in header, `string` — "Accept-Language" header field sent by the PSU terminal when connecting to the TPP
- `PSU-Device-ID`, in header, `string` — UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available.
  UUID identifies either a device or a device dependant application installation.
  In case of installation identification this ID need to be unaltered until removal from device.
- `Digest`, in header, `string` — Digest of the body
- `Signature`, in header, `string` — [http-signature of the request](https://datatracker.ietf.org/doc/draft-cavage-http-signatures/)
  The keyId must specify the way to get the relevant qualified certificate. It is requested that this identifier is an URL aiming to provide the relevant Qualified Certificate.
- `X-Request-ID`, in header, `string`, required — Correlation header to be set in a request and retrieved in the relevant response
  Constraints: maxLength 70.
- `X-JWS-Signature`, in header, `string` — [JSON WEB signature of the request](https://www.openbankingeurope.eu/media/2095/obe-json-web-signature-profile-for-open-banking.pdf)

## Responses

### 200

The ASPSP returns the identity of the PSU

Body: [`HalEndUserIdentity`](#halenduseridentity)

Headers:

- `X-Request-ID`, `string` — Correlation header to be set in a request and retrieved in the relevant response
- `Warning`, `string` — Warning header. This header can be used by the server to inform the client of a deprecated entry-point through the value "299" value and a descriptive message.

### 204

No content.

Headers:

- `X-Request-ID`, `string` — Correlation header to be set in a request and retrieved in the relevant response
- `Warning`, `string` — Warning header. This header can be used by the server to inform the client of a deprecated entry-point through the value "299" value and a descriptive message.

### 401

Unauthorized, authentication failure.

Body: [`ErrorModel`](#errormodel)

Headers:

- `X-Request-ID`, `string` — Correlation header to be set in a request and retrieved in the relevant response
- `Warning`, `string` — Warning header. This header can be used by the server to inform the client of a deprecated entry-point through the value "299" value and a descriptive message.

### 403

Forbidden, authentication successful but access to resource is not allowed.

Body: [`ErrorModel`](#errormodel)

Headers:

- `X-Request-ID`, `string` — Correlation header to be set in a request and retrieved in the relevant response
- `Warning`, `string` — Warning header. This header can be used by the server to inform the client of a deprecated entry-point through the value "299" value and a descriptive message.

### 404

Not found, no request available.

Body: [`ErrorModel`](#errormodel)

Headers:

- `X-Request-ID`, `string` — Correlation header to be set in a request and retrieved in the relevant response
- `Warning`, `string` — Warning header. This header can be used by the server to inform the client of a deprecated entry-point through the value "299" value and a descriptive message.

### 405

Method Not Allowed.

Body: [`ErrorModel`](#errormodel)

Headers:

- `X-Request-ID`, `string` — Correlation header to be set in a request and retrieved in the relevant response
- `Warning`, `string` — Warning header. This header can be used by the server to inform the client of a deprecated entry-point through the value "299" value and a descriptive message.

### 406

Not Acceptable.

Body: [`ErrorModel`](#errormodel)

Headers:

- `X-Request-ID`, `string` — Correlation header to be set in a request and retrieved in the relevant response
- `Warning`, `string` — Warning header. This header can be used by the server to inform the client of a deprecated entry-point through the value "299" value and a descriptive message.

### 429

Too many requests.

Body: [`ErrorModel`](#errormodel)

Headers:

- `X-Request-ID`, `string` — Correlation header to be set in a request and retrieved in the relevant response
- `Warning`, `string` — Warning header. This header can be used by the server to inform the client of a deprecated entry-point through the value "299" value and a descriptive message.

### 500

Internal server error.

Body: [`ErrorModel`](#errormodel)

Headers:

- `X-Request-ID`, `string` — Correlation header to be set in a request and retrieved in the relevant response

## Example

Built from the specification: every documented header and field.

```bash
curl -X GET 'https://api.aspsp.example/v1/end-user-identity' \
  -H 'Authorization: Bearer {access_token}' \
  -H 'PSU-IP-Address: 192.0.2.1' \
  -H 'PSU-IP-Port: 443' \
  -H 'PSU-HTTP-Method: GET' \
  -H 'PSU-Date: Tue, 03 Oct 2022 10:15:30 GMT' \
  -H 'PSU-GEO-Location: {PSU-GEO-Location}' \
  -H 'PSU-User-Agent: {PSU-User-Agent}' \
  -H 'PSU-Referer: {PSU-Referer}' \
  -H 'PSU-Accept: {PSU-Accept}' \
  -H 'PSU-Accept-Charset: {PSU-Accept-Charset}' \
  -H 'PSU-Accept-Encoding: {PSU-Accept-Encoding}' \
  -H 'PSU-Accept-Language: {PSU-Accept-Language}' \
  -H 'PSU-Device-ID: {PSU-Device-ID}' \
  -H 'Digest: SHA-256=X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE=' \
  -H 'Signature: keyId="...",algorithm="rsa-sha256",headers="(request-target) date digest",signature="..."' \
  -H 'X-Request-ID: a1b2c3d4-e5f6-4a3b-8c2d-1e2f3a4b5c6d' \
  -H 'X-JWS-Signature: {X-JWS-Signature}'
```

Response 200:

```json
{
  "identity": {
    "fullName": "Mme Cecile Dupond",
    "namePrefix": "MADM",
    "firstName": "Cecile",
    "lastName": "Dupond"
  },
  "_links": {
    "self": {
      "href": "v1/end-user-identity"
    },
    "accounts": {
      "href": "/v1/accounts"
    },
    "consents": {
      "href": "/v1/consents"
    },
    "trustedBeneficiaries": {
      "href": "/v1/trusted-beneficiaries"
    }
  }
}
```

## Schemas

Every schema this endpoint uses, each once; fields name the schema they hold.

### EndUserIdentityLinks

Type: `object` · Kind: Hal

links that can be used for further navigation after retrieving end-user identity
| Link | Description |
| ---- | ----------- |
| self | link to the end-user identity |
| accounts | link to the list of all available accounts |
| consents | link to the consents forwarding |
| trustedBeneficiaries | link to the list of trusted beneficiaries |

Fields:

- `self`, [`GenericLink`](#genericlink), required
- `accounts`, [`GenericLink`](#genericlink)
- `consents`, [`GenericLink`](#genericlink)
- `trustedBeneficiaries`, [`GenericLink`](#genericlink)

### ErrorDetail

Type: `object` · Kind: Technical

detailed error description

Fields:

- `location`, `string` — Location of the erroneous parameter when not in request body
  Values:
  - `header`
  - `query`
- `name`, `string` — Name of the erroneous parameter when not in request body
- `path`, `string` — JsonPath of the erroneous request body property
- `erroneousValue`, `string` — Erroneous parameter value
- `message`, `string` — Relevant message for the erroneous parameter
- `expectedPattern`, `string` — Expected pattern, if any, that the erroneous parameter does not match with
- `expectedValueRange`, `object` — Expected value range, if any, that the erroneous parameter does not match with
  - `minValue`, `integer`
  - `maxValue`, `integer`
- `expectedValueCount`, `object` — Expected value count, in the case of an array item, that the erroneous parameter does not match with
  - `minValue`, `integer`
  - `maxValue`, `integer`
- `expectedEnumeration`, array of `string` — Expected enumeration, if any, that the erroneous parameter do not match with

### ErrorModel

Type: `object` · Kind: Technical

Generic error report structure

Fields:

- `timestamp`, `string (date-time)` — current timestamp
- `status`, `integer (int32)`, required — HTTP error code
- `error`, `string` — HTTP error text
  Constraints: maxLength 140.
- `message`, `string`, required — HTTP textual reason phrase
  Constraints: maxLength 140.
- `path`, `string` — Relevant path that was used
  Constraints: maxLength 140.
- `details`, array of [`ErrorDetail`](#errordetail) — list of detailed errors that were encountered

### GenericLink

Type: `object` · Kind: Hal · Source: [§ 4.1.7, PDF p. 15](https://openfinanceguide.com/docs/stet/1.6.3/pdf/api-dsp2-stet-v1.6.3.1-part-2-functional-model.pdf#page=15)

hypertext reference

Fields:

- `href`, `string`, required — URI to be used. HREF stands for Hypertext REFerence.
  Constraints: maxLength 2000.
- `templated`, `boolean` — This field must be set with "true"  when [href] is an URI template, i.e. with parameters that will be set by the client afterwards. Parameter fields must be included by the API server according to RFC6570.
  Otherwise, this property must be absent or set to false
  default value: false

### HalEndUserIdentity

Type: `object` · Kind: Hal

HYPERMEDIA structure used for returning the identity of the PSU.
The [identity] property specifies the identity of the PSU which has granted access to the AISP on the accounts data
This information can be retrieved based on the PSU's authentication that occurred during the OAUTH2 access token initialisation.

Fields:

- `identity`, [`Identity`](#identity), required
- `_links`, [`EndUserIdentityLinks`](#enduseridentitylinks), required

### Identity

Type: `object` · Kind: Iso20022

HYPERMEDIA structure used for returning the identity of the PSU

Fields:

- `fullName`, `string`, required — Last name and first name
  Constraints: maxLength 140.
- `namePrefix`, [`NamePrefixCode`](#nameprefixcode)
- `firstName`, `string` — First name
  Constraints: maxLength 70.
- `lastName`, `string` — Last name
  Constraints: maxLength 70.

### NamePrefixCode

Type: `string` · Kind: ISO20022

Specifies the terms used to formally address a person.
This field accepts the following code values

Values:

- `DOCT` — Doctor
- `MADM` — Madam
- `MISS` — Miss
- `MIST` — Mister
