{"templateId":"markdown","versions":[{"version":"v1.43","label":"v1.43 LTS","link":"/pt-br/products/custody/compliance/travel-rule/setup","default":true,"active":true,"folderId":"714bb270"},{"version":"v1.42","label":"v1.42 STS","link":"/pt-br/products/custody/v1.42/compliance/travel-rule/setup","default":false,"active":false,"folderId":"714bb270"},{"version":"v1.41","label":"v1.41 STS","link":"/pt-br/products/custody/v1.41/compliance/travel-rule/setup","default":false,"active":false,"folderId":"714bb270"},{"version":"v1.34","label":"v1.34 LTS","link":"/pt-br/products/custody/v1.34/compliance/travel-rule/setup","default":false,"active":false,"folderId":"714bb270"},{"version":"v1.26","label":"v1.26 LTS","link":"/pt-br/products/custody/v1.26/compliance/travel-rule/setup","default":false,"active":false,"folderId":"714bb270"},{"version":"v1.19","label":"v1.19 LTS","link":"/pt-br/products/custody/v1.19/compliance/travel-rule/setup","default":false,"active":false,"folderId":"714bb270"},{"version":"v1.15","label":"v1.15 LTS","link":"/pt-br/products/custody/v1.15/compliance/travel-rule/setup","default":false,"active":false,"folderId":"714bb270"}],"sharedDataIds":{"sidebar":"sidebar-@l10n/pt-BR/products/custody/@v1.15/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Travel Rule setup","description":"User guides, API reference, and support resources.","siteUrl":"https://docs.ripple.com","lang":"en-US"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"travel-rule-setup","__idx":0},"children":["Travel Rule setup"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This guide covers enabling Travel Rule compliance in ","Ripple Custody"," using Notabene."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Travel Rule (Notabene) and transaction screening (Chainalysis/Elliptic) can be used independently or together. For maximum compliance coverage, enable both—when both are enabled, transactions must pass both checks before execution."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"prerequisites","__idx":1},"children":["Prerequisites"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Complete these steps before configuring the integration:"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"ripple-custody-requirements","__idx":2},"children":["Ripple Custody"," requirements"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Ripple Custody"," v1.30 or later"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Compliance domain configured (contact your partner engineer if not already set up)"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"register-with-notabene","__idx":3},"children":["Register with Notabene"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Register as a VASP with Notabene and complete their onboarding process:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Create account"]}," at ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://notabene.id"},"children":["notabene.id"]}," and complete KYB verification"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Set up your DIDdoc"]}," for VASP discovery and PII encryption (see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.notabene.id/docs/did-setup"},"children":["Notabene's DID documentation"]},")"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Obtain API credentials"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["client_id"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["client_secret"]},") for both sandbox and production."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Notabene registration typically takes 1-2 weeks. Start this process early."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"information-to-gather","__idx":4},"children":["Information to gather"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Have the following ready before configuring the provider connection:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Item"},"children":["Item"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Notabene credentials"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["client_id"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["client_secret"]}," for sandbox and production"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["VASP DID"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your decentralized identifier (e.g., ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["did:web:your-domain.com"]},")"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Audience"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The Notabene API audience for your environment: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api.notabene.dev"]}," (sandbox) or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api.notabene.id"]}," (production)"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"configure-the-integration","__idx":5},"children":["Configure the integration"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"1-connect-your-notabene-account","__idx":6},"children":["1. Connect your Notabene account"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create the Notabene provider connection yourself using the ","Ripple Custody"," API. You submit your credentials directly to your ","Ripple Custody"," deployment. You don't share them with Ripple."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"POST /v1/domains/{domainId}/compliance/providers\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Request body"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"provider\": \"NOTABENE\",\n  \"credential\": {\n    \"clientId\": \"<your Notabene client_id>\",\n    \"clientSecret\": \"<your Notabene client_secret>\",\n    \"entityDid\": \"did:web:your-domain.com\",\n    \"audience\": \"https://api.notabene.dev\"\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This example connects the Notabene sandbox (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api.notabene.dev"]},"). Start with sandbox credentials, complete the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#verify-setup"},"children":["verification steps"]},", and connect with your production credentials and the production audience (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api.notabene.id"]},") when you're ready to go live."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Treat your Notabene ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["client_secret"]}," like any other secret: submit it only through this API. Don't share it with anyone, including Ripple support or partner engineers, and don't send it over email or chat."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Confirm the connection is active:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"GET /v1/domains/{domainId}/compliance/provider-connection\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The connection status must be ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CONNECTED"]},". If the connection is missing or paused, ","Ripple Custody"," skips Travel Rule checks and routes affected transfers to manual review."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"2-register-wallet-addresses","__idx":7},"children":["2. Register wallet addresses"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Counterparty VASPs confirm that a deposit address belongs to you before they send a Travel Rule message to it. ","Ripple Custody"," registers your wallet addresses with Notabene for you:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["When you first connect your Notabene account, ","Ripple Custody"," registers the addresses of all your existing wallets."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["When you create a new wallet, ","Ripple Custody"," registers its address as part of wallet creation."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You don't need to upload addresses yourself. To check what's registered, list the relationships for your domain as described at the end of this step."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you need to register additional addresses, for example addresses that ","Ripple Custody"," doesn't manage, Notabene provides two ways to do this:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Upload addresses in Notabene."]}," Use the Notabene Dashboard or Notabene's address upload API to register single addresses or a CSV of addresses. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://devx.notabene.id/docs/upload-addresses"},"children":["Upload CSV or register single address"]}," in the Notabene documentation."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Create a relationship."]}," A Notabene relationship links two DIDs. To declare address ownership, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["from"]}," is the wallet address expressed as a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["did:pkh"]}," DID and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["to"]}," is your VASP DID. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://devx.notabene.id/docs/confirm-address"},"children":["Confirm address"]}," and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://devx.notabene.id/docs/relationships"},"children":["Relationships"]}," in the Notabene documentation."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ripple Custody"," proxies the Notabene relationship API so you can create relationships without calling Notabene directly:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"POST /v1/domains/{domainId}/compliance/travel-rule/providers/NOTABENE/relationships\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Request body"]},":"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Required"},"children":["Required"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["from"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string (DID)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["DID of the source entity. Defaults to the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["entityDid"]}," from your provider connection."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["to"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string (DID)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["DID of the target entity."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Both fields are DIDs, not raw wallet addresses. To list the relationships registered for your domain, including the ownership proofs attached to each, call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v1/domains/{domainId}/compliance/travel-rule/providers/NOTABENE/relationships"]},". You can filter by ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["from"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["to"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["custodian"]}," DID."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"verify-setup","__idx":8},"children":["Verify setup"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After configuration, verify the integration:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Create a Travel Rule message"]}," using the API:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"POST /v1/domains/{domainId}/compliance/travel-rule/providers/NOTABENE/messages\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Notabene is the only supported Travel Rule provider, so the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["provider"]}," path segment is always ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["NOTABENE"]},". Confirm the response contains ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["suggestedIntentId"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["complianceTravelRuleId"]},"."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Submit PII"]}," if required for the transfer."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Create a transfer intent"]}," using the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["suggestedIntentId"]}," from step 1. Always create the Travel Rule message before the intent. ","Ripple Custody"," doesn't create a Notabene transfer from a transfer intent on its own."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Check the compliance decision"]}," — verify the transaction is approved, rejected, or flagged as expected."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Test incoming transfers"]}," — send a test transaction to a registered address and confirm:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Funds are quarantined"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Travel Rule check initiates"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Funds release when approved"]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related-documentation","__idx":9},"children":["Related documentation"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/custody/compliance/travel-rule/concept"},"children":["Travel Rule compliance"]}," — Concepts and architecture."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/custody/compliance/travel-rule/outgoing-no-pii"},"children":["Send assets without PII"]}," — Outgoing transfers when PII is not required."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/custody/compliance/travel-rule/outgoing-with-pii"},"children":["Send assets with PII"]}," — Outgoing transfers when PII is required."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/custody/compliance/travel-rule/incoming"},"children":["Receive assets with Travel Rule"]}," — Incoming transfer handling."]}]}]},"headings":[{"value":"Travel Rule setup","id":"travel-rule-setup","depth":1},{"value":"Prerequisites","id":"prerequisites","depth":2},{"value":"Ripple Custody requirements","id":"ripple-custody-requirements","depth":3},{"value":"Register with Notabene","id":"register-with-notabene","depth":3},{"value":"Information to gather","id":"information-to-gather","depth":3},{"value":"Configure the integration","id":"configure-the-integration","depth":2},{"value":"1. Connect your Notabene account","id":"1-connect-your-notabene-account","depth":3},{"value":"2. Register wallet addresses","id":"2-register-wallet-addresses","depth":3},{"value":"Verify setup","id":"verify-setup","depth":2},{"value":"Related documentation","id":"related-documentation","depth":2}],"frontmatter":{"seo":{"title":"Travel Rule setup"}},"lastModified":"2026-10-23T14:40:24.143Z","isTranslationFallback":true,"pagePropGetterError":{"message":"","name":""}},"slug":"/pt-br/products/custody/compliance/travel-rule/setup","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}