common.providerspecific.nextgenpsd2

io.token.proto.common.providerspecific.nextgenpsd2 common/src/main/proto/provider/nextgenpsd2.proto


syntax = "proto3";
package io.token.proto.common.providerspecific.nextgenpsd2;
option java_outer_classname = "NextGenPsd2";
option csharp_namespace = "Tokenio.Proto.Common.ProviderSpecific.NextGenPsd2";

import "extensions/field.proto";
import "extensions/message.proto";

message NextGenPsd2AccountDetails {
  option (io.token.proto.extensions.message.redact) = true;
  string iban = 1 [deprecated = true]; // use AccountDetails.AccountIdentifier.Iban
  string bban = 2 [deprecated = true]; // use AccountDetails.AccountIdentifier.Bban
  string msisdn = 3 [deprecated = true]; // use AccountDetails.AccountIdentifier.Msisdn
  string currency = 4;
  string product = 5;
  string cash_account_type = 6;  // ExternalCashAccountType1Code from ISO 20022.
  string bic = 7 [deprecated = true]; // use AccountDetails.bic field
  string linked_accounts = 8;
  string usuage = 9 [deprecated = true]; // use usage field
  string details = 10 [(io.token.proto.extensions.field.redact) = true];
  string usage = 11;
}

message NextGenPsd2TransactionDetails {
  string entry_reference = 1; // Is the identification of the transaction as used e.g. for reference for deltafunction on application level. The same identification as for example used within camt.05x messages.
  string end_to_end_id = 2;
  string mandate_id = 3;
  string check_id = 4;
  string creditor_id = 5;
  string value_date = 6;
  repeated ReportExchangeRate currency_exchange = 7;
  string creditor_name = 8 [(io.token.proto.extensions.field.redact) = true];
  AccountReference creditor_account = 9;
  string ultimate_creditor = 10 [(io.token.proto.extensions.field.redact) = true];
  string debtor_name = 11 [(io.token.proto.extensions.field.redact) = true];
  AccountReference debtor_account = 12;
  string ultimate_debtor = 13 [(io.token.proto.extensions.field.redact) = true];
  string remittance_information_structured = 14;
  string additional_information = 15;
  string purpose_code = 16;  // ExternalPurpose1Code from ISO 20022.
  string bank_transaction_code = 17 [deprecated = true]; // Use Transaction.BankTransactionCode.Domain. Bank transaction code as used by the ASPSP and using the sub elements of this structured code defined by ISO 20022.
  string proprietary_bank_transaction_code = 18 [deprecated = true]; // Use Transaction.BankTransactionCode.Proprietary. Proprietary bank transaction code as used within a community or within an ASPSP e.g. for MT94x based transaction reports.
}

message NextGenPsd2TransferMetadata {
  string end_to_end_identification = 1; // Has specific format requirements in the case of Croatian banks
  string remittance_information_structured = 2; // Has specific format requirements in the case of Croatian banks
  string creditor_agent = 3;  // BICFI, example: AAAADEBBXXX
  string creditor_agent_name = 4;
}

message NextGenPsd2StandingOrderMetadata {
  string end_to_end_identification = 1; // Has specific format requirements in the case of Croatian banks
  string creditor_agent_name = 2;
}

message ReportExchangeRate {
  string source_currency = 1;
  string exchange_rate = 2;
  string unit_currency = 3;
  string target_currency = 4;
  string quotation_date = 5;
  string contract_identification = 6;
}

message AccountReference {
  option (io.token.proto.extensions.message.redact) = true;
  string iban = 1;
  string bban = 2;
  string pan = 3;
  string masked_pan = 4;
  string msisdn = 5;
  string currency = 6;
}