/
Notabene

Notabene

image-20250305-220417.png

Notabene is a Travel Rule VASP network provider. Website: https://notabene.id/

Notabene provides secure infrastructure enabling Operators to efficiently exchange customer identification data and comply with global Travel Rule regulations.

Overview

  1. Create an incoming webhook to CAS for Notabene notifications.

  2. Create an account at Notabene.

  3. Locate and secure the Notabene API keys.

  4. Choose Notabene manual/automatic transfers.

  5. Configure the remaining CAS settings.

  6. Test it.


1. Incoming Webhook Endpoints

Notabene will need to communicate with CAS. It does so via webhooks. You’ll need to expose the CAS REST API to the Notabene servers.

Choose a method to serve the TLS/SSL endpoints:

  1. Use free NGINX and Let’s Encrypt: https://generalbytes.atlassian.net/l/cp/nfb1x7Xd

    • A detailed NGINX server block is explained below.

  2. Use non-free Cloudflare: https://generalbytes.atlassian.net/l/cp/V4Me1X2b

  • Notabene must be able to contact CAS at: https://[master IP]:7743/extensions/notabene/webhooks

  • The exposed endpoint must be served using the default TLS port 443 (no other port can be specified).

  • The most efficient way to do this is to deploy a subdomain that points to the internal CAS webhook.

  • Further secure your your endpoint by restricting access to the endpoint from only these IPs:

After you have decided upon & exposed the endpoint, enable it:

  1. Create the config file /batm/config/notabene with: sudo nano /batm/config/notabene

  2. Add the following required setting:

webhooksEnabled=true
  • Save the file (Ctrl+X, “y”, do not change the filename)


2. Notabene API keys

Generate new API credentials for your account.

  • Navigate to NOTABENE > API CREDENTIALS > GENERATE API CREDENTIALS

image-20250226-153454.png
  • Confirm Credential generation.

Locate and save your Client ID, Client Secret, and Your VASP DID:

image-20250307-191005.png

Transfer the API Key data to the Notabene Travel Rule Provider in CAS:

image-20250226-100516.png

Transfer [Your VASP DID] to your own CAS Travel Rule VASP setting:

image-20241217-150328.png

3. Notabene account configuration

Set the Webhook

Notabene must be told how to contact your CAS. Configure the "Multi-Message Webhook" setting to match the endpoint you created in Step 1 (above).

  • Example from Step 1 (above): https://notabene.yourcasdomain.com/my/webhook/path

  • The webhook should be live/awake/usable at this point.

Navigate to NOTABENE > SETTINGS > Multi-Message Webhook

image-20250226-141157.png

Add your Endpoint

image-20250226-141256.png

Webhook Endpoints

  • Endpoint URL is required (determined in Step 1 above).

  • Description is optional.

  • Enable notification.transactionUpdated (mandatory for Buy transactions).

  • The other two notifications are for Sell transactions. They will be implemented later, but enable them all now to avoid problems down the road.

image-20250226-155230.png

Rules for incoming & outgoing transfers

Navigate to NOTABENE > RULES > OUTBOUND

Choose Automatically accept all outgoing transfers or Manually review all outgoing transfers.

  • Automatically accept all outgoing transfers will approve and send all transfers automatically to the counterparty VASP.

    • Alternate method: set automaticallyApproveOutgoingTransfers=true in /batm/config/notabene

  • Manually review all outgoing transfers forces manual approval for all transfers.

image-20250226-141452.png
image-20250226-141611.png

CAS Console Configuration

Some Notabene settings are located in the file /batm/config/notabene

  • automaticallyApproveOutgoingTransfers=true/false (default = false): override the automatic approval setting on the Notabene website. See: Notabene | Rules for incoming & outgoing transfers

  • webhooksEnabled=true webhook enabled -> this is mandatory for VASP response


NGINX Server Block

This NGINX server block will expose the webhooks to: https://yourcasdomain.com/notabene-wh

  • Replace yourcasdomain.com with your actual domain.

  • Replace 10.3.2.1 with the actual master service IP reported in sudo /batm/batm-manage info

  • For specific NGINX instructions, see: NGINX as a Proxy Server

server { listen 443 ssl; server_name notabene.yourcasdomain.com; ssl_certificate /etc/letsencrypt/live/yourcasdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/yourcasdomain.com/privkey.pem; access_log /var/log/nginx/notabene_access.log; error_log /var/log/nginx/notabene_error.log; location /notabene-wh { proxy_pass https://10.3.2.1:7743/extensions/notabene/webhooks; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }

If you prefer to implement a subdomain (i.e. Cloudflare), modify location as follows:

location / {
  • Create your CNAME (e.g. “notabene-wh”) pointing to root, and

  • steer the Notabene webhooks to: https://notabene-wh.yourcasdomain.com

Related content

Copyright © 2020-2025 General Bytes USA LLC