# create_contract_payment

Create a new payment for a contract

Agent View of the PolicyLayer registry record for `create_contract_payment`. HTML page: https://policylayer.com/tools/adbutler/create-contract-payment

## Facts

- Tool: `create_contract_payment`
- Server: AdButler (`adbutler/mcp-server`) — https://policylayer.com/tools/adbutler.md
- Homepage: https://github.com/adbutler/mcp-server
- Risk category: Financial (Critical risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 3 (2 required)
- Recommended policy verdict: Approval-gated

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `note` | string | no | Payment note or description |
| `amount` | number | yes | Amount paid (can be negative for refunds) |
| `contract_id` | number | yes | Contract ID |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_contract_payment",
    "arguments": {
      "amount": 0,
      "contract_id": 0
    }
  }
}
```

## Why create_contract_payment is rated Critical

This tool explicitly creates a financial payment tied to a contract, which constitutes a financial obligation. Misuse could result in unauthorized payments being initiated, making this a critical financial risk.

From the tool's own definition: "'Create a new payment for a contract'"

## Use case

AI agents use create_contract_payment to commit financial operations through AdButler, usually the final step of a payment, billing, or trading workflow. A call moves real money.

## Recommended policy (PolicyLayer)

Verdict: **Approval-gated**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches AdButler:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "create_contract_payment": {
      "deny_if": [
        {
          "conditions": [],
          "on_deny": "Requires human approval."
        }
      ]
    }
  }
}
```

## Other tools on AdButler (621)

- `archive_advertiser` — Destructive — https://policylayer.com/tools/adbutler/archive-advertiser.md
- `archive_channel` — Destructive — https://policylayer.com/tools/adbutler/archive-channel.md
- `archive_contract` — Destructive — https://policylayer.com/tools/adbutler/archive-contract.md
- `archive_email_zone` — Destructive — https://policylayer.com/tools/adbutler/archive-email-zone.md
- `archive_publisher` — Destructive — https://policylayer.com/tools/adbutler/archive-publisher.md
- `bulk_upload_remove_data_list` — Destructive — https://policylayer.com/tools/adbutler/bulk-upload-remove-data-list.md
- `bulk_upload_replace_user_db` — Destructive — https://policylayer.com/tools/adbutler/bulk-upload-replace-user-db.md
- `campaign_bulk_delete_catalog_ad_items` — Destructive — https://policylayer.com/tools/adbutler/campaign-bulk-delete-catalog-ad-items.md
- `cancel_signature_request` — Destructive — https://policylayer.com/tools/adbutler/cancel-signature-request.md
- `delete_advertiser` — Destructive — https://policylayer.com/tools/adbutler/delete-advertiser.md
- `delete_archived_campaign` — Destructive — https://policylayer.com/tools/adbutler/delete-archived-campaign.md
- `delete_archived_channel` — Destructive — https://policylayer.com/tools/adbutler/delete-archived-channel.md
- `delete_archived_contract` — Destructive — https://policylayer.com/tools/adbutler/delete-archived-contract.md
- `delete_audience` — Destructive — https://policylayer.com/tools/adbutler/delete-audience.md
- `delete_audio_creative` — Destructive — https://policylayer.com/tools/adbutler/delete-audio-creative.md
- `delete_beacon_signing_key` — Destructive — https://policylayer.com/tools/adbutler/delete-beacon-signing-key.md
- `delete_bidder` — Destructive — https://policylayer.com/tools/adbutler/delete-bidder.md
- `delete_campaign` — Destructive — https://policylayer.com/tools/adbutler/delete-campaign.md
- `delete_campaign_assignment` — Destructive — https://policylayer.com/tools/adbutler/delete-campaign-assignment.md
- `delete_catalog_ad_item` — Destructive — https://policylayer.com/tools/adbutler/delete-catalog-ad-item.md
- `delete_catalog_zone` — Destructive — https://policylayer.com/tools/adbutler/delete-catalog-zone.md
- `delete_channel` — Destructive — https://policylayer.com/tools/adbutler/delete-channel.md
- `delete_channel_zone_assignment` — Destructive — https://policylayer.com/tools/adbutler/delete-channel-zone-assignment.md
- `delete_contact` — Destructive — https://policylayer.com/tools/adbutler/delete-contact.md
- `delete_contract` — Destructive — https://policylayer.com/tools/adbutler/delete-contract.md
- `delete_contract_document` — Destructive — https://policylayer.com/tools/adbutler/delete-contract-document.md
- `delete_contract_payment` — Destructive — https://policylayer.com/tools/adbutler/delete-contract-payment.md
- `delete_contract_template` — Destructive — https://policylayer.com/tools/adbutler/delete-contract-template.md
- `delete_creative` — Destructive — https://policylayer.com/tools/adbutler/delete-creative.md
- `delete_custom_html_ad_item` — Destructive — https://policylayer.com/tools/adbutler/delete-custom-html-ad-item.md
- …and 591 more: https://policylayer.com/tools/adbutler.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=adbutler · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/adbutler
