Register

The API allows the TPP to request the Salt Edge OB KSA Compliance Solution to register a new client. The TPP submits a JWT payload that describes the characteristics of the client to be created. If client creation is successful, the PASP responds with a JSON payload that describes the client that was created.

CURL

curl -i  \ 
 -d 'eyJhbGciOiJQUzI1NiIsImtpZCI6InRlc3QifQ.eyJyZXF1ZXN0X29iamVjdF9zaWduaW5nX2FsZyI6IlBTMjU2IiwiaXNzIjoiYmVLdXhDMVJuaVZzVGVMWXdmcGdOUCIsImlhdCI6MTYwNjI5Nzg1MywiZXhwIjoxNjA2Mjk4MTY5LCJhdWQiOiIwZHcyM2RzYTEzMTIzIiwidG9rZW5fZW5kcG9pbnRfYXV0aF9tZXRob2QiOiJjbGllbnRfc2VjcmV0X2Jhc2ljIiwidG9rZW5fZW5kcG9pbnRfYXV0aF9zaWduaW5nX2FsZyI6IlBTMjU2IiwiZ3JhbnRfdHlwZXMiOlsiY2xpZW50X2NyZWRlbnRpYWxzIiwiYXV0aG9yaXphdGlvbl9jb2RlIiwicmVmcmVzaF90b2tlbiJdLCJyZXNwb25zZV90eXBlcyI6WyJjb2RlIl0sInNvZnR3YXJlX3N0YXRlbWVudCI6ImV5SmhiR2NpT2lKSVV6STFOaUlzSW10cFpDSTZJa0ZDUTBReE1qTTBJbjAuZXlKcGMzTWlPaUpQY0dWdVFtRnVhMmx1WnlCTWRHUWlMQ0pwWVhRaU9qRTBPVEkzTlRZek16RXNJbXAwYVNJNkltbGtNVEl6TkRVMk9EVTBNemswT0RjMk56Z2lMQ0p6YjJaMGQyRnlaVjlsYm5acGNtOXViV1Z1ZENJNkluQnliMlIxWTNScGIyNGlMQ0p6YjJaMGQyRnlaVjl0YjJSbElqb2liR2wyWlNJc0luTnZablIzWVhKbFgybGtJam9pTmpWa01XWXlOMk10TkdGbFlTMDBOVFE1TFRsak1qRXROakJsTkRrMVlUZGhPRFptSWl3aWMyOW1kSGRoY21WZlkyeHBaVzUwWDJsa0lqb2lUM0JsYmtKaGJtdHBibWNnVkZCUUlFTnNhV1Z1ZENCVmJtbHhkV1VnU1VRaUxDSnpiMlowZDJGeVpWOWpiR2xsYm5SZmJtRnRaU0k2SWtGdFlYcHZiaUJRY21sdFpTQk5iM1pwWlhNaUxDSnpiMlowZDJGeVpWOWpiR2xsYm5SZlpHVnpZM0pwY0hScGIyNGlPaUpCYldGNmIyNGdVSEpwYldVZ1RXOTJhV1Z6SUdseklHRWdiVzkyYVc1bklITjBjbVZoYldsdVp5QnpaWEoyYVdObElpd2ljMjltZEhkaGNtVmZkbVZ5YzJsdmJpSTZJakl1TWlJc0luTnZablIzWVhKbFgyTnNhV1Z1ZEY5MWNta2lPaUpvZEhSd2N6b3ZMM0J5YVcxbExtRnRZWHB2Ymk1amIyMGlMQ0p6YjJaMGQyRnlaVjl5WldScGNtVmpkRjkxY21seklqcGJJbWgwZEhCek9pOHZjSEpwYldVdVlXMWhlbTl1TG1OdmJTOWpZaUlzSW1oMGRIQnpPaTh2Y0hKcGJXVXVZVzFoZW05dUxtTnZMblZyTDJOaUlsMHNJbk52Wm5SM1lYSmxYM0p2YkdWeklqcGJJbEJKVTFBaUxDSkJTVk5RSWwwc0ltOXlaMkZ1YVhOaGRHbHZibDlqYjIxd1pYUmxiblJmWVhWMGFHOXlhWFI1WDJOc1lXbHRjeUk2VzNzaVlYVjBhRzl5YVhSNVgybGtJam9pUmsxQklpd2ljbVZuYVhOMGNtRjBhVzl1WDJsa0lqb2lNVEV4TVRFeElpd2ljM1JoZEhWeklqb2lRV04wYVhabElpd2lZWFYwYUc5eWFYTmhkR2x2Ym5NaU9sdDdJbTFsYldKbGNsOXpkR0YwWlNJNklrZENVaUlzSW5KdmJHVnpJanBiSWxCSlUxQWlMQ0pCU1ZOUUlsMTlMSHNpYldWdFltVnlYM04wWVhSbElqb2lVazlKSWl3aWNtOXNaWE1pT2xzaVVFbFRVQ0pkZlYxOVhTd2ljMjltZEhkaGNtVmZiRzluYjE5MWNta2lPaUpvZEhSd2N6b3ZMM0J5YVcxbExtRnRZWHB2Ymk1amIyMHZiRzluYnk1d2JtY2lMQ0p2Y21kZmMzUmhkSFZ6SWpvaVFXTjBhWFpsSWl3aWIzSm5YMmxrSWpvaVFXMWhlbTl1SUZSUVVFbEVJaXdpYjNKblgyNWhiV1VpT2lKUGNHVnVRbUZ1YTJsdVp5QlVVRkFnVW1WbmFYTjBaWEpsWkNCT1lXMWxJaXdpYjNKblgyTnZiblJoWTNSeklqcGJleUp1WVcxbElqb2lZMjl1ZEdGamRDQnVZVzFsSWl3aVpXMWhhV3dpT2lKamIyNTBZV04wUUdOdmJuUmhZM1F1WTI5dElpd2ljR2h2Ym1VaU9pSXJORFEzT0Rrd01UTXdOVFU0SWl3aWRIbHdaU0k2SW1KMWMybHVaWE56SW4wc2V5SnVZVzFsSWpvaVkyOXVkR0ZqZENCdVlXMWxJaXdpWlcxaGFXd2lPaUpqYjI1MFlXTjBRR052Ym5SaFkzUXVZMjl0SWl3aWNHaHZibVVpT2lJck5EUTNPRGt3TVRNd05UVTRJaXdpZEhsd1pTSTZJblJsWTJodWFXTmhiQ0o5WFN3aWIzSm5YMnAzYTNOZlpXNWtjRzlwYm5RaU9pSm9kSFJ3Y3pvdkwycDNhM011YjNCbGJtSmhibXRwYm1jdWIzSm5MblZyTDI5eVoxOXBaQzl2Y21kZmFXUXVhbXQzY3lJc0ltOXlaMTlxZDJ0elgzSmxkbTlyWldSZlpXNWtjRzlwYm5RaU9pSm9kSFJ3Y3pvdkwycDNhM011YjNCbGJtSmhibXRwYm1jdWIzSm5MblZyTDI5eVoxOXBaQzl5WlhadmEyVmtMMjl5WjE5cFpDNXFhM2R6SWl3aWMyOW1kSGRoY21WZmFuZHJjMTlsYm1Sd2IybHVkQ0k2SW1oMGRIQnpPaTh2YW5kcmN5NXZjR1Z1WW1GdWEybHVaeTV2Y21jdWRXc3ZiM0puWDJsa0wzTnZablIzWVhKbFgybGtMbXByZDNNaUxDSnpiMlowZDJGeVpWOXFkMnR6WDNKbGRtOXJaV1JmWlc1a2NHOXBiblFpT2lKb2RIUndjem92TDJwM2EzTXViM0JsYm1KaGJtdHBibWN1YjNKbkxuVnJMMjl5WjE5cFpDOXlaWFp2YTJWa0wzTnZablIzWVhKbFgybGtMbXByZDNNaUxDSnpiMlowZDJGeVpWOXdiMnhwWTNsZmRYSnBJam9pYUhSMGNITTZMeTkwY0hBdVkyOXRMM0J2YkdsamVTNW9kRzFzSWl3aWMyOW1kSGRoY21WZmRHOXpYM1Z5YVNJNkltaDBkSEJ6T2k4dmRIQndMbU52YlM5MGIzTXVhSFJ0YkNJc0luTnZablIzWVhKbFgyOXVYMkpsYUdGc1psOXZabDl2Y21jaU9pSm9kSFJ3Y3pvdkwyRndhUzV2Y0dWdVltRnVhMmx1Wnk1dmNtY3VkV3N2YzJOcGJUSXZUMEpVY25WemRHVmtVR0Y1YldWdWRGQmhjblI1THpFeU16UTFOamMzT0RraUxDSnZZbDl5WldkcGMzUnllVjkwYjNNaU9pSm9kSFJ3Y3pvdkwzSmxaMmx6ZEhKNUxtOXdaVzVpWVc1cmFXNW5MbTl5Wnk1MWF5OTBiM011YUhSdGJDSjkub0hscTdOeEVvajB2ZFhlVFI1Y1V6N29JcTdWdDlkQjM0cGJ3eHREaFdUcyIsInNvZnR3YXJlX2lkIjoiYmVLdXhDMVJuaVZzVGVMWXdmcGdOUCIsInJlZGlyZWN0X3VyaXMiOlsiaHR0cHM6Ly9yZWRpcmVjdC5oZXJlIiwiaHR0cDovL2FuZC5oZXJlIl0sInNjb3BlIjoibWFrZXBheW1lbnQiLCJhcHBsaWNhdGlvbl90eXBlIjoid2ViIn0.bGKr3J8xImUYkfV5gzJw-UsfPZ1vfa44riG6I7m85pRvsTHr8SVDpGnGVpfhuxgZJaB8Vf6H2OAtKZ0p0XI9dXNZWSfmpEMpbqDoxsbT0TDVAE6zK10tHAprw0EIekc90fZU9vdmsFlE3lG5T0VW8qj5u6zd5l3rR6P4zh4rJFaw3Ead6GO58mMzLI7-a1AbGt4sJFcC7DN4Rn3472Cw5R_0jV502q_NCwJDCMq8tMHiCCPck3NYYKBgHw51Cf_wFKlem4Xm9DrgTW3k13SlLBmQ9pfV8Ic_XYAIFlCC7ioHwQmBHHNuQdgEiVB5atORJg68DSTNgINXRFouSQpbrg' \ 
-X POST "/api/open-banking/v3.1/tpp/register"

Example of request

{"request_object_signing_alg":"PS256","iss":"beKuxC1RniVsTeLYwfpgNP","iat":1606297853,"exp":1606298169,"aud":"0dw23dsa13123","token_endpoint_auth_method":"client_secret_basic","token_endpoint_auth_signing_alg":"PS256","grant_types":["client_credentials","authorization_code","refresh_token"],"response_types":["code"],"software_statement":"eyJhbGciOiJIUzI1NiIsImtpZCI6IkFCQ0QxMjM0In0.eyJpc3MiOiJPcGVuQmFua2luZyBMdGQiLCJpYXQiOjE0OTI3NTYzMzEsImp0aSI6ImlkMTIzNDU2ODU0Mzk0ODc2NzgiLCJzb2Z0d2FyZV9lbnZpcm9ubWVudCI6InByb2R1Y3Rpb24iLCJzb2Z0d2FyZV9tb2RlIjoibGl2ZSIsInNvZnR3YXJlX2lkIjoiNjVkMWYyN2MtNGFlYS00NTQ5LTljMjEtNjBlNDk1YTdhODZmIiwic29mdHdhcmVfY2xpZW50X2lkIjoiT3BlbkJhbmtpbmcgVFBQIENsaWVudCBVbmlxdWUgSUQiLCJzb2Z0d2FyZV9jbGllbnRfbmFtZSI6IkFtYXpvbiBQcmltZSBNb3ZpZXMiLCJzb2Z0d2FyZV9jbGllbnRfZGVzY3JpcHRpb24iOiJBbWF6b24gUHJpbWUgTW92aWVzIGlzIGEgbW92aW5nIHN0cmVhbWluZyBzZXJ2aWNlIiwic29mdHdhcmVfdmVyc2lvbiI6IjIuMiIsInNvZnR3YXJlX2NsaWVudF91cmkiOiJodHRwczovL3ByaW1lLmFtYXpvbi5jb20iLCJzb2Z0d2FyZV9yZWRpcmVjdF91cmlzIjpbImh0dHBzOi8vcHJpbWUuYW1hem9uLmNvbS9jYiIsImh0dHBzOi8vcHJpbWUuYW1hem9uLmNvLnVrL2NiIl0sInNvZnR3YXJlX3JvbGVzIjpbIlBJU1AiLCJBSVNQIl0sIm9yZ2FuaXNhdGlvbl9jb21wZXRlbnRfYXV0aG9yaXR5X2NsYWltcyI6W3siYXV0aG9yaXR5X2lkIjoiRk1BIiwicmVnaXN0cmF0aW9uX2lkIjoiMTExMTExIiwic3RhdHVzIjoiQWN0aXZlIiwiYXV0aG9yaXNhdGlvbnMiOlt7Im1lbWJlcl9zdGF0ZSI6IkdCUiIsInJvbGVzIjpbIlBJU1AiLCJBSVNQIl19LHsibWVtYmVyX3N0YXRlIjoiUk9JIiwicm9sZXMiOlsiUElTUCJdfV19XSwic29mdHdhcmVfbG9nb191cmkiOiJodHRwczovL3ByaW1lLmFtYXpvbi5jb20vbG9nby5wbmciLCJvcmdfc3RhdHVzIjoiQWN0aXZlIiwib3JnX2lkIjoiQW1hem9uIFRQUElEIiwib3JnX25hbWUiOiJPcGVuQmFua2luZyBUUFAgUmVnaXN0ZXJlZCBOYW1lIiwib3JnX2NvbnRhY3RzIjpbeyJuYW1lIjoiY29udGFjdCBuYW1lIiwiZW1haWwiOiJjb250YWN0QGNvbnRhY3QuY29tIiwicGhvbmUiOiIrNDQ3ODkwMTMwNTU4IiwidHlwZSI6ImJ1c2luZXNzIn0seyJuYW1lIjoiY29udGFjdCBuYW1lIiwiZW1haWwiOiJjb250YWN0QGNvbnRhY3QuY29tIiwicGhvbmUiOiIrNDQ3ODkwMTMwNTU4IiwidHlwZSI6InRlY2huaWNhbCJ9XSwib3JnX2p3a3NfZW5kcG9pbnQiOiJodHRwczovL2p3a3Mub3BlbmJhbmtpbmcub3JnLnVrL29yZ19pZC9vcmdfaWQuamt3cyIsIm9yZ19qd2tzX3Jldm9rZWRfZW5kcG9pbnQiOiJodHRwczovL2p3a3Mub3BlbmJhbmtpbmcub3JnLnVrL29yZ19pZC9yZXZva2VkL29yZ19pZC5qa3dzIiwic29mdHdhcmVfandrc19lbmRwb2ludCI6Imh0dHBzOi8vandrcy5vcGVuYmFua2luZy5vcmcudWsvb3JnX2lkL3NvZnR3YXJlX2lkLmprd3MiLCJzb2Z0d2FyZV9qd2tzX3Jldm9rZWRfZW5kcG9pbnQiOiJodHRwczovL2p3a3Mub3BlbmJhbmtpbmcub3JnLnVrL29yZ19pZC9yZXZva2VkL3NvZnR3YXJlX2lkLmprd3MiLCJzb2Z0d2FyZV9wb2xpY3lfdXJpIjoiaHR0cHM6Ly90cHAuY29tL3BvbGljeS5odG1sIiwic29mdHdhcmVfdG9zX3VyaSI6Imh0dHBzOi8vdHBwLmNvbS90b3MuaHRtbCIsInNvZnR3YXJlX29uX2JlaGFsZl9vZl9vcmciOiJodHRwczovL2FwaS5vcGVuYmFua2luZy5vcmcudWsvc2NpbTIvT0JUcnVzdGVkUGF5bWVudFBhcnR5LzEyMzQ1Njc3ODkiLCJvYl9yZWdpc3RyeV90b3MiOiJodHRwczovL3JlZ2lzdHJ5Lm9wZW5iYW5raW5nLm9yZy51ay90b3MuaHRtbCJ9.oHlq7NxEoj0vdXeTR5cUz7oIq7Vt9dB34pbwxtDhWTs","software_id":"beKuxC1RniVsTeLYwfpgNP","redirect_uris":["https://redirect.here","http://and.here"],"scope":"makepayment","application_type":"web"}

Example of response

Request

POST /api/open-banking/v3.1/tpp/register

Headers
Header Type Description
Content-Type string, required The media type of the body of the request. Allowed values: application/jwt
Request parameters
iss
string, required
Identifier for the TPP.This value must be unique for each TPP registered by the issuer of the SSA. The value must be a Base62 encoded GUID. For SSAs issued by the OB Directory, this must be the software_id. Can raise: WrongRequiredFields, RequestFormatInvalid
iat
integer, required
The time at which the request was issued by the TPP expressed as "seconds since the epoch"
exp
integer, required
The time at which the request expires expressed as seconds since the epoch. Values greater than: 1711633040
aud
string, required
The audience for the request. This should be the unique identifier for the PASP issued by the issuer of the software statement.
token_endpoint_auth_method
string, optional
Specifies which Token endpoint authentication method the TPP wants to use. It should be noted that only tls_client_auth and client_secret_basic are FAPI compliant. Default value: client_secret_basic Allowed values: client_secret_basic, private_key_jwt
token_endpoint_auth_signing_alg
string, optional
Algorithm which the TPP uses to authenticate with the token endpoint. Default value: PS256 Allowed values: RS256, PS256
grant_types
array, required
A JSON array specifying what the TPP can request to be supplied to the token endpoint as exchange for an access token. Allowed values: client_credentials, authorization_code, refresh_token
response_types
array, optional
A JSON array specifying what the TPP can request to be returned from the PASP authorisation endpoint. Default value: ["code"] Allowed values: code
software_statement
string, required
Software statement assertion issued by the issuer. The data model for the software statements issued by the Open Banking directory are documented as part of the Directory Specification. Can raise: NotFound, Invalid, WrongRequiredFields, AccessDenied
software_id
string, optional
If specified, the software_id in the request MUST match the software_id specified in the SSA.
redirect_uris
array, required
Registered URIs the TPP will use to interact with the PASP. If the software statement defines a master set of redirect URIs, this must match or be a subset of the redirect URIs in the SSA.
scope
string, optional
Scopes the client is asking for (if not specified, default scopes are assigned by the AS). This consists of a list scopes separated by spaces. Allowed values: openid, accounts, payments, fundsconfirmations
application_type
string, optional
Please specify whether TPP software is a mobile or a web app. Allowed values: web, mobile
request_object_signing_alg
string, optional
Algorithm which the TPP expects to sign the request object if a request object will be part of the authorization request sent to the PASP. Allowed values: RS256, PS256
Response

Upon successful request, 200 status code will be returned. See ‘Related Errors’ table for other possibilities.


Related Errors
Class Code Description
RequestFormatInvalid 400 Request format is wrong. Details are stored in error_message
WrongRequiredFields 401 Specified required fields were not provided. More info in error_message
AccessDenied 401 Action you want to perform is not allowed. More in error_message
NotFound 404 A resource could not be found. More in error_message.
Invalid 406 Given data is invalid. More in error_message.

Certificates

Used for adding certificate. After action, you will receive a letter of confirmation on your representative email.

CURL

curl -i  \ 
 -H "Content-Type: application/json" \ 
 -d '{
  "data": {
    "certificate": {
      "pem": "-----BEGIN CERTIFICATE-----MIIDjzCCAncCAQAwDQYJKoZIhvcNAQELBQAwWzEXMBUGA1UEYQwOVHBwU2FsdFRlc3QwMDAxIDAeBgNVBAMMF2NlcnRTSUdOU0FMVFRFU1QgV2ViIENBMREwDwYDVQQKDAhTYWx0VGVzdDELMAkGA1UEBhMCUk8wHhcNMTkwNTIxMTMxNDA1WhcNMjEwNTIwMTMxNDA1WjBbMRcwFQYDVQRhDA5UcHBTYWx0VGVzdDAwMDEgMB4GA1UEAwwXY2Vy-----END CERTIFICATE-----",
      "name": "Example name",
      "type": "qseal"
    }
  }
}' \ 
-X POST "/api/open-banking/v3.1/tpp/certificates"

Example of parameters

{"data":{"certificate":{"pem":"-----BEGIN CERTIFICATE-----MIIDjzCCAncCAQAwDQYJKoZIhvcNAQELBQAwWzEXMBUGA1UEYQwOVHBwU2FsdFRlc3QwMDAxIDAeBgNVBAMMF2NlcnRTSUdOU0FMVFRFU1QgV2ViIENBMREwDwYDVQQKDAhTYWx0VGVzdDELMAkGA1UEBhMCUk8wHhcNMTkwNTIxMTMxNDA1WhcNMjEwNTIwMTMxNDA1WjBbMRcwFQYDVQRhDA5UcHBTYWx0VGVzdDAwMDEgMB4GA1UEAwwXY2Vy-----END CERTIFICATE-----","name":"Example name","type":"qseal"}}}

Example of response

Request

POST /api/open-banking/v3.1/tpp/certificates

Headers
Header Type Description
Content-Type string, optional The media type of the body of the request. Default value: application/json
Request parameters
Response

Upon successful request, 200 status code will be returned. See ‘Related Errors’ table for other possibilities.


Related Errors
Class Code Description
WrongRequiredFields 401 Specified required fields were not provided. More info in error_message