Authorization requirements
Learn how to define and manage authorization requirements for transactions and transfers, including setting default policies and handling counterparty requests.
Your Authorization requirements
Define your Transaction Authorization Policies to specify what you need from other Agents, such as a travel rule message with personal information about the Originator.
Setting Default Policies
- Via Notabene Platform: Go to Policies -> Transactions -> Requirements tab and enable them. These will apply automatically to relevant transfers.
- Via API: Use
entity/:entityDID/policy. Contact support for custom policies.
Updating Specific Transfers
- Use PATCH
/entity/:entityDID/tx/:tx/policies. Contact support for custom policies.
Counterparty Authorization requirements
Part of the incoming Transfer request are the Initiator's authorization requirements. Any other counterparty in the transfer can request data or actions from other entities.
In Travel Rule and regular transfer cases, the Initiator may require you to confirm ownership of the address and that it is registered with the intended beneficiary. They might also require you to authorize the transfer before sending it on-chain.
Via webhooks
When you have webhooks enabled you can subscribe to tap.requireRelationshipConfirmationRequestedand tap.requireAuthorizationRequestedto get any authorization requirements from counterparties:
Via API polling for TAP policies
To GET the status of a transfer's authorization requirements, Notabene offers two API endpoints:
- Get All Policies:
GET {{url}}/entity/:entityDID/tx/:tx/tap-policies
Example response:
{
"policies": [
{
"@id": "6efcdb38-0ec3-4b24-b1bb-e7cd4c48b0d4",
"@type": "REQUIRE_RELATIONSHIP_CONFIRMATION",
"from": "did:pkh:bip122:000000000019d6689c085ae165831e93:bc1q7avt8qgn3st8gcklo23vmk262quf36247vacrg",
"for": "did:web:vasps.id:martin63:de",
"status": "COMPLETED",
"fromRole": "SettlementAddress",
"fromAgent": null,
"createdAt": "2025-12-11T08:45:08.636Z",
"updatedAt": "2025-12-11T08:46:23.114Z"
},
{
"@id": "90c045ea-b6c4-4d93-b0af-6f62d0eb7719",
"@type": "REQUIRE_PRESENTATION",
"from": "did:web:vasps.id:martin63:de",
"for": "did:web:vasps.id:martin73:jp",
"status": "COMPLETED",
"fromRole": "VASP",
"fromAgent": "originator",
"createdAt": "2025-12-11T08:45:08.740Z",
"updatedAt": "2025-12-11T08:46:43.562Z",
"presentationDefinition": "https://pd.notabene.id/ivms101/v2/DE-0.json"
},
{
"@id": "366ceea6-5e49-47e5-8057-5fa619524335",
"@type": "REQUIRE_PRESENTATION",
"from": "did:web:vasps.id:martin63:de",
"for": "did:web:vasps.id:martin73:jp",
"status": "COMPLETED",
"fromRole": "VASP",
"fromAgent": null,
"createdAt": "2025-12-11T08:45:10.245Z",
"updatedAt": "2025-12-11T08:46:43.586Z",
"presentationDefinition": "https://pd.notabene.id/ivms101/v2/JP-0.json"
}
]
}- Get Specific Policy:
GET {{url}}/entity/:entityDID/tx/:tx/tap-policies/:policyId
Example response::
{
"policy": {
"@id": "90c045ea-b6c4-4d93-b0af-6f62d0eb7719",
"@type": "REQUIRE_PRESENTATION",
"from": "did:web:vasps.id:martin63:de",
"for": "did:web:vasps.id:martin73:jp",
"status": "COMPLETED",
"fromRole": "VASP",
"fromAgent": "originator",
"createdAt": "2025-12-11T08:45:08.740Z",
"updatedAt": "2025-12-11T08:46:43.562Z",
"presentationDefinition": "https://pd.notabene.id/ivms101/v2/DE-0.json",
"encryptionKey": {
"id": "did:web:vasps.id:martin73:jp#notabene-pii",
"type": "JsonWebKey2020",
"controller": "did:web:vasps.id:martin73:jp",
"publicKeyJwk": {
"kty": "EC",
"crv": "P-256",
"x": "33NBb2XqTxR8_p-pkT52wQAG4JD2m724m3Kqv51Rs2s",
"y": "aTB9NrQK1NHybDmTzDRzlhOvmURoTV5CySpUvhroOzI"
}
}
}
}Updated 10 months ago
