post_approvals_signups_by_id_reject
Calls POST /api/approvals/signups/{id}/reject as the signed-in person · REST reference
Reject a pending organization signup
Rejects the signup in the graph. Sends NO email — unlike the approve route, the applicant is never told, so any notification is out of band. The path id is the CONTACT USER id, as returned in each queue row's id. Answers { success } with NO data, unlike its sibling approve route, which returns the row. The DAL's own boolean result is discarded, so success: true is a literal written by the handler rather than a report from the store. Failures are answered as the approve route's are: no pending signup 404, a non-UUID id 400, an unreachable DAL 503, anything else 500.
Arguments
| Argument | Type | Description | |
|---|---|---|---|
idpath | string (uuid) | required | Contact user id of the signup, from the queue row's id. |
bodyJSON | object | The request body, as a JSON object. Its fields are listed below. |
Fields of body
| Field | Type | Description | |
|---|---|---|---|
notes | string | Rejection rationale recorded in the graph. Takes precedence over reason. | |
reason | string | Alias for notes, used only when notes is absent or falsy. |
Example call
A client sends this over the MCP session; Claude and other agents build it for you. The values are placeholders — the shape is real.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "post_approvals_signups_by_id_reject",
"arguments": {
"id": "11111111-1111-4111-8111-111111111111",
"body": {
"notes": "string",
"reason": "string"
}
}
}
}Result
On success (HTTP 200) the tool returns one text item holding the API's JSON, pretty-printed.
The signup was rejected. No row is returned.
{
"success": true
}Fields
| Field | Type | Description |
|---|---|---|
success | true | A literal, not the DAL's own success flag. |
When it fails
A failed call returns isError: true with the API's message as text. A change the person declines, or lets time out, also comes back this way and nothing changes.
400The request was malformed or failed a guard.
403Authenticated, but the caller holds none of the required permissions.
404No such resource — or none this caller may see.
What the model is shown
This is the tool exactly as the server lists it in tools/list. The description starts with the REST call it makes.
{
"name": "post_approvals_signups_by_id_reject",
"description": "POST /api/approvals/signups/{id}/reject — Rejects the signup in the graph. Sends NO email — unlike the approve route, the applicant is never told, so any notification is out of band. The path id is the CONTACT USER id, as returned in each queue row's `id`. Answers `{ success }` with NO `data`, unlike its sibling approve route, which returns the row. The DAL's own boolean result is discarded, so `success: true` is a literal written by the handler rather than a report from the store. Failures are answered as the approve route's are: no pending signup 404, a non-UUID id 400, an unreachable DAL 503, anything else 500.\n\nThis changes data. The person is asked to confirm it before it runs, and nothing happens if they decline.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Contact user id of the signup, from the queue row's `id`."
},
"body": {
"type": "string",
"description": "The JSON request body: { notes: string (Rejection rationale recorded in the graph.); reason: string (Alias for `notes`, used only when `notes` is absent or falsy.) }"
}
},
"required": [
"id"
]
},
"annotations": {
"readOnlyHint": false,
"destructiveHint": true,
"idempotentHint": false,
"openWorldHint": false
}
}