---
title: "DELETE /register/{clientId}"
canonical: "https://openfinanceguide.com/en/stet/1.6.3/endpoints/registration/registration-delete"
edition: "STET PSD2 API 1.6.3.1"
source: "https://openfinanceguide.com/docs/stet/1.6.3/pdf/technical-setup-registration-OAS2.yaml"
pdf: "https://openfinanceguide.com/docs/stet/1.6.3/pdf/api-dsp2-stet-v1.6.3.1-part-2-functional-model.pdf"
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."
---

# DELETE /register/{clientId}

Delete the actual registration for a given client_id

Operation: `registrationDelete`

[From RFC7592]
To deprovision itself on the authorization server, the client makes an HTTP DELETE request to the client configuration endpoint. This request is authenticated by the registration access token issued to the client.

## Parameters

- `clientId`, in path, `string`, required — REQUIRED. OAuth 2.0 client identifier string. It SHOULD NOT be currently valid for any other registered client, though an authorization server MAY issue the same client identifier to multiple instances of a registered client at its discretion.
- `Signature`, in header, `string`, required — http-signature of the request (cf. 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
  - either an URL aiming to provide the relevant Qualified Certificate.
  - or the kid parameter retrieved through the certificate registration during a previous OAUTH2 Technical Setup
- `X-Request-ID`, in header, `string`, required — Correlation header to be set in a request and retrieved in the relevant response
  Constraints: maxLength 70.

## Responses

### 204

No content. Deletion of the relevant registration

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.

### 400

Invalid status value

Body: [`ErrorModel_400`](#errormodel_400)

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.

### 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.

### 408

Request Timeout.

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

### 501

Not Implemented.
This code should be used when the entry point is implemented but cannot provide a result, given the context.
When the entry point is not implemented at all, HTTP400 will be returned.

Body: [`ErrorModel`](#errormodel)

Headers:

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

### 503

Service unavailable.

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 DELETE 'https://api.aspsp.example/v1/register/{clientId}' \
  -H 'Signature: keyId="...",algorithm="rsa-sha256",headers="(request-target) date digest",signature="..."' \
  -H 'X-Request-ID: a1b2c3d4-e5f6-4a3b-8c2d-1e2f3a4b5c6d'
```

## Schemas

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

### ErrorModel

Type: `object`

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.

### ErrorModel_400

Type: `object`

Generic error report structure

Fields:

- `error`, `string`, required — HTTP error text
  Values:
  - `invalid_redirect_uri`
  - `invalid_client_metadata`
  - `invalid_software_statement`
  - `unapproved_software_statement`
- `error_description`, `string` — HTTP textual reason phrase
  Constraints: maxLength 140.
