Skip to main content
Connect your Notabene account to Corsa to bring Travel Rule data into the platform. Corsa attaches originator, beneficiary, and counterparty VASP information to the matching transaction, and can raise alerts when Notabene flags or rejects a transfer. Notabene remains your system of record for Travel Rule messaging. Corsa reads from Notabene — it does not create, send, or update Travel Rule messages.

How It Works

  1. Secure Connection - Add your Notabene OAuth credentials and entity DID in Corsa. Credentials are encrypted and stored securely.
  2. Webhook Sync - Notabene notifies Corsa whenever a transfer is created or its status changes. Corsa then fetches the full transfer from the Notabene API.
  3. Transaction Matching - Corsa links each transfer to the matching transaction using the Notabene transfer ID or the transfer ref.
  4. Travel Rule Data - Corsa attaches the originator, beneficiary, counterparty VASPs, transfer type, and current status to that transaction.
  5. Alerts - Optional settings raise a Travel Rule alert when Notabene flags or rejects a transfer.
  6. Scheduled Sync - Corsa also polls Notabene on a schedule, so transfers still arrive if a webhook is missed.

What Gets Synced

Travel Rule Data on Transactions

When a transfer is matched, Corsa attaches the Travel Rule details to the transaction:
  • Originator name and account, and the originating VASP.
  • Beneficiary name and account, and the beneficiary VASP.
  • Intermediary VASPs and agents, when Notabene provides them.
  • Transfer type and current Travel Rule status.
  • The policy evaluations that produced the current outcome.
  • The Notabene transfer ID, stored on the transaction’s integrations.
Travel Rule data is clearly attributed to Notabene so analysts can tell it apart from transaction data you ingested yourself.

Alerts

When enabled, Corsa creates a Travel Rule alert on the matching transaction: Each alert is linked to the matching transaction, so analysts can open the transaction, review the counterparty data, and escalate to a case from the same place.
Corsa creates at most one alert per transfer per outcome. A transfer that is flagged and later rejected produces one alert of each type, not one per status change.

Transaction Matching

Travel Rule data only appears once Corsa can tell which transaction a transfer belongs to. A transfer matches if either of the following is true: To ensure matching, set the Notabene transfer ref to the same value your Corsa transaction uses as referenceId — normally your own internal transaction identifier. If you already know the Notabene transfer ID when you ingest the transaction, you can set integrations.notabeneTransferId directly instead. Order does not matter. If the transfer reaches Notabene before the transaction exists in Corsa, Corsa links it as soon as the transaction is ingested, and the other way round.
Do not use the Corsa internal transaction UUID as the Notabene ref. The ref is shared with the counterparty VASP, and Corsa does not accept an internal UUID as a link.
Alerts require a matched transaction. If a flagged or rejected transfer arrives before the Corsa transaction exists, Corsa keeps it unmatched and retries. When the matching transaction is ingested later, Corsa links the transfer, attaches Travel Rule data, and creates the alert at that point (if the alert setting is enabled).

Status Mapping

Corsa stores the Notabene status on the transaction and uses it to decide whether an alert is raised. Statuses update as Notabene progresses a transfer, so a transfer that is authorized and later frozen updates in Corsa without any action from you.

Prerequisites

  • A Notabene account with access to Settings → API Credentials and permission to configure webhooks.
  • Your Notabene VASP DID, in the form did:ethr:0x... or did:web:.... You can read it from the dashboard URL — it is the path segment after /dashboard/. Corsa’s setup form labels this Entity DID.
  • Owner access to the Corsa application.

Setting Up the Notabene Integration

Step 1: Get Your Credentials from Notabene

  1. Log in to your Notabene dashboard.
  2. Go to Settings → API Credentials and copy the Client ID and Client Secret.
  3. Find your VASP DID in the Notabene dashboard URL. Open any page in the dashboard — the DID is the path segment immediately after /dashboard/. For example, in .../dashboard/did:web:your-entity.sandbox.notabene.id:il/transactions, the DID is did:web:your-entity.sandbox.notabene.id:il.
  4. Note whether you are working in sandbox or production.
Notabene shows the client secret only when the credentials are generated. Copy it before leaving the screen — if you lose it, you will need to generate new credentials.

Step 2: Configure Polling

  1. Log in to Corsa.
  2. Go to Developers Hub → Integrations.
  3. Click Configure on the Notabene card.
In Polling Configuration, set the Polling Interval — how often Corsa checks Notabene for newly created transfers. The default is 10 minutes. Webhooks deliver transfers and status changes in real time, so polling is a backstop that picks up anything a webhook did not deliver.

Step 3: Configure Alert Settings

In Alert Settings, choose which Notabene outcomes create a Corsa alert:
  • Create alerts for flagged transfers - Raises an alert when Notabene flags a transfer for review. Enabled by default with Medium priority.
  • Create alerts for rejected transfers - Raises an alert when a transfer is rejected, frozen, or a revert is requested. Disabled by default, with High priority when enabled.
You can change these settings at any time without repeating the rest of the setup.

Step 4: Authentication

In Authentication, provide the values you collected in Step 1:
  • Client ID and Client Secret from Notabene.
  • Entity DID — your Notabene VASP DID.
  • Environment — Sandbox, EU Production, or US Production.
Save the integration.
Credentials are encrypted and stored securely. When you edit the integration later, leave the credential fields empty to keep the existing values.
The integration remains in pending setup until you finish Step 6. Until then Corsa has no signing secret to verify webhook signatures with, so Notabene deliveries are rejected.

Step 5: Create the Webhook in Notabene

After you save, the Notabene integration card in Corsa shows the Webhook URL and the events to enable. In your Notabene dashboard:
  1. Navigate to Webhooks → Create endpoint.
  2. Paste the Webhook URL from Corsa.
  3. Enable these events: notification.transferCreated, notification.transferStatusChanged, notification.transferAgentStatusChanged, tap.requirePresentationSatisfied.
  4. Save the endpoint.
  5. Open the endpoint’s Advanced tab and copy the signing secret, which begins with whsec_.
Copy the signing secret before leaving the page. If you lose it, regenerate it in Notabene and repeat this step.

Step 6: Complete Setup in Corsa

  1. Return to the Notabene integration in Corsa.
  2. Open the Complete Setup step.
  3. Paste the signing secret, including the whsec_ prefix.
  4. Save.
Corsa uses this secret to verify that incoming webhooks genuinely came from Notabene. The integration is now active.

Step 7: Test the Integration

Create a test transfer in Notabene using a ref that matches an existing Corsa transaction referenceId. In Corsa, confirm that:
  • The Travel Rule section appears on the matching transaction.
  • Originator, beneficiary, and VASP details are populated.
  • The transfer status matches Notabene.

API Access

Use the Corsa API when you need to pre-link a transaction to a Notabene transfer or read the synced data. See the Ingesting Operations guide for the full request format, and Managing Transactions for reading and updating transactions.

Troubleshooting


Corsa offers native integrations with leading compliance, blockchain analytics, and custody providers. See all integrations or schedule a demo to see how Corsa fits into your stack.