How It Works
- Secure Connection - Add your Notabene OAuth credentials and entity DID in Corsa. Credentials are encrypted and stored securely.
- Webhook Sync - Notabene notifies Corsa whenever a transfer is created or its status changes. Corsa then fetches the full transfer from the Notabene API.
- Transaction Matching - Corsa links each transfer to the matching transaction using the Notabene transfer ID or the transfer
ref. - Travel Rule Data - Corsa attaches the originator, beneficiary, counterparty VASPs, transfer type, and current status to that transaction.
- Alerts - Optional settings raise a Travel Rule alert when Notabene flags or rejects a transfer.
- 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.
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.
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...ordid: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
- Log in to your Notabene dashboard.
- Go to Settings → API Credentials and copy the Client ID and Client Secret.
- 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 isdid:web:your-entity.sandbox.notabene.id:il. - Note whether you are working in sandbox or production.
Step 2: Configure Polling
- Log in to Corsa.
- Go to Developers Hub → Integrations.
- Click Configure on the Notabene card.
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.
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.
Credentials are encrypted and stored securely. When you edit the integration later, leave the credential fields empty to keep the existing values.
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:- Navigate to Webhooks → Create endpoint.
- Paste the Webhook URL from Corsa.
- Enable these events:
notification.transferCreated,notification.transferStatusChanged,notification.transferAgentStatusChanged,tap.requirePresentationSatisfied. - Save the endpoint.
- Open the endpoint’s Advanced tab and copy the signing secret, which begins with
whsec_.
Step 6: Complete Setup in Corsa
- Return to the Notabene integration in Corsa.
- Open the Complete Setup step.
- Paste the signing secret, including the
whsec_prefix. - Save.
Step 7: Test the Integration
Create a test transfer in Notabene using aref 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.