Install
$ agentstack add skill-wyre-technology-msp-claude-plugins-payments ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Alternative Payments Payments & Payouts
Overview
This skill covers the read-only money-visibility surface in Alternative Payments: transactions (individual payment records) and payouts (settled batches of funds deposited to your account). It is used for reporting and reconciliation — matching transactions to invoices and customers, and tracing which transactions make up a given payout.
There is no create-payment tool here. This integration never charges a card or moves money (POST /payments, the direct charge, is excluded by design). To collect from a customer, generate a hosted payment link or payment request — see [Alternative Payments Invoicing](../invoicing/SKILL.md).
Core Concepts
Transactions
A transaction is a single payment event against an invoice or payment request. Note that the transactions resource lives at GET /payments — but only the read (list/get) verbs are exposed.
| Field | Type | Description | |-------|------|-------------| | id | string | Transaction identifier | | type | string | Transaction type (e.g. payment, refund) | | status | string | succeeded, pending, failed, declined | | amount | number | Transaction amount | | currency | string | ISO currency code | | customer_id | string | Customer the transaction belongs to | | invoice_id | string | Invoice the transaction settled (if any) | | payment_method | string | card or standard_ach | | payout_id | string | Payout this transaction settled into (if settled) | | created_at | datetime | When the transaction occurred |
Payouts
A payout is a batch of funds Alternative Payments deposits to your bank account. Each payout aggregates many settled transactions — reconciling a payout means listing its transactions and matching them back to invoices and customers.
| Field | Type | Description | |-------|------|-------------| | id | string | Payout identifier | | amount | number | Total payout amount deposited | | currency | string | ISO currency code | | status | string | pending, paid, failed | | arrival_date | datetime | Expected/actual deposit date | | created_at | datetime | When the payout was created |
API Patterns
All requests carry a bearer token (Authorization: Bearer ). See [Alternative Payments API Patterns](../api-patterns/SKILL.md) for the OAuth2 token flow, the 5 req/sec rate limit, and cursor pagination.
List Transactions (with Filters)
GET /payments lists transactions. Supported filters:
| Filter | Values / Format | Purpose | |--------|-----------------|---------| | type | e.g. payment, refund | Filter by transaction type | | status | succeeded, pending, failed, declined | Filter by outcome | | customer_id | customer id | Transactions for one customer | | invoice_id | invoice id | Transactions settling one invoice | | payment_method | card or standard_ach | Filter by method | | created_at_start | YYYY-MM-DD | Start of date range | | created_at_end | YYYY-MM-DD | End of date range | | cursor | cursor string | Pagination (with limit) |
# Failed and declined card transactions in June 2026
curl -s "https://public-api.alternativepayments.io/payments?status=failed&payment_method=card&created_at_start=2026-06-01&created_at_end=2026-06-30&limit=100" \
-H "Authorization: Bearer ${TOKEN}"
# All transactions for one customer
curl -s "https://public-api.alternativepayments.io/payments?customer_id=${CUSTOMER_ID}&limit=100" \
-H "Authorization: Bearer ${TOKEN}"
# Transactions that settled a specific invoice
curl -s "https://public-api.alternativepayments.io/payments?invoice_id=${INVOICE_ID}" \
-H "Authorization: Bearer ${TOKEN}"
Responses are cursor-paginated — items in data[], with next_cursor / has_more. Pass cursor= to fetch the next page.
Get a Single Transaction
curl -s "https://public-api.alternativepayments.io/payments/${TRANSACTION_ID}" \
-H "Authorization: Bearer ${TOKEN}"
List Payouts
curl -s "https://public-api.alternativepayments.io/payouts?limit=100" \
-H "Authorization: Bearer ${TOKEN}"
Get a Single Payout
curl -s "https://public-api.alternativepayments.io/payouts/${PAYOUT_ID}" \
-H "Authorization: Bearer ${TOKEN}"
List a Payout's Transactions (Reconciliation)
curl -s "https://public-api.alternativepayments.io/payouts/${PAYOUT_ID}/transactions?limit=100" \
-H "Authorization: Bearer ${TOKEN}"
JavaScript Example — Reconcile a Payout
async function reconcilePayout(token, payoutId) {
const base = 'https://public-api.alternativepayments.io';
const headers = { 'Authorization': `Bearer ${token}` };
const payout = JSON.parse(
await (await fetch(`${base}/payouts/${payoutId}`, { headers })).text()
);
// Pull every transaction in the payout (cursor pagination).
const txns = [];
let cursor;
do {
const url = new URL(`${base}/payouts/${payoutId}/transactions`);
url.searchParams.set('limit', '100');
if (cursor) url.searchParams.set('cursor', cursor);
const body = JSON.parse(await (await fetch(url, { headers })).text());
txns.push(...(body.data ?? []));
cursor = body.has_more ? body.next_cursor : undefined;
} while (cursor);
const sum = txns.reduce((t, x) => t + x.amount, 0);
return {
payout,
transactionCount: txns.length,
transactionTotal: sum,
reconciles: Math.abs(sum - payout.amount) Excluded by design: `POST /payments` (direct charge). Money movement is out of scope.
## Related Skills
- [Alternative Payments API Patterns](../api-patterns/SKILL.md) - Auth, pagination, rate limits
- [Alternative Payments Customers](../customers/SKILL.md) - Customers and their users
- [Alternative Payments Invoicing](../invoicing/SKILL.md) - Invoices and hosted payment requests
## Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- **Author:** [wyre-technology](https://github.com/wyre-technology)
- **Source:** [wyre-technology/msp-claude-plugins](https://github.com/wyre-technology/msp-claude-plugins)
- **License:** Apache-2.0
- **Homepage:** https://mcp.wyre.ai/getting-started/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.