common.v2.bank

io.token.proto.common.v2.bank common/src/main/proto/v2/bank.proto


syntax = "proto3";
package io.token.proto.common.v2.bank;

option java_outer_classname = "BankV2Protos";

import "bankinfo.proto";
import "providerspecific.proto";
import "v2/common.proto";

message Bank {
  string id = 1;
  string bic = 2;
  string name = 3;
  string logo_uri = 4;                  // Square bank avatar icon
  string bank_group = 5;                // Bank group name if bank is member of one.
  repeated string countries = 6;        // List of ISO 3166-1 alpha-2 two letter country codes in upper case.
  io.token.proto.common.bank.OpenBankingStandard open_banking_standard = 7;  // Optional open banking standard
  repeated providerspecific.CredentialField initial_embedded_auth_fields = 8; // List of fields required for authorization.
  repeated MandatoryFieldV2 mandatory_fields = 9; // List of fields required in the initiation.
  repeated io.token.proto.common.bank.FieldFormatInformation fields_format_information = 10;

  // AIS
  bool supports_account_list = 12;                 // Connection allows for retrieval of accounts
  bool supports_account_details = 13;              // Connection allows for retrieval of account's details
  bool supports_account_balance = 14;              // Connection allows for retrieval of account's balance
  bool supports_transaction_list = 15;             // Connection allows for retrieval of account's transactions
  bool supports_transaction_details = 16;          // Connection allows for retrieval of account's transaction details
  bool supports_standing_order_list = 17;          // Connection allows for retrieval of account's standing order transactions
  bool supports_transactions_date_filter = 18;     // Connection allows for retrieval of account's transactions by date filter
  bool supports_delete_ais_consent = 35;           // Connection allows to delete ais consent
  bool supports_unattended_calls_limit = 36;       // Connection allows to get unattended calls limit

  // PIS
  bool requires_one_step_payment = 19;      // Connection only supports immediate redemption of payments
  repeated v2.common.LocalInstrument supported_local_instruments = 20; // A list of payment network types supported by the bank.
  bool supports_single_payment = 21;        // Connection supports single payment.
  bool supports_scheduled_payment = 22;     // Connection supports scheduled payments
  bool supports_standing_order = 23;        // Connection supports standing orders
  bool supports_return_refund_account = 24;
  bool supports_return_refund_account_holder_name = 25;

  // CAF
  bool supports_funds_confirmation = 26;    // Connections supports funds confirmation
  string operational_time = 27;             // bank's operational hours on a normal business day
  int32 transaction_history_limit = 28;     // limit the number of transaction history to be fetched

  // VRP
  bool supports_variable_recurring_payment = 29; //Connection supports variable recurring payments

  // Other
  bool supports_app_to_app_on_ios = 30;
  bool supports_app_to_app_on_android = 31;
  repeated io.token.proto.common.bank.MaintenanceWindow maintenance_window = 32;
  int32 rank = 33; // This will be used to sort banks by the value of rank.
  string bank_sub_group = 34;
}

message MandatoryFieldV2 {
  repeated Product products = 1;                // The products for which the mandatory field applies
  repeated string field_paths = 2;             // Path to mandatory field in the products initiation request
  repeated PaymentType payment_types = 3;      // Optional: If mandatory field applies for cross-border and/or same country transfers
  repeated v2.common.LocalInstrument local_instruments = 4;   // Optional: List of ASPSP's payment services the mandatory field applies for
  bool enforced = 5;                           // Check this field is present during token request validation (default: false)

  enum Product {
    AIS = 0;
    SIP = 1;
    VRP = 2;
    FDP = 3;
  }
  enum PaymentType {
    INTERNATIONAL = 0;
    DOMESTIC = 1;
  }
}