common.alias
io.token.proto.common.alias common/src/main/proto/alias.proto
syntax = "proto3";
package io.token.proto.common.alias;
option java_outer_classname = "AliasProtos";
option csharp_namespace = "Tokenio.Proto.Common.AliasProtos";
import "extensions/field.proto";
// An Alias refers to a member in a "human readable" way.
// Normally, an alias must be verified before it's useful.
// E.g., payments to { EMAIL, "sandy@example.com" } work only if
// some member has verified receiving an email at that address.
message Alias {
Type type = 1; // For example, EMAIL.
string value = 2 [(io.token.proto.extensions.field.redact) = true]; // For example, "sandy@example.com"
string realm = 3 [deprecated = true]; // For example, "token"
string realm_id = 4; // member_id of existing Member
enum Type {
INVALID = 0;
// Unknown type. Useful for UI: For example, if user wants to pay "sandy@example.com",
// let server determine that's an EMAIL alias.
UNKNOWN = 1;
EMAIL = 2; // Email address. For example, "sandy@example.com".
PHONE = 3; // Phone number.
DOMAIN = 4; // Business web domain. Please contact Token to verify.
USERNAME = 5 [deprecated = true];
BANK = 6; // for banks only
CUSTOM = 7; // Custom type, for instance a bank specific customer ID.
EIDAS = 8; // The unique PSD2 auth number of the company that provides eIDAS certificate
}
}
// When the user verifies an alias, e.g. by entering a code,
// the verification may succeed or fail in one of several ways.
enum VerificationStatus {
INVALID = 0;
UNKNOWN = 1;
SUCCESS = 2;
INCORRECT_CODE = 3;
EXPIRED_CODE = 4;
TOO_MANY_CODE_ATTEMPTS = 5; // reached the limit of attempts to enter a specific code
}
// Payload containing a member ID and an alias, used in alias verification.
message VerifyAliasPayload {
string member_id = 1;
Alias alias = 2;
}