Skip to content

Quickstart

Create and send your first CryptoSwift API call in one minute.

1. Get the API key

Every call to the CryptoSwift API must include an API Key.

  • Use our Self-Service Signup to create your account.
  • After completing your registration and verifying your email, you will find the Test API Key under Settings in the Client Dashboard.

Important: Self-Service Signup gives you automatic access to the platform, but initial access is limited to the Test Environment. After you create an account, we will reach out to provide Production Environment access separately. Use the Test Environment to build the full integration before going live.

2. Send a Travel Rule message

All API requests that require authentication must include the API key in the x-api-key header. Let's make the first request and send an outgoing Travel Rule message:

API_KEY='a70fcedf-416b-4f83-845c-a05aba0d7da4'
curl --location --request POST 'https://api-dev.cryptoswift.eu/transactions' \
  --header 'x-api-key: $API_KEY' \
  --header 'Content-Type: application/json' \
  --data-raw '{
      "asset": "BTC",
      "amount": "0.00341",
      "blockchainInfo": {
          "blockchain": "Bitcoin",
          "transactionHash": "cca7507897abc89628f450e8b1e0c6fca4ec3f7b34cccf55f3f531c659ff4d79",
          "origin": "17SkEw2md5avVNyYgj6RiXuQKNwkXaxFyQ",
          "destination": "1MLh2UVHgonJY4ZtsakoXtkcXDJ2EPU6RY",
          "destinationType": "CUSTODIAL"
      },
      "vaspInfo": {
          "beneficiaryVaspName": "SwiftExchange"
      },
      "originator": {
          "type": "NATURAL",
          "name": "Marwin Hillar",
          "accountNumber": "04143282398",
          "address": "Alexanderplatz 25, Berlin",
          "country": "Germany"
      },
      "beneficiary": {
          "type": "NATURAL",
          "name": "Hanne Nikol",
          "accountNumber": "1MLh2UVHgonJY4ZtsakoXtkcXDJ2EPU6RY"
      }
  }'

This request creates an outgoing Travel Rule transaction that will be:

  • Stored and made available for you within the CryptoSwift API
  • Forwarded to the beneficiary VASP

Sending Travel Rule messages for all outgoing crypto transactions is the minimum required integration with the CryptoSwift API.

Find out more

See the Outgoing transactions section to cover more detailed scenarios.

3. Set up Webhook notifications

Get notified about incoming Travel Rule messages and status updates for outgoing messages by setting up Webhook notifications.

Update your settings and set an endpoint URL that accepts Webhook notifications from CryptoSwift. You can also set the URL from the Client Dashboard under Settings.

curl --location --request PATCH 'https://api-dev.cryptoswift.eu/tenant/me' \
  --header 'x-api-key: $API_KEY' \ 
  --header 'Content-Type: application/json' \
  --data '{
    "webhookUrl": "https://my-backend-service.domain/cryptoswift-notifications"
  }'
Find out more

See the Webhooks and Incoming Transactions sections for more details.

4. Verify Self-Hosted wallets

If you receive funds from or send funds to self-hosted wallets, you can use our wallet verification widget to collect ownership proof from your customers. Our solution supports a wide range of verification methods across major blockchains.

Start by creating a new self-hosted wallet verification:

curl --location 'https://api-dev.cryptoswift.eu/wallet-verification/widget' \
  --header 'x-api-key: $API_KEY' \ 
  --header 'Content-Type: application/json' \
  --data '{
    "asset": "ETH",
    "blockchain": "Ethereum",
    "address": "0x3e069aeac00a0b098fcf1310eea3ea9a940325d3",
    "allowedFlows": [
        "VISUAL_PROOF",
        "SELF_DECLARED",
        "SIGNATURE_PROOF"
      ]
    }

You get back a JSON payload that includes the generated wallet verification token, URL, and verification ID.

{
    "token": "<generated-token-value>",
    "url": "https://wallet-dev.cryptoswift.eu?token=<generated-token-value>",
    "walletVerificationId": "a0d1c528-c3cb-4223-a36e-1e632c6de0ab"
}

You can share the URL directly with the user to complete the verification. You can also build more complex scenarios by integrating the widget into your existing user interface using our pre-built web component, or set up redirect flows that return the user to a specific URL after verification.

Once the user completes verification, the CryptoSwift API marks it as completed automatically and you are notified via a Webhook and a JavaScript event when integrating as a web component.

Find out more

See the Wallet Verification section for in-depth integration options.

That's it. Enjoy being Travel Rule compliant!

Next steps