pub struct TravelRule {
pub beneficiary: Option<TravelRuleBeneficiary>,
pub is_intermediary: Option<bool>,
pub is_self: Option<bool>,
pub originator: Option<TravelRuleOriginator>,
}Expand description
Required Travel Rule fields differ by region. These requirements are determined based on which Coinbase entity the customer has signed the service agreement for.
JSON schema
{
"description": "Required Travel Rule fields differ by region. These requirements are determined based on which Coinbase entity the customer has signed the service agreement for.",
"examples": [
{
"beneficiary": {
"address": {
"city": "Paris",
"countryCode": "FR",
"line1": "456 Oak Ave",
"postCode": "75001"
},
"name": "Jane Smith",
"walletType": "custodial"
},
"isIntermediary": true,
"isSelf": false,
"originator": {
"address": {
"city": "Luxembourg",
"countryCode": "LU",
"line1": "123 Main St",
"line2": "Unit 201",
"postCode": "L-1234"
},
"financialInstitution": "PayPal, Inc.",
"name": "John Doe",
"vasp": {
"address": {
"city": "San Francisco",
"countryCode": "US",
"line1": "123 Market St",
"line2": "Suite 400",
"postCode": "94105",
"state": "California"
},
"identifier": "5493001KJTIIGC8Y1R17",
"name": "Fidelity Digital Asset Services, LLC"
}
}
}
],
"type": "object",
"properties": {
"beneficiary": {
"$ref": "#/components/schemas/TravelRuleBeneficiary"
},
"isIntermediary": {
"description": "Indicates whether Coinbase is being used as an intermediary Virtual Asset Service Provider (VASP) to send crypto on behalf of your customer.\n\n**Background:**\n\nThe Travel Rule (FATF Recommendation 16) requires VASPs to share originator and beneficiary information for virtual asset transfers. When Coinbase acts as an intermediary, additional Travel Rule data must be provided to satisfy compliance requirements.\n\n**Set to `true` when:**\n\n- Your organization is a VASP using Coinbase to send crypto **on behalf of your end customer**\n- In this scenario, Coinbase acts as an intermediary in the transfer chain and handles Travel Rule data exchange with the beneficiary VASP\n\n**Set to `false` (or omit) when:**\n\n- You are transferring funds directly from your own Coinbase account, where **Coinbase is your primary VASP** rather than an intermediary for another institution\n\n**Impact on required fields:**\n\nWhen `isIntermediary` is `true`, you must provide the `originator` object with details about the original sender, including:\n- Originator name\n- Originator address\n- Your VASP information (`virtualAssetServiceProvider` object with `name`, `address`, and `identifier`)\n",
"examples": [
true
],
"type": "boolean"
},
"isSelf": {
"description": "Indicates whether the user attests that the receiving wallet belongs to them.",
"examples": [
true
],
"type": "boolean"
},
"originator": {
"$ref": "#/components/schemas/TravelRuleOriginator"
}
}
}Fields§
§beneficiary: Option<TravelRuleBeneficiary>§is_intermediary: Option<bool>Indicates whether Coinbase is being used as an intermediary Virtual Asset Service Provider (VASP) to send crypto on behalf of your customer.
**Background:**
The Travel Rule (FATF Recommendation 16) requires VASPs to share originator and beneficiary information for virtual asset transfers. When Coinbase acts as an intermediary, additional Travel Rule data must be provided to satisfy compliance requirements.
**Set to `true` when:**
- Your organization is a VASP using Coinbase to send crypto **on behalf of your end customer**
- In this scenario, Coinbase acts as an intermediary in the transfer chain and handles Travel Rule data exchange with the beneficiary VASP
**Set to `false` (or omit) when:**
- You are transferring funds directly from your own Coinbase account, where **Coinbase is your primary VASP** rather than an intermediary for another institution
**Impact on required fields:**
When `isIntermediary` is `true`, you must provide the `originator` object with details about the original sender, including:
- Originator name
- Originator address
- Your VASP information (`virtualAssetServiceProvider` object with `name`, `address`, and `identifier`)is_self: Option<bool>Indicates whether the user attests that the receiving wallet belongs to them.
originator: Option<TravelRuleOriginator>Implementations§
Source§impl TravelRule
impl TravelRule
pub fn builder() -> TravelRule
Trait Implementations§
Source§impl Clone for TravelRule
impl Clone for TravelRule
Source§fn clone(&self) -> TravelRule
fn clone(&self) -> TravelRule
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TravelRule
impl Debug for TravelRule
Source§impl Default for TravelRule
impl Default for TravelRule
Source§impl<'de> Deserialize<'de> for TravelRule
impl<'de> Deserialize<'de> for TravelRule
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<&TravelRule> for TravelRule
impl From<&TravelRule> for TravelRule
Source§fn from(value: &TravelRule) -> Self
fn from(value: &TravelRule) -> Self
Converts to this type from the input type.
Source§impl From<TravelRule> for TravelRule
impl From<TravelRule> for TravelRule
Source§fn from(value: TravelRule) -> Self
fn from(value: TravelRule) -> Self
Converts to this type from the input type.
Source§impl Serialize for TravelRule
impl Serialize for TravelRule
Source§impl TryFrom<TravelRule> for TravelRule
impl TryFrom<TravelRule> for TravelRule
Source§type Error = ConversionError
type Error = ConversionError
The type returned in the event of a conversion error.
Source§fn try_from(value: TravelRule) -> Result<Self, ConversionError>
fn try_from(value: TravelRule) -> Result<Self, ConversionError>
Performs the conversion.
Auto Trait Implementations§
impl Freeze for TravelRule
impl RefUnwindSafe for TravelRule
impl Send for TravelRule
impl Sync for TravelRule
impl Unpin for TravelRule
impl UnsafeUnpin for TravelRule
impl UnwindSafe for TravelRule
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more