Mastercard Developer Hub for FDX APIs Dynamic Client Registration API

As per [RFC 7591 - OAuth 2.0 Dynamic Client Registration Protocol (ietf.org)](https://datatracker.ietf.org/doc/html/rfc7591)

OpenAPI Specification

mastercard-developer-hub-for-fdx-apis-dynamic-client-registration-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Mastercard Developer Hub for FDX APIs FDX Authorization Server Application Check Controller Dynamic Client Registration API
  version: 1.0.0
  description: Dynamic Client Registration, Token, Introspection, Authorize API
  contact:
    name: API Support
    email: apisupport@mastercard.com
    url: https://developer.mastercard.com/support
servers:
- url: http://localhost:8080
  description: Localhost URL
tags:
- name: Dynamic Client Registration
  description: As per [RFC 7591 - OAuth 2.0 Dynamic Client Registration Protocol (ietf.org)](https://datatracker.ietf.org/doc/html/rfc7591)
paths:
  /fdx/v6/register:
    post:
      tags:
      - Dynamic Client Registration
      summary: Mastercard Developer Hub for FDX APIs Client Registration Request
      description: Request to Register Client
      operationId: registerClient
      requestBody:
        $ref: '#/components/requestBodies/RegisterClientRequest'
      responses:
        '200':
          $ref: '#/components/responses/RegisterClient'
      security:
      - {}
  /fdx/v6/register/{clientId}:
    get:
      tags:
      - Dynamic Client Registration
      summary: Mastercard Developer Hub for FDX APIs Get Client
      description: Get a specific client data identified with clientId
      operationId: getClient
      parameters:
      - $ref: '#/components/parameters/clientId'
      responses:
        '200':
          $ref: '#/components/responses/GetClient'
      security:
      - bearerAuth: []
    put:
      tags:
      - Dynamic Client Registration
      summary: Mastercard Developer Hub for FDX APIs Update Client
      description: Update data for a specific client identified with clientId
      operationId: modifyClient
      parameters:
      - $ref: '#/components/parameters/clientId'
      requestBody:
        $ref: '#/components/requestBodies/ModifyClientRequest'
      responses:
        '200':
          $ref: '#/components/responses/ModifyClient'
      security:
      - bearerAuth: []
    delete:
      tags:
      - Dynamic Client Registration
      summary: Mastercard Developer Hub for FDX APIs Delete Client
      description: Delete data for a specific client identified with clientId
      operationId: deleteClient
      parameters:
      - $ref: '#/components/parameters/clientId'
      responses:
        '204':
          description: No Content
          content:
            application/json:
              examples:
                Delete successful:
                  value: {}
      security:
      - bearerAuth: []
components:
  schemas:
    Client:
      type: object
      properties:
        client_id:
          $ref: '#/components/schemas/client_id'
        client_id_issued_at:
          $ref: '#/components/schemas/client_id_issued_at'
        client_name:
          $ref: '#/components/schemas/client_name'
        redirect_uris:
          $ref: '#/components/schemas/redirect_uris'
        grant_types:
          $ref: '#/components/schemas/grant_types'
        response_types:
          $ref: '#/components/schemas/response_types'
        scope:
          $ref: '#/components/schemas/scope'
        token_endpoint_auth_method:
          $ref: '#/components/schemas/token_endpoint_auth_method'
        id_token_signed_response_alg:
          $ref: '#/components/schemas/id_token_signed_response_alg'
        registration_client_uri:
          $ref: '#/components/schemas/registration_client_uri'
        jwks_uri:
          $ref: '#/components/schemas/jwks_uri'
        token_endpoint_auth_signing_alg:
          $ref: '#/components/schemas/token_endpoint_auth_signing_alg'
    jwks_uri:
      type: string
      example: https://www.jsonkeeper.com/b/3FJT
      description: URL string referencing the client's JSON Web Key (JWK) Set [RFC7517] document, which contains the client's public keys
    id_token_signed_response_alg:
      type: string
      example: PS256
      description: Algorithm with which an id_token is to be signed
    grant_types:
      type: array
      items:
        type: string
        example: client_credentials
      example:
      - client_credentials
      - authorization_code
      - refresh_token
      description: Array of OAuth 2.0 grants made available to the Data Recipient
    client_id:
      type: string
      example: dh-fdx-client-registrar-2
      description: OAuth 2.0 client identifier.  Unique ID representing Data Recipient and Identity Chain combination
    id_token_encrypted_response_enc:
      type: string
      example: A256GCM
      description: JWE enc algorithm with which an id_token is to be encrypted.
    client_id_issued_at:
      type: number
      description: Time at which the client_id was issued (measured in unix seconds)
    redirect_uris:
      type: array
      description: Array of redirection URI strings for use in redirect-based flows
      items:
        type: string
        example: https://oauth.pstmn.io/v1/browser-callback
      example:
      - https://oauth.pstmn.io/v1/browser-callback
    token_endpoint_auth_method:
      type: string
      description: Requested authentication method for the token endpoint.
      example: private_key_jwt
    client_name:
      type: string
      description: Human-readable string name of the client application
      example: 11TestName1221
    CreateClient:
      type: object
      properties:
        client_id:
          $ref: '#/components/schemas/client_id'
        client_id_issued_at:
          $ref: '#/components/schemas/client_id_issued_at'
        client_name:
          $ref: '#/components/schemas/client_name'
        redirect_uris:
          $ref: '#/components/schemas/redirect_uris'
        grant_types:
          $ref: '#/components/schemas/grant_types'
        response_types:
          $ref: '#/components/schemas/response_types'
        scope:
          $ref: '#/components/schemas/scope'
        token_endpoint_auth_method:
          $ref: '#/components/schemas/token_endpoint_auth_method'
        id_token_signed_response_alg:
          $ref: '#/components/schemas/id_token_signed_response_alg'
        registration_client_uri:
          $ref: '#/components/schemas/registration_client_uri'
        jwks_uri:
          $ref: '#/components/schemas/jwks_uri'
        token_endpoint_auth_signing_alg:
          $ref: '#/components/schemas/token_endpoint_auth_signing_alg'
        registration_access_token:
          $ref: '#/components/schemas/registration_access_token'
    response_types:
      type: array
      items:
        type: string
        example: code
      example:
      - code
      description: Array of OAuth 2.0 response type strings. Default value is code
    registration_access_token:
      type: string
      description: String containing a unique DCR access token to be used in subsequent operations to manage the Data Recipient
    request_object_signing_alg:
      type: string
      example: PS256
      description: Algorithm which the client expects to sign the request object if a request object will be part of the authorization request sent to the Data Holder
    id_token_encrypted_response_alg:
      type: string
      example: RSA-OAEP
      description: JWE alg algorithm with which an id_token is to be encrypted.
    scope:
      type: string
      description: String containing a space-separated list of scope values that the client can use when requesting access tokens.
      example: client.create client.read fdx:transactions:read fdx:accountbasic:read openid fdx:customerpersonal:read fdx:accountdetailed:read fdx:investments:read fdx:paymentsupport:read fdx:accountpayments:read fdx:bills:read fdx:images:read fdx:rewards:read fdx:tax:read fdx:statements:read fdx:customercontact:read
    token_endpoint_auth_signing_alg:
      type: string
      example: PS256
      description: The algorithm used for signing the JWT
    registration_client_uri:
      type: string
      description: Fully qualified URI for subsequent DCR calls (GET, PUT, DELETE) for managing the Data Recipient registration
  parameters:
    clientId:
      name: clientId
      example: dh-fdx-client-registrar-2
      description: Client Identifier. Uniquely identifies a Client
      in: path
      required: true
      schema:
        type: string
  requestBodies:
    ModifyClientRequest:
      required: true
      content:
        application/json:
          schema:
            type: object
            properties:
              client_name:
                $ref: '#/components/schemas/client_name'
              grant_types:
                $ref: '#/components/schemas/grant_types'
              id_token_encrypted_response_alg:
                $ref: '#/components/schemas/id_token_encrypted_response_alg'
              id_token_encrypted_response_enc:
                $ref: '#/components/schemas/id_token_encrypted_response_enc'
              id_token_signed_response_alg:
                $ref: '#/components/schemas/id_token_signed_response_alg'
              jwks_uri:
                $ref: '#/components/schemas/jwks_uri'
              redirect_uris:
                $ref: '#/components/schemas/redirect_uris'
              request_object_signing_alg:
                $ref: '#/components/schemas/request_object_signing_alg'
              response_types:
                $ref: '#/components/schemas/response_types'
              scope:
                $ref: '#/components/schemas/scope'
              token_endpoint_auth_method:
                $ref: '#/components/schemas/token_endpoint_auth_method'
              token_endpoint_auth_signing_alg:
                $ref: '#/components/schemas/token_endpoint_auth_signing_alg'
          examples:
            Modify Client:
              value:
                client_name: 11TestName12211112
                grant_types:
                - client_credentials
                - authorization_code
                - refresh_token
                id_token_encrypted_response_alg: RSA-OAEP
                id_token_encrypted_response_enc: A256GCM
                id_token_signed_response_alg: PS256
                jwks_uri: https://www.jsonkeeper.com/b/3FJT
                redirect_uris:
                - https://oauth.pstmn.io/v1/browser-callback
                request_object_signing_alg: PS256
                response_types:
                - code
                scope: client.create client.read
                token_endpoint_auth_method: private_key_jwt
                token_endpoint_auth_signing_alg: PS256
    RegisterClientRequest:
      required: true
      content:
        application/json:
          schema:
            type: object
            properties:
              client_name:
                $ref: '#/components/schemas/client_name'
              grant_types:
                $ref: '#/components/schemas/grant_types'
              id_token_encrypted_response_alg:
                $ref: '#/components/schemas/id_token_encrypted_response_alg'
              id_token_encrypted_response_enc:
                $ref: '#/components/schemas/id_token_encrypted_response_enc'
              id_token_signed_response_alg:
                $ref: '#/components/schemas/id_token_signed_response_alg'
              jwks_uri:
                $ref: '#/components/schemas/jwks_uri'
              redirect_uris:
                $ref: '#/components/schemas/redirect_uris'
              request_object_signing_alg:
                $ref: '#/components/schemas/request_object_signing_alg'
              response_types:
                $ref: '#/components/schemas/response_types'
              scope:
                $ref: '#/components/schemas/scope'
              token_endpoint_auth_method:
                $ref: '#/components/schemas/token_endpoint_auth_method'
              token_endpoint_auth_signing_alg:
                $ref: '#/components/schemas/token_endpoint_auth_signing_alg'
          examples:
            Register Client:
              value:
                client_name: 11TestName1221
                grant_types:
                - client_credentials
                - authorization_code
                - refresh_token
                id_token_encrypted_response_alg: RSA-OAEP
                id_token_encrypted_response_enc: A256GCM
                id_token_signed_response_alg: PS256
                jwks_uri: https://www.jsonkeeper.com/b/3FJT
                redirect_uris:
                - https://oauth.pstmn.io/v1/browser-callback
                request_object_signing_alg: PS256
                response_types:
                - code
                scope: client.create client.read fdx:transactions:read fdx:accountbasic:read openid fdx:customerpersonal:read fdx:accountdetailed:read fdx:investments:read fdx:paymentsupport:read fdx:accountpayments:read fdx:bills:read fdx:images:read fdx:rewards:read fdx:tax:read fdx:statements:read fdx:customercontact:read
                token_endpoint_auth_method: private_key_jwt
                token_endpoint_auth_signing_alg: PS256
  responses:
    GetClient:
      description: Successful get client response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Client'
          examples:
            App created Successfully:
              value:
                client_id: 1GvkBUKMqKuj7DukoDWFcdhqbmBQBZdpz847-8kY3Ck
                client_id_issued_at: 1719555632
                client_name: 11TestName1221
                redirect_uris:
                - https://oauth.pstmn.io/v1/browser-callback
                grant_types:
                - refresh_token
                - client_credentials
                - authorization_code
                response_types:
                - code
                scope: fdx:transactions:read fdx:accountbasic:read openid client.create fdx:customerpersonal:read fdx:accountdetailed:read client.read fdx:investments:read fdx:paymentsupport:read fdx:accountpayments:read fdx:bills:read fdx:images:read fdx:rewards:read fdx:tax:read fdx:statements:read fdx:customercontact:read
                token_endpoint_auth_method: private_key_jwt
                id_token_signed_response_alg: RS256
                registration_client_uri: http://localhost:8080/connect/register?client_id=1GvkBUKMqKuj7DukoDWFcdhqbmBQBZdpz847-8kY3Ck
                jwks_uri: https://www.jsonkeeper.com/b/3FJT
                token_endpoint_auth_signing_alg: PS256
    ModifyClient:
      description: Successful response after modification
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Client'
          examples:
            Successful Modification:
              value:
                client_id: 1GvkBUKMqKuj7DukoDWFcdhqbmBQBZdpz847-8kY3Ck
                client_id_issued_at: 1719555632
                client_name: 11TestName12211112
                redirect_uris:
                - https://oauth.pstmn.io/v1/browser-callback1
                grant_types:
                - refresh_token
                - client_credentials
                - authorization_code
                response_types:
                - code
                scope: client.create client.read
                token_endpoint_auth_method: private_key_jwt
                id_token_signed_response_alg: RS256
                registration_client_uri: http://localhost:8080/connect/register?client_id=1GvkBUKMqKuj7DukoDWFcdhqbmBQBZdpz847-8kY3Ck
                jwks_uri: https://www.jsonkeeper.com/b/3FJT
                token_endpoint_auth_signing_alg: PS256
    RegisterClient:
      description: Successful register response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateClient'
          examples:
            Successful Registration:
              value:
                client_id: CHzOG1x6_fKjBHhh9eegZ45BQorbqtIe9eWJEhLsrig
                client_id_issued_at: 1719554524
                client_name: 11TestName1221
                redirect_uris:
                - https://oauth.pstmn.io/v1/browser-callback
                grant_types:
                - refresh_token
                - client_credentials
                - authorization_code
                response_types:
                - code
                scope: fdx:transactions:read fdx:accountbasic:read openid client.create fdx:customerpersonal:read fdx:accountdetailed:read client.read fdx:investments:read fdx:paymentsupport:read fdx:accountpayments:read fdx:bills:read fdx:images:read fdx:rewards:read fdx:tax:read fdx:statements:read fdx:customercontact:read
                token_endpoint_auth_method: private_key_jwt
                id_token_signed_response_alg: RS256
                registration_client_uri: http://localhost:8080/client/register?client_id=CHzOG1x6_fKjBHhh9eegZ45BQorbqtIe9eWJEhLsrig
                jwks_uri: https://www.jsonkeeper.com/b/3FJT
                registration_access_token: eyJraWQiOiI5OWJjMzNlZS1hMDRkLTRhODktOGFlMC01ZGViZDIxNDVhYWIiLCJ0eXAiOiJhdCtqd3QiLCJhbGciOiJQUzI1NiJ9.eyJzdWIiOiJDSHpPRzF4Nl9mS2pCSGhoOWVlZ1o0NUJRb3JicXRJZTllV0pFaExzcmlnIiwiYXVkIjoiQ0h6T0cxeDZfZktqQkhaDllZWdaNDVCW9yYnF0SWU5ZVdKRWhMc3JpZyIsIm5iZiI6MTcxOTU1NDUyNCwic2NvcGUiOlsiY2xpZW50LnJlYWQiXSwiaXNzIjoiaHR0cHM6Ly9mZHgtbW9jay1hdXRob3JpemF0aW9uLXNlcnZlci5kZXYuZmluaS5jaXR5IiwiZXhwIjoxNzE5NTU0ODI0LCJpYXQiOjE3MTk1NTQ1MjQsImp0aSI6ImJiNGMwZDFjLWIxNzctNDlmYi05YWE5LWRkZWVhNTA0ZDk2MCJ9.UwOHic9Qh3FJ1yBRdM5VNGPPNvzYATNZFHggpRUKb-6jKZ5Li6QXypIpqnpGsPfUcOH8bnuewmF4rXmzHiFAL_xARarNleiuXPoVajvp9NLGjieUQn57ohb2B7SojQB_acVpzYuNoWbLk8A8URokXxtdmpdIqwYr9ViktxAvzZdBGbtWZnZ-Td7idlRa3nTARz1rvzZwjHhf3O6-S6kDpFhB91BZ1231ZbnucvyWnEmAf5HCcwq7N3eE1O6fxVEe7hYWOuBdaBv_tUGGAm4HGovDR05RzrRQqfmu5FRtzk5B0EfeUlhS_PknVYeoMh6TLtWX1zFWO4Gj5DSDezK5Nw
                token_endpoint_auth_signing_alg: PS256
            Missing Parameter Redirecturi:
              value:
                error: We have encountered some internal error in processing your request.
                errorDescription: '400 : "{"error_description":"OpenID Client Registration Error: An error occurred reading the OpenID Client Registration: redirect_uris cannot be null","error":"invalid_request","error_uri":"https://openid.net/specs/openid-connect-registration-1_0.html#RegistrationError"}"'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer