# Pin Payments MCP by usefulapi (remote · pin-payments.usefulapi.io)

Read Pin Payments charges, refunds, balances, transfers and subscriptions without moving money.

- Trust score: 18/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `pin-payments.usefulapi.io`: 18/100 (this document), [markdown](https://verifymcp.io/servers/io-usefulapi-pin-payments/pin-payments.md), [page](https://verifymcp.io/servers/io-usefulapi-pin-payments/pin-payments)

## Channel facts

- Endpoint: `https://pin-payments.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.6.3`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.
  - HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 0/100
  - Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly.
- **Schema Quality & AI Usability**: 0/100
  - Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 0/100
  - Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Tool Safety**: 0/100
  - Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Capabilities**: 0/100
  - Capabilities not yet verified: we couldn't read the endpoint's capabilities.

**Unverified: 5 categories.** Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

## Install

### How do I install the Pin Payments MCP by usefulapi server?

Pin Payments MCP by usefulapi is a hosted endpoint at https://pin-payments.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http io-usefulapi-pin-payments 'https://pin-payments.usefulapi.io/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "io-usefulapi-pin-payments": {
      "url": "https://pin-payments.usefulapi.io/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "io-usefulapi-pin-payments": {
      "type": "http",
      "url": "https://pin-payments.usefulapi.io/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.io-usefulapi-pin-payments]
url = "https://pin-payments.usefulapi.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-usefulapi-pin-payments": {
      "type": "remote",
      "url": "https://pin-payments.usefulapi.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-usefulapi-pin-payments --url 'https://pin-payments.usefulapi.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-usefulapi-pin-payments:
    url: "https://pin-payments.usefulapi.io/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "io-usefulapi-pin-payments": {
      "Transport": "http",
      "Url": "https://pin-payments.usefulapi.io/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-usefulapi-pin-payments -t streamable-http -u 'https://pin-payments.usefulapi.io/mcp'
```

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-pin-payments": {
      "type": "http",
      "url": "https://pin-payments.usefulapi.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-01 (score 18, −46)

- [security regression] Endpoint reachability: reachable → not serving MCP
- [security regression] Tool safety: pass → unverified
- [security regression] Authorization: pass → unverified
- [security regression] Stability: 0.03 → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified

### 2026-10-31 (score 64, +3)

- [security improvement] Authorization: partial → pass
- [functional improvement] Stability: unverified → 0.03
- [functional improvement] MCP protocol: fail → pass
- [functional] New prompt “check_available_and_pending_balances”
- [functional] New prompt “inspect_a_subscription_and_its_ledger”
- [functional] New prompt “reconcile_a_transfer_with_its_ledger_entries”
- [functional] New prompt “review_charges_and_their_refunds”
- [functional] New prompt “review_disputes_and_their_activity”
- [functional] MCP protocol version: 2025-06-18 → 2025-11-25
- [functional] Server version: 1.2.0 → 1.4.0
- [functional] Server version: 1.1.0 → 1.2.0
- [functional] Server version: 1.0.2 → 1.1.0

### 2026-10-30 (score 61)

First indexed and scored.

## MCP tools (35)

### `pinpayments_get_balance` (~57 tokens)

Get balance

The current Pin Payments account balance: available (ready to transfer) and pending (available plus estimated funds from charges that have not settled yet), per currency, in the currency's base unit (cents for AUD). GET /balance.

### `pinpayments_list_charges` (~120 tokens)

List charges

List charges (card payments), 25 per page: amount (in the currency's base unit, e.g. cents for AUD), currency, description, payer email, status_message/success, total_fees, merchant_entitlement, amount_refunded, captured, settlement transfers, chargebacks flag, metadata. The card is shown only as scheme and last four digits. GET /charges.

Input parameters:

- `page` (integer): Page number, from 1 (default 1); 25 results per page. Pass the previous reply's next_page.

### `pinpayments_search_charges` (~158 tokens)

Search charges

Search charges by free text (description, email, metadata, cardholder name, currency, exact amount in the currency's base unit, exact charge/card/refund/customer token) and/or a created-date range. GET /charges/search.

Input parameters:

- `direction` (string): Sort direction (default asc).
- `end_date` (string): Created before this date, yyyy-mm-dd.
- `page` (integer): Page number, from 1 (default 1); 25 results per page. Pass the previous reply's next_page.
- `query` (string): Text to match.
- `sort` (string): Sort field (default created_at).
- `start_date` (string): Created on or after this date, yyyy-mm-dd.

### `pinpayments_get_charge` (~67 tokens)

Get charge

One charge by token (ch_...), with fees, refunds total, settlement transfer state and chargeback flag. GET /charges/{token}.

Input parameters:

- `charge_token` (string, required): Charge token, e.g. ch_lfUYEBK14zotCTykezJkfg.

### `pinpayments_list_charge_refunds` (~73 tokens)

List refunds of a charge

All refunds issued against one charge. GET /charges/{token}/refunds.

Input parameters:

- `charge_token` (string, required): Charge token (ch_...).
- `page` (integer): Page number, from 1 (default 1); 25 results per page. Pass the previous reply's next_page.

### `pinpayments_list_refunds` (~79 tokens)

List refunds

List all refunds, 25 per page: amount (in the currency's base unit), currency, charge token, status_message, error_message, created_at. GET /refunds.

Input parameters:

- `page` (integer): Page number, from 1 (default 1); 25 results per page. Pass the previous reply's next_page.

### `pinpayments_get_refund` (~56 tokens)

Get refund

One refund by token (rf_...). GET /refunds/{token}.

Input parameters:

- `refund_token` (string, required): Refund token, e.g. rf_ERCQy--Ay6o-NKGiUVcKKA.

### `pinpayments_list_authorisations` (~78 tokens)

List authorisations

List card authorisations (held funds, not yet captured; they expire after seven days) with amount, amount_captured, amount_remaining and expired flags. GET /authorisations.

Input parameters:

- `page` (integer): Page number, from 1 (default 1); 25 results per page. Pass the previous reply's next_page.

### `pinpayments_get_authorisation` (~60 tokens)

Get authorisation

One authorisation by token (auth_...). GET /authorisations/{token}.

Input parameters:

- `authorisation_token` (string, required): Authorisation token, e.g. auth_NRzYklT8z3p0yiozsXEAIg.

### `pinpayments_list_customers` (~82 tokens)

List customers

List stored customers, 25 per page: token, email, first_name, last_name, phone_number, company, notes and the primary card as scheme and last four digits. GET /customers.

Input parameters:

- `page` (integer): Page number, from 1 (default 1); 25 results per page. Pass the previous reply's next_page.

### `pinpayments_get_customer` (~55 tokens)

Get customer

One customer by token (cus_...). GET /customers/{token}.

Input parameters:

- `customer_token` (string, required): Customer token, e.g. cus_XZg1ULpWaROQCOT5PdwLkQ.

### `pinpayments_list_customer_charges` (~71 tokens)

List a customer's charges

Charges made by one customer. GET /customers/{token}/charges.

Input parameters:

- `customer_token` (string, required): Customer token (cus_...).
- `page` (integer): Page number, from 1 (default 1); 25 results per page. Pass the previous reply's next_page.

### `pinpayments_list_customer_cards` (~90 tokens)

List a customer's cards

Cards stored for one customer, each shown only as scheme, last four digits and issuing country (no token, expiry or address). GET /customers/{token}/cards.

Input parameters:

- `customer_token` (string, required): Customer token (cus_...).
- `page` (integer): Page number, from 1 (default 1); 25 results per page. Pass the previous reply's next_page.

### `pinpayments_list_customer_subscriptions` (~85 tokens)

List a customer's subscriptions

Subscriptions of one customer: state, plan, next billing date, active interval, cancellation time. GET /customers/{token}/subscriptions.

Input parameters:

- `customer_token` (string, required): Customer token (cus_...).
- `page` (integer): Page number, from 1 (default 1); 25 results per page. Pass the previous reply's next_page.

### `pinpayments_list_deposits` (~66 tokens)

List deposits

List deposits made to the account (amount, currency, bank narration, available_at). GET /deposits.

Input parameters:

- `page` (integer): Page number, from 1 (default 1); 25 results per page. Pass the previous reply's next_page.

### `pinpayments_get_deposit` (~57 tokens)

Get deposit

One deposit by token (dpo_...). GET /deposits/{token}.

Input parameters:

- `deposit_token` (string, required): Deposit token, e.g. dpo_Ts3YECK14zotCTykezRspu.

### `pinpayments_list_transfers` (~88 tokens)

List transfers

List transfers (payouts to bank accounts), 25 per page: status, amount, debits/credits, paid_at, reference, line item count, bank account (masked) and recipient. GET /transfers.

Input parameters:

- `page` (integer): Page number, from 1 (default 1); 25 results per page. Pass the previous reply's next_page.

### `pinpayments_search_transfers` (~142 tokens)

Search transfers

Search transfers by token, description, amount or recipient details and/or a created-date range. GET /transfers/search.

Input parameters:

- `direction` (string): Sort direction (default asc).
- `end_date` (string): Created before this date, yyyy-mm-dd.
- `page` (integer): Page number, from 1 (default 1); 25 results per page. Pass the previous reply's next_page.
- `query` (string): Text to match.
- `sort` (string): Sort field (the only option is paid_at, also the default).
- `start_date` (string): Created on or after this date, yyyy-mm-dd.

### `pinpayments_get_transfer` (~56 tokens)

Get transfer

One transfer by token (tfer_...). GET /transfers/{token}.

Input parameters:

- `transfer_token` (string, required): Transfer token, e.g. tfer_lfUYEBK14zotCTykezJkfg.

### `pinpayments_list_transfer_line_items` (~89 tokens)

List transfer line items

The ledger line items that make up one transfer (charge entitlements, fees, refunds, chargebacks). GET /transfers/{token}/line_items.

Input parameters:

- `page` (integer): Page number, from 1 (default 1); 25 results per page. Pass the previous reply's next_page.
- `transfer_token` (string, required): Transfer token (tfer_...).

### `pinpayments_list_recipients` (~60 tokens)

List recipients

List transfer recipients (name, email, masked bank account). GET /recipients.

Input parameters:

- `page` (integer): Page number, from 1 (default 1); 25 results per page. Pass the previous reply's next_page.

### `pinpayments_get_recipient` (~55 tokens)

Get recipient

One recipient by token (rp_...). GET /recipients/{token}.

Input parameters:

- `recipient_token` (string, required): Recipient token, e.g. rp_a98a4fafROQCOT5PdwLkQ.

### `pinpayments_list_recipient_transfers` (~74 tokens)

List a recipient's transfers

Transfers paid to one recipient. GET /recipients/{token}/transfers.

Input parameters:

- `page` (integer): Page number, from 1 (default 1); 25 results per page. Pass the previous reply's next_page.
- `recipient_token` (string, required): Recipient token (rp_...).

### `pinpayments_list_disputes` (~94 tokens)

List disputes

List chargeback disputes: category, status, amount, the disputed charge, evidence_required_by and the relevant evidence types. GET /disputes.

Input parameters:

- `direction` (string): Sort direction (default asc).
- `page` (integer): Page number, from 1 (default 1); 25 results per page. Pass the previous reply's next_page.
- `sort` (string): Sort field.

### `pinpayments_search_disputes` (~125 tokens)

Search disputes

Search disputes by status or exact charge token, optionally filtered by status. GET /disputes/search.

Input parameters:

- `direction` (string): Sort direction (default asc).
- `page` (integer): Page number, from 1 (default 1); 25 results per page. Pass the previous reply's next_page.
- `query` (string): Text to match (status, or an exact charge token); at least 3 characters.
- `sort` (string): Sort field.
- `status` (string): Dispute status, e.g. evidence_required.

### `pinpayments_get_dispute` (~61 tokens)

Get dispute

One dispute by token (dis_...). GET /disputes/{token}.

Input parameters:

- `dispute_token` (string, required): Dispute token, e.g. dis_JRs6Xgk4jMyF33yGijQ7Nw.

### `pinpayments_get_dispute_activity` (~58 tokens)

Get dispute activity

The activity feed of one dispute (status changes, ledger entries such as chargeback fees and recoveries). GET /disputes/{token}/activity.

Input parameters:

- `dispute_token` (string, required): Dispute token (dis_...).

### `pinpayments_list_plans` (~68 tokens)

List plans

List subscription plans: name, amount, currency, interval, trial and setup amounts, subscription counts by state. GET /plans.

Input parameters:

- `page` (integer): Page number, from 1 (default 1); 25 results per page. Pass the previous reply's next_page.

### `pinpayments_get_plan` (~55 tokens)

Get plan

One plan by token (plan_...). GET /plans/{token}.

Input parameters:

- `plan_token` (string, required): Plan token, e.g. plan_ZyDee4HNeUHFHC4SpM2idg.

### `pinpayments_list_plan_subscriptions` (~71 tokens)

List a plan's subscriptions

Subscriptions to one plan. GET /plans/{token}/subscriptions.

Input parameters:

- `page` (integer): Page number, from 1 (default 1); 25 results per page. Pass the previous reply's next_page.
- `plan_token` (string, required): Plan token (plan_...).

### `pinpayments_list_subscriptions` (~75 tokens)

List subscriptions

List all subscriptions: state (trial, active, cancelling, cancelled), plan, customer, next_billing_date, active interval, cancelled_at. GET /subscriptions.

Input parameters:

- `page` (integer): Page number, from 1 (default 1); 25 results per page. Pass the previous reply's next_page.

### `pinpayments_get_subscription` (~56 tokens)

Get subscription

One subscription by token (sub_...). GET /subscriptions/{token}.

Input parameters:

- `subscription_token` (string, required): Subscription token, e.g. sub_bZWXhTzHooKpk9FZjQfzqQ.

### `pinpayments_get_subscription_ledger` (~78 tokens)

Get subscription ledger

The ledger entries (credits and debits) of one subscription. GET /subscriptions/{token}/ledger.

Input parameters:

- `page` (integer): Page number, from 1 (default 1); 25 results per page. Pass the previous reply's next_page.
- `subscription_token` (string, required): Subscription token (sub_...).

### `pinpayments_list_events` (~72 tokens)

List events

The account's event log (charge.captured, refund.created, dispute.updated, ...), each with the affected record (cards masked). GET /events.

Input parameters:

- `page` (integer): Page number, from 1 (default 1); 25 results per page. Pass the previous reply's next_page.

### `pinpayments_get_event` (~54 tokens)

Get event

One event by token (evt_...). GET /events/{token}.

Input parameters:

- `event_token` (string, required): Event token, e.g. evt_12K4fafROQsdI5PdwLkX.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-usefulapi-pin-payments/pin-payments#diagnostics

## Score history

- 2026-11-05: 18
- 2026-11-04: 18
- 2026-11-03: 18
- 2026-11-02: 18
- 2026-11-01: 18
- 2026-10-31: 64
- 2026-10-30: 61

## Common questions

### What is the Pin Payments MCP by usefulapi server?

Pin Payments MCP by usefulapi is listed in the public MCP registry as io.usefulapi/pin-payments. Read Pin Payments charges, refunds, balances, transfers and subscriptions without moving money. This page covers its hosted endpoint (https://pin-payments.usefulapi.io/mcp).

### Is the Pin Payments MCP by usefulapi server safe to use?

Pin Payments MCP by usefulapi scores 18 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Pin Payments MCP by usefulapi server expose?

Pin Payments MCP by usefulapi exposes 35 tools: pinpayments_get_balance, pinpayments_list_charges, pinpayments_search_charges, pinpayments_get_charge, pinpayments_list_charge_refunds, and 30 more. Their descriptions and schemas cost roughly 2,685 tokens of context every time the server is loaded.

### Does the Pin Payments MCP by usefulapi server require authentication?

Its publisher declares no required credentials for Pin Payments MCP by usefulapi. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.

### Is the Pin Payments MCP by usefulapi server still maintained?

Pin Payments MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What did VerifyMCP test on the Pin Payments MCP by usefulapi server?

VerifyMCP ran 4 checks on Pin Payments MCP by usefulapi, covering TLS certificate, HSTS header, DNSSEC and Transport. 7 items could not be completed, a gap on our side rather than a finding about Pin Payments MCP by usefulapi: Authorization, HTTPS, Schema quality, Stability and 3 more. 5 categories score 0 for that reason, because we only credit what we can confirm. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Remote endpoint: https://pin-payments.usefulapi.io/mcp
- Repository: https://github.com/m190/usefulapi-mcp
- Website: https://usefulapi.io/pin-payments/
- Changelog RSS feed: https://verifymcp.io/servers/io-usefulapi-pin-payments/pin-payments.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-usefulapi-pin-payments/pin-payments/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/io-usefulapi-pin-payments/pin-payments.json
- HTML version of this page: https://verifymcp.io/servers/io-usefulapi-pin-payments/pin-payments
