Withdraw an engagement request you raised
withdraw_engagementUse this when the user wants to CANCEL an engagement request (an introduction) they already raised and that is still waiting on the other side. Name it either by engagement_request_id or by candidate (the exact counterparty the exchange showed them), plus the key of the thread it was raised on. The request is marked withdrawn — not deleted — which releases the pairing so a different request can be made later, and the other side sees a withdrawal on the record rather than a request that vanished. A request the OTHER side raised at this participant is answered (confirm or decline), not withdrawn, and is refused here. The call is staged: a dry run sends nothing, and the confirmed call is bound to the exact payload that dry run returned. Call once with dry_run=true to get the exact payload and a confirmation_token; call again with the same arguments plus that token to send. A token that does not match the payload is refused and nothing is sent.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"request_id": "<request_id>",
"key": "<key>"
},
"name": "withdraw_engagement"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | The msgid (or answer_key) of the thread the engagement request was raised on. | |
| reason | No | Optional reason in the user's own words, recorded with the withdrawal. | |
| dry_run | No | true returns the exact withdrawal and a confirmation_token, and withdraws nothing. | |
| candidate | No | OR the exact counterparty name the request was raised against. Provide this or engagement_request_id — never guessed. | |
| request_id | Yes | Your own idempotency key for this withdrawal; quote it as the receipt. | |
| confirmation_token | No | The token from the dry run, for the confirmed withdrawal. | |
| engagement_request_id | No | The id of the live request to withdraw, as get_exchange_answer reports it under state.pairings[].pending_request. |