common.tsp.bankconfig
io.token.proto.common.tsp.bankconfig common/src/main/proto/tsp/bankconfig.proto
syntax = "proto3";
package io.token.proto.common.tsp.bankconfig;
option java_outer_classname = "BankConfigProtos";
option csharp_namespace = "Tokenio.Proto.Common.Tsp.BankConfigProtos";
import "extensions/field.proto";
message BankConfig {
oneof config {
UKOpenBankingStandard uk_open_banking_standard = 1;
NextGenPsd2Standard next_gen_psd2_standard = 2;
PolishApiStandard polish_api_standard = 3;
ProviderSampleStandard provider_sample_standard = 4;
StetPsd2Standard stet_psd2_standard = 5;
StarlingApiStandard starling_api_standard = 6;
CzechPsd2Standard czech_psd2_standard = 7;
BudapestPsd2Standard budapest_psd2_standard = 8;
SlovakPsd2Standard slovak_psd2_standard = 9;
}
bool no_licence_required = 10;
message ProviderSampleStandard {
string client_id = 1;
string client_secret = 2;
string jwt_signing_key_id = 3;
string jwt_signing_algorithm = 4; // RS256, PS256, etc
string signing_key_id = 5;
string transport_key_id = 6;
}
message UKOpenBankingStandard {
string organisation_id = 1;
string software_statement_id = 2;
string authentication_type = 3; // client-secret-basic, client-secret-post, tls-client-auth, private-key-jwt
string client_id = 4;
string ais_client_id = 11; // Some banks might require a different client id for AIS. Providing this field will override the client_id in AIS flow.
string client_secret = 5 [(io.token.proto.extensions.field.redact) = true]; // optional, depending on the authentication_type
string jwt_signing_key_id = 6; // created by Open Banking Directory
string jwt_signing_algorithm = 7; // RS256, PS256, etc
string signing_key_id = 8;
string transport_key_id = 9;
bool is_eidas = 10 [deprecated = true];
}
message NextGenPsd2Standard {
string x_api_key_ais = 1;
string x_api_key_pis = 2;
string client_id = 3;
string client_secret = 4;
string psu_corporate_id_type = 5;
string psu_id_type = 6;
string jwt_signing_key_id = 7;
string jwt_signing_algorithm = 8;
string qseal_certificate = 9 [deprecated = true]; // TODO(PLT-783): remove
string qwac_certificate = 10 [deprecated = true]; // TODO(PLT-783): remove
string signing_key_id = 11;
string transport_key_id = 12;
}
message StetPsd2Standard {
string client_id = 1;
string client_secret = 2;
string jwt_signing_key_id = 3;
string jwt_signing_algorithm = 4;
string signing_key_id = 5;
string transport_key_id = 6;
string certificate_owner_name = 7;
}
message PolishApiStandard {
string client_id = 1;
string client_secret = 2;
string signing_key_id = 3;
string transport_key_id = 4;
string jwt_signing_key_id = 5;
string x5u = 6; // url to return the pem format of the tpp certificate
string x5c = 7 [deprecated = true]; // certificate chain for tpp jws certificate, TODO(PLT-783): remove
string x5t = 8 [deprecated = true]; // certificate thumbprint, TODO(PLT-783): remove
string kid = 9 [deprecated = true]; // TODO(PLT-783): remove
string tpp_id = 10;
}
message StarlingApiStandard {
string ais_client_id = 1;
string ais_client_secret = 2;
string pis_client_id = 3;
string pis_client_secret = 4;
string jwt_signing_key_id = 5;
string signing_key_id = 6;
string transport_key_id = 7;
}
message CzechPsd2Standard {
string x_api_key = 1;
string client_id = 2;
string client_secret = 3;
string jwt_signing_key_id = 4;
string jwt_signing_algorithm = 5;
string qseal_certificate = 6 [deprecated = true]; // TODO(PLT-783): remove
string signing_key_id = 7;
string transport_key_id = 8;
}
message BudapestPsd2Standard {
string client_id = 1;
string signing_key_id = 2;
string transport_key_id = 3;
string tpp_id = 4;
}
message SlovakPsd2Standard {
string client_id = 1;
string client_secret = 2;
string tpp_client_id = 3;
string signing_key_id = 4;
string transport_key_id = 5;
}
}
message RegistrationResult {
oneof result {
BankConfig bank_config = 1;
string error = 2;
}
}
message RegistrationPayload {
oneof payload {
UKOpenBankingStandard uk_open_banking_standard = 1;
NextGenPsd2Standard next_gen_psd2_standard = 2;
StetPsd2Standard stet_psd2_standard = 3;
PolishApiStandard polish_api_standard = 4;
}
message UKOpenBankingStandard {
string ssa = 1;
string signing_key_id = 2;
string transport_key_id = 3;
string jwt_signing_key_id = 4; // only required when there are multiple signing keys in the
// software statement
bool is_eidas = 5;
}
message NextGenPsd2Standard {
string transport_key_id = 1;
string signing_key_id = 2;
repeated string callback_urls = 3;
string contact_email = 4;
string app_name = 5;
string app_description = 6;
string tpp_id = 7;
string phone = 8;
string mobile = 9;
Address address = 10;
}
message StetPsd2Standard {
string transport_key_id = 1;
string signing_key_id = 2;
repeated string callback_urls = 3;
repeated string contacts = 4;
string app_name = 5;
string app_description = 6;
string scope = 7;
string tpp_legal_id = 8;
string certificate_uri = 9;
string first_name = 10;
string last_name = 11;
string company_uri = 12;
string username = 13; // only required by stet-psst
string password = 14; // only required by stet-psst
}
message PolishApiStandard {
string transport_key_id = 1;
string signing_key_id = 2;
repeated string callback_urls = 3;
string contact_email = 4;
string address = 5;
string phone = 6;
string app_name = 7;
string tpp_id = 8;
string certificate_uri = 9;
string client_uri = 10;
}
message Address {
string country = 1;
string city = 2;
string postal_code = 3;
string address_line = 4;
}
}