# generate_invoice_qr_code

Generate a QR code for an invoice

Agent View of the PolicyLayer registry record for `generate_invoice_qr_code`. HTML page: https://policylayer.com/tools/paypal/generate-invoice-qr-code

## Facts

- Tool: `generate_invoice_qr_code`
- Server: PayPal (`@modelcontextprotocol/server-paypal`) — https://policylayer.com/tools/paypal.md
- Install: `npx -y @modelcontextprotocol/server-paypal`
- Homepage: https://github.com/paypal/paypal-mcp-server
- Risk category: Read (Low risk)
- Registry record: grade F, identity verified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Allowed

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

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "generate_invoice_qr_code",
    "arguments": {}
  }
}
```

## Why generate_invoice_qr_code is rated Low

Generating a QR code is a read/render operation: it encodes existing invoice data into a QR format without moving money, modifying records, or executing transactions. The worst-case misuse is leaking an invoice link, hence low severity. Confidence is slightly reduced because some implementations could trigger invoice delivery or status changes, but the description gives no indication of that.

From the tool's own definition: "'Generate a QR code for an invoice' — this creates a derived representation (QR image) of an existing invoice for display/sharing purposes, with no financial transaction or data mutation implied"

## Use case

AI agents call generate_invoice_qr_code to retrieve information from PayPal without modifying anything. It is typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.

## Recommended policy (PolicyLayer)

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

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "generate_invoice_qr_code": {}
  }
}
```

## Other tools on PayPal (29)

- `cancel_sent_invoice` — Destructive — https://policylayer.com/tools/paypal/cancel-sent-invoice.md
- `accept_dispute_claim` — Financial — https://policylayer.com/tools/paypal/accept-dispute-claim.md
- `cancel_subscription` — Financial — https://policylayer.com/tools/paypal/cancel-subscription.md
- `create_invoice` — Financial — https://policylayer.com/tools/paypal/create-invoice.md
- `create_order` — Financial — https://policylayer.com/tools/paypal/create-order.md
- `create_refund` — Financial — https://policylayer.com/tools/paypal/create-refund.md
- `create_subscription` — Financial — https://policylayer.com/tools/paypal/create-subscription.md
- `pay_order` — Financial — https://policylayer.com/tools/paypal/pay-order.md
- `send_invoice` — Financial — https://policylayer.com/tools/paypal/send-invoice.md
- `get_dispute` — Read — https://policylayer.com/tools/paypal/get-dispute.md
- `get_invoice` — Read — https://policylayer.com/tools/paypal/get-invoice.md
- `get_order` — Read — https://policylayer.com/tools/paypal/get-order.md
- `get_refund` — Read — https://policylayer.com/tools/paypal/get-refund.md
- `get_shipment_tracking` — Read — https://policylayer.com/tools/paypal/get-shipment-tracking.md
- `list_disputes` — Read — https://policylayer.com/tools/paypal/list-disputes.md
- `list_invoices` — Read — https://policylayer.com/tools/paypal/list-invoices.md
- `list_products` — Read — https://policylayer.com/tools/paypal/list-products.md
- `list_subscription_plans` — Read — https://policylayer.com/tools/paypal/list-subscription-plans.md
- `list_transactions` — Read — https://policylayer.com/tools/paypal/list-transactions.md
- `show_product_details` — Read — https://policylayer.com/tools/paypal/show-product-details.md
- `show_subscription_details` — Read — https://policylayer.com/tools/paypal/show-subscription-details.md
- `show_subscription_plan_details` — Read — https://policylayer.com/tools/paypal/show-subscription-plan-details.md
- `create_product` — Write — https://policylayer.com/tools/paypal/create-product.md
- `create_shipment_tracking` — Write — https://policylayer.com/tools/paypal/create-shipment-tracking.md
- `create_subscription_plan` — Write — https://policylayer.com/tools/paypal/create-subscription-plan.md
- `send_invoice_reminder` — Write — https://policylayer.com/tools/paypal/send-invoice-reminder.md
- `update_plan` — Write — https://policylayer.com/tools/paypal/update-plan.md
- `update_product` — Write — https://policylayer.com/tools/paypal/update-product.md
- `update_subscription` — Write — https://policylayer.com/tools/paypal/update-subscription.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=paypal · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/paypal
