common.transfer
io.token.proto.common.transfer common/src/main/proto/transfer.proto
syntax = "proto3";
package io.token.proto.common.transfer;
option java_outer_classname = "TransferProtos";
option csharp_namespace = "Tokenio.Proto.Common.TransferProtos";
import "account.proto";
import "money.proto";
import "providerspecific.proto";
import "security.proto";
import "submission.proto";
import "token.proto";
import "transaction.proto";
import "transferinstructions.proto";
import "v2/payout.proto";
// A transfer record as persisted on the ledger.
message Transfer {
string id = 1; // Computed as the hash of the transfer payload.
string transaction_id = 2; // Bank transaction reference id.
int64 created_at_ms = 3;
TransferPayload payload = 4;
repeated io.token.proto.common.security.Signature payload_signatures = 5; // Signatures
io.token.proto.common.transaction.TransactionStatus status = 6;
string order_id = 7; // Currency Ledger order id.
Method method = 8; // Instant (currency ledger) or default
string execution_date = 9; // Execution date. Same as the value on the transfer token payload.
io.token.proto.common.transferinstructions.TransferEndpoint source = 10; // Optional; Contains iban and holder name
providerspecific.ProviderTransferDetails provider_details = 11;
string status_reason_information = 12; // Optional: provides detailed information on the status reason
io.token.proto.common.account.Refund refund = 14; // Optional: a refund object will be returned
io.token.proto.common.token.ActingAs acting_as = 15; // Provides information about sub-tpps
io.token.proto.common.v2.payout.TransferRefundStatus transfer_refund_status = 16 [deprecated=true]; // use refund_details.transfer_refund_status
Refund refund_details = 17; // Refund details, such as transfer refund status and settled refund amount
bool converted_to_future_dated_payment = 18; // whether transfer is from a auto single immediate payment to future dated payment conversion
ScaStatus sca_status = 19; // Optional: SCA Status object will be returned
enum Method {
DEFAULT = 0;
INSTANT = 1; // Use Token's Currency Ledger
}
enum ScaStatus {
UNKNOWN = 0;
APPLIED = 1;
EXEMPTED = 2;
}
}
message Refund {
io.token.proto.common.v2.payout.TransferRefundStatus transfer_refund_status = 1;
io.token.proto.common.money.Money settled_refund_amount = 2; // total amount of settled refunds (with status INITIATION_COMPLETED)
io.token.proto.common.money.Money remaining_refund_amount = 3; // remaining amount to be refunded (total transfer amount - total amount of non-failed refunds)
}
message BulkTransfer {
string id = 1; // Token ID computed as the hash of the token payload
string token_id = 2;
int64 created_at_ms = 3;
repeated Transaction transactions = 4; // Transactions for which the bank provides IDs and/or statuses.
// Might not be populated right away.
string total_amount = 5; // Total amount irrespective of currency. Used for redundancy check.
transferinstructions.TransferEndpoint source = 6;
message Transaction {
io.token.proto.common.token.BulkTransferBody.Transfer transfer = 1;
string transaction_id = 2;
transaction.TransactionStatus status = 3;
}
}
// A transfer payload that is being signed by the redeemer and the bank.
message TransferPayload {
string ref_id = 1; // Client assigned unique request id.
string token_id = 2; // Token id.
io.token.proto.common.money.Money amount = 3; // Amount and currency.
repeated io.token.proto.common.transferinstructions.TransferEndpoint destinations = 5 [deprecated=true];
string description = 6; // Optional
repeated io.token.proto.common.transferinstructions.TransferDestination transfer_destinations = 7; // Transfer destinations, sorted in priority order.
io.token.proto.common.transferinstructions.TransferInstructions.Metadata metadata = 8;
bool confirm_funds = 9;
}