What this API does:
These APIs currently supports Bacs, Balance Transfers, CHAPS and Faster Payments.
This specification defines the APIs for a TPP to submit a Software Statement Assertion to an ASPSP for the purpose of creating OAuth clients that are registered with ASPSP.
Endpoint configuration
Production: https://secureapi.prod.ob.virginmoney.com/vmpsd2-psd2prod/psd2-production/register
API calls
POST /register Register a client by way of a Software Statement AssertionEndpoint will be secured by way of Mutual Authentication over TLS
| Name | Description |
|---|---|
requestBody (body) | A request to register a Software Statement Assertion with an ASPSP |
Responses
| Code | Description | ||||||||||||||||||||||||||||||||
| 201 | Client registration { {
| ||||||||||||||||||||||||||||||||
| 400 | Request failed due to client error {
|
DELETE /register/{ClientId} Delete a client by way of Client ID| Name | Description |
|---|---|
ClientId * string (path) | The client ID |
Authorization * string (header) | An Authorisation Token as per https://tools.ietf.org/html/rfc6750 Link opens in a new window |
Responses
| Code | Description | ||||||
| 204 | Client deleted | ||||||
| 401 | Request failed due to unknown or invalid Client or invalid access token Headers:
| ||||||
| 403 | The client does not have permission to read, update or delete the Client | ||||||
| 405 | The client does not have permission to read, update or delete the Client |
Models
string Enum:
[ RS256, PS256, ES256 ]
| client_id | stringminLength: 1 maxLength: 36 OAuth 2.0 client identifier string |
| client_secret | stringminLength: 1 maxLength: 36 OAuth 2.0 client secret string |
| client_id_issued_at | integer($int32) minimum: 0 Time at which the client identifier was issued expressed as seconds since 1970-01-01T00:00:00Z as measured in UTC |
| client_secret_expires_at | integer($int32) minimum: 0 Time at which the client secret will expire expressed as seconds since 1970-01-01T00:00:00Z as measured in UTC. Set to 0 if does not expire |
| redirect_uris* | [string($uri)minLength: 1 maxLength: 256] |
| token_endpoint_auth_method* | string Enum: [ private_key_jwt, tls_client_auth ] |
| grant_types* | [ minItems: 1 string Enum: Array [ 3 ]] |
| response_types | [string Enum: Array [ 2 ]] |
| software_id | string |
| scope | [stringminLength: 1 maxLength: 32] |
| software_statement* | string($JWT) |
| application_type* | string Enum: [ web, mobile ] |
| id_token_signed_response_alg* | SupportedAlgorithmsstring Enum: [ RS256, PS256, ES256 ] |
| request_object_signing_alg* | SupportedAlgorithmsstring Enum: [ RS256, PS256, ES256 ] |
| token_endpoint_auth_signing_alg | SupportedAlgorithmsstring Enum: [ RS256, PS256, ES256 ] |
| tls_client_auth_dn* | stringminLength: 1 maxLength: 128 |
| iss* | stringpattern: ^[0-9a-zA-Z]{1,18}$ minLength: 1 maxLength: 18 Unique identifier for the TPP. Implemented as Base62 encoded GUID |
| iat* | integer($int32) The time at which the request was issued by the TPP expressed as seconds since 1970-01-01T00:00:00Z as measured in UTC |
| exp* | integer($int32) The time at which the request expires expressed as seconds since 1970-01-01T00:00:00Z as measured in UTC |
| aud* | stringpattern: ^[0-9a-zA-Z]{1,18}$ minLength: 1 maxLength: 18 The audience for the request. This should be the unique identifier for the ASPSP issued by the issuer of the software statement. Implemented as Base62 encoded GUID |
| jti* | stringpattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$ minLength: 36 maxLength: 36 Unique identifier for the JWT implemented as UUID v4 |
| client_id | stringminLength: 1 maxLength: 36 OAuth 2.0 client identifier string |
| client_secret | stringminLength: 1 maxLength: 36 OAuth 2.0 client secret string |
| client_id_issued_at | integer($int32) minimum: 0 Time at which the client identifier was issued expressed as seconds since 1970-01-01T00:00:00Z as measured in UTC |
| client_secret_expires_at | integer($int32) minimum: 0 Time at which the client secret will expire expressed as seconds since 1970-01-01T00:00:00Z as measured in UTC. Set to 0 if does not expire |
| redirect_uris* | [string($uri)minLength: 1 maxLength: 256] |
| token_endpoint_auth_method* | string Enum: [ private_key_jwt, tls_client_auth ] |
| grant_types* | [ minItems: 1 string Enum: [ client_credentials, authorization_code, refresh_token ]] |
| response_types | [string Enum: [ code, code id_token ]] |
| software_id | string |
| scope | [stringminLength: 1 maxLength: 32] |
| software_statement* | string($JWT) |
| application_type* | string Enum: [ web, mobile ] |
| id_token_signed_response_alg* | SupportedAlgorithmsstring Enum: [ RS256, PS256, ES256 ] |
| request_object_signing_alg* | SupportedAlgorithmsstring Enum: [ RS256, PS256, ES256 ] |
| token_endpoint_auth_signing_alg | SupportedAlgorithmsstring Enum: [ RS256, PS256, ES256 ] |
| tls_client_auth_dn* | stringminLength: 1 maxLength: 128 |
| error* | string Enum: [ invalid_redirect_uri, invalid_client_metadata, invalid_software_statement, unapproved_software_statement ] |
| error_description | stringminLength: 1 maxLength: 500 |
POST /register