"openapi: 3.0.1\ninfo:\n title: Dynamic Client Registration\n x-technical-name: openbanking-dcr\n version: 3.3.0\n description: |-\n Dynamic Client Registration (DCR) API provides the ability for TPP to submit a Software Statement Assertion (SSA) to Santander for the purpose of registering and managing OAuth clients.\n The TPPs can use this API to\n * Register a new client\n * Retrieve the details for a client that has already been registered\n * Modify one or more attributes related to an existing client\n * Delete an existing client\n contact:\n name: Open Banking Support\n email: OpenBankingAPIsecurityteam@santander.co.uk # Please include here team mailbox \/ distribution list email address\n url: 'https:\/\/directory.openbanking.org.uk\/obieservicedesk\/s\/'\n termsOfService: 'https:\/\/www.openbanking.org.uk\/terms' # Please replace with URL with Terms of Service\n x-santander-catalogation:\n bian-landscape-version: 8\n bian-business-area: sales & service\n bian-business-domain: cross channel\n bian-service-domain: party authentication\n license:\n name: Terms of Reference\n url: 'https:\/\/www.openbanking.org.uk\/terms'\n x-api-type: OAuth\nx-portal-category: Security\nservers:\n - url: https:\/\/personal-ma-ob.omni.slz.santander.co.uk\n - url: https:\/\/business-ma-ob.omni.slz.santander.co.uk\npaths:\n \/oauth2\/register:\n post:\n summary: 'Register or create a new client for the TPP'\n description: 'This API allows the TPP to register (create) a new client. The TPP submits a JWS payload that describes the characteristics of the client to be created. If client creation is successful, then a response with a JSON payload describing the client that was created is returned. The TPP can then use the client to access Santander''s Open Banking resources. If client creation is unsuccessful, then a response with an error payload is returned.'\n requestBody:\n required: true\n content:\n application\/json:\n schema:\n type: object\n responses:\n '200':\n description: 'Result OK. Returns a JSON document containing TPP details.'\n content:\n application\/json:\n schema:\n type: string\n #schema:\n # $ref: '#\/components\/schemas\/tpp'\n '400':\n description: Bad Request\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '401':\n description: Unauthorized\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '403':\n description: Forbidden\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '404':\n description: Not Found\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '429':\n description: Too Many Request\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '500':\n description: Internal Server Error\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '501':\n description: Not Implemented\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '502':\n description: Bad Gateway\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '503':\n description: Service Unavailable\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '504':\n description: Gateway Timeout\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n # This is a dummy get endpoint (not the actual one) to allow conformance suite to pass a test\n # where it calls \/register GET without a client ID in the URL\n \/oauth2\/register\/:\n get:\n summary: 'Retrieve the details for a client that has already been registered'\n description: 'Endpoint for the TPP to Retrieve the details for a client that has already been registered with Santander.'\n responses:\n '200':\n description: 'Result OK. Returns a JSON document containing TPP details.'\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '400':\n description: Bad Request\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '401':\n description: Unauthorized\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '403':\n description: Forbidden\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '404':\n description: Not Found\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '429':\n description: Too Many Request\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '500':\n description: Internal Server Error\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '501':\n description: Not Implemented\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '502':\n description: Bad Gateway\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '503':\n description: Service Unavailable\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '504':\n description: Gateway Timeout\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n \/oauth2\/register\/{clientId}:\n get:\n summary: 'Retrieve the details for a client that has already been registered'\n description: 'Endpoint for the TPP to Retrieve the details for a client that has already been registered with Santander.'\n parameters:\n - in: path\n name: clientId\n schema:\n type: string\n required: true\n description: Alfa numeric ID of the client to get\n responses:\n '200':\n description: 'Result OK. Returns a json document containing tpp details.'\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '400':\n description: Bad Request\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '401':\n description: Unauthorized\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '403':\n description: Forbidden\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '404':\n description: Not Found\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '429':\n description: Too Many Request\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '500':\n description: Internal Server Error\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '501':\n description: Not Implemented\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '502':\n description: Bad Gateway\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '503':\n description: Service Unavailable\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '504':\n description: Gateway Timeout\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n put:\n summary: 'Modify one or more attributes related to an existing client'\n description: 'This is the Endpoint for the TPP to modify one or more attributes related to an existing client'\n parameters:\n - in: path\n name: clientId\n schema:\n type: string\n required: true\n description: Alfa numeric ID of the client to get\n requestBody:\n required: true\n content:\n application\/json:\n schema:\n type: object\n responses:\n '200':\n description: 'Result OK. Returns a json document containing tpp details.'\n content:\n application\/json:\n schema:\n type: string\n #schema:\n # $ref: '#\/components\/schemas\/tpp'\n '400':\n description: Bad Request\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '401':\n description: Unauthorized\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '403':\n description: Forbidden\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '404':\n description: Not Found\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '429':\n description: Too Many Request\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '500':\n description: Internal Server Error\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '501':\n description: Not Implemented\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '502':\n description: Bad Gateway\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '503':\n description: Service Unavailable\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '504':\n description: Gateway Timeout\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n delete:\n summary: 'Delete an existing client of a TPP'\n description: 'This is the endpoint for the TPP to delete an existing client that is identified by the ClientId'\n parameters:\n - in: path\n name: clientId\n schema:\n type: string\n required: true\n description: Alfa numeric ID of the client to get\n responses:\n '200':\n description: 'Result OK. Returns a json document containing tpp details.'\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '400':\n description: Bad Request\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '401':\n description: Unauthorized\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '403':\n description: Forbidden\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '404':\n description: Not Found\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '429':\n description: Too Many Request\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '500':\n description: Internal Server Error\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '501':\n description: Not Implemented\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '502':\n description: Bad Gateway\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '503':\n description: Service Unavailable\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\n '504':\n description: Gateway Timeout\n content:\n application\/json:\n schema:\n $ref: '#\/components\/schemas\/errorResponse'\ncomponents:\n responses:\n BadRequest:\n description: Invalid request\n content:\n application\/json:\n schema:\n type: string\n example: 'Invalid request'\n Unauthorized:\n description: Unauthorized\n content:\n application\/json:\n schema:\n type: string\n example: 'Unauthorized'\n Forbidden:\n description: Forbidden\n content:\n application\/json:\n schema:\n type: string\n example: 'Forbidden'\n NotFound:\n description: Not Found\n content:\n application\/json:\n schema:\n type: string\n example: 'Not Found'\n TooManyRequests:\n description: Too Many Requests\n content:\n application\/json:\n schema:\n type: string\n example: 'Too Many Requests'\n InternalServerError:\n description: Internal Server Error\n content:\n application\/json:\n schema:\n type: string\n example: 'Internal Server Error'\n BadGateway:\n description: Bad Gateway\n content:\n application\/json:\n schema:\n type: string\n example: 'Bad Gateway'\n ServiceUnavailable:\n description: Service Unavailable\n content:\n application\/json:\n schema:\n type: string\n example: 'Service Unavailable'\n GatewayTimeout:\n description: Gateway Timeout\n content:\n application\/json:\n schema:\n type: string\n example: 'Gateway Timeout'\n schemas:\n errorResponse:\n type: object\n properties:\n httpCode:\n type: string\n description: Error code which represents the problem that occurred during processing\n example: '401'\n httpMessage:\n type: string\n description: Error message which represents the problem that occurred during processing\n example: Unauthorized\n moreInformation:\n type: string\n description: Additional information about the error returned\n example: Client id not registered.\n access_token_response:\n type: object\n additionalProperties: false\n required:\n - token_type\n - access_token\n - expires_in\n properties:\n token_type:\n enum:\n - bearer\n access_token:\n type: string\n expires_in:\n type: integer\n scope:\n type: string\n refresh_token:\n type: string\n introspect_response:\n type: object\n additionalProperties: false\n required:\n - active\n - client_id\n - client_name\n - username\n - sub\n - exp\n - expstr\n - iat\n - nbf\n - nbfstr\n - scope\n properties:\n active:\n type: boolean\n client_id:\n type: string\n client_name:\n type: string\n username:\n type: string\n sub:\n type: string\n exp:\n type: string\n expstr:\n type: string\n iat:\n type: string\n nbf:\n type: string\n nbfstr:\n type: string\n scope:\n type: string\n miscinfo:\n type: string\n consented_on:\n type: string\n consented_on_str:\n type: string\n grant_type:\n type: string\n"
{}