agentsclimarketplace

Apideck mcp receive payment

Skill apideck-libraries/api-skills/providers/cursor/plugin/skills/apideck-mcp-receive-payment

One abstraction, 146 SaaS connectors. Agent skills for Apideck's Unified API — integrate Salesforce, QuickBooks, BambooHR, Jira, Shopify and 140+ more by changing one string.

Install
npx -y skills add apideck-libraries/api-skills --skill apideck-mcp-receive-payment

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Task playbook for recording a customer payment against an invoice via the Apideck MCP server's `apideck-receive-customer-payment` workflow tool. Use when the user says a customer paid an invoice and wants the accounting service updated. AR mirror of `apideck-pay-bill` — same shape, opposite ledger side. Different unified endpoint, different counterparty (customer vs supplier), different allocation type.

The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

5.8 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it

Receive a customer payment (Apideck MCP)

When the user wants to record a payment against an existing invoice, prefer apideck-receive-customer-payment over stitching accounting-invoices-get + accounting-payments-create manually. The workflow tool fetches the invoice, reads its outstanding balance, builds the right allocation with type: "invoice", and surfaces structured errors with failingStep.

When this is the right tool

User intentTool
"Customer paid invoice 4", "Apply $500 to invoice 12 from ACME", "Record receipt for invoice 99"apideck-receive-customer-payment
"Pay vendor bill X"apideck-pay-bill (AP — accounts payable, different unified endpoint)
"Create an unallocated customer prepayment"accounting-payments-create directly (no allocation)
"Show me unpaid invoices"accounting-invoices-list with filter[status]=open

IMPORTANT RULES

  • CONFIRM before calling. Receive-payment is mutating and not idempotent — calling twice creates two payments on the connected service. Always show the user the invoice total, currency, deposit account, and customer, and wait for explicit confirmation before invoking.
  • PASS payment_method capitalized for QuickBooks: "Check", "CreditCard", "Cash". Lower-case fails JSON parsing. Other connectors accept lower-case ("check", "ach", "wire").
  • OMIT amount to settle the full outstanding balance. The workflow defaults to the invoice's balance (outstanding), not the gross total, so partial-paid invoices don't get over-settled. Only pass amount when the user explicitly wants a partial payment.
  • DON'T confuse with apideck-pay-bill. Customer payments (someone owes you) → apideck-receive-customer-paymentaccounting-payments-create. Vendor bills (you owe someone) → apideck-pay-billaccounting-bill-payments-create. The unified APIs split AR and AP into separate endpoints; the wrong one will be rejected by the connector with confusing error messages (e.g. QuickBooks: VendorRef missing when there's a customer on the other side).
  • SET x-apideck-service-id when the consumer has multiple accounting connections.

Argument map

ArgRequiredDefaultNotes
invoice_idyesFrom accounting-invoices-list.
account_idyesThe deposit account that received the payment. From accounting-ledger-accounts-list. Often a bank or undeposited-funds account.
amountnoinvoice's outstanding balancePass smaller for a partial payment.
transaction_datenotoday (YYYY-MM-DD)Some connectors reject future dates.
payment_methodnoQB requires capitalized.
referencenoMemo / external reference.
x-apideck-service-idnofirst accounting connectionE.g. "xero", "quickbooks".

Result shape

Success

{
  "invoice_id": "inv-42",
  "payment_id": "pay-77",
  "amount": 250.50,
  "currency": "EUR",
  "transaction_date": "2026-04-26",
  "invoice_total": 250.50,
  "partial": false,
  "service_id": "xero"
}

partial: true indicates an under-payment; tell the user a follow-up payment is needed for the rest.

Failure (with isError: true)

{
  "invoice_id": "inv-42",
  "amount": 100,
  "currency": "USD",
  "error": "accounting-payments-create failed: ...",
  "failingStep": "accounting-payments-create",
  "upstream": { ... }
}

failingStep values:

  • accounting-invoices-get — invoice ID wrong or connector lost the record
  • validate-amount — invoice has zero outstanding balance (already paid)
  • accounting-payments-create — payment write failed; check upstream

Worked example

User: "ACME paid invoice inv-42 for $250.50 by check. Apply it to our bank account."

  1. The user already gave you the invoice id. Find the deposit account: accounting-ledger-accounts-list filtered to bank — say "acc-bank".
  2. Confirm: "Recording $250.50 payment from ACME on invoice inv-42 to bank account acc-bank via Xero, payment method check. Confirm?"
  3. On confirmation:
    {
      "name": "apideck-receive-customer-payment",
      "arguments": {
        "invoice_id": "inv-42",
        "account_id": "acc-bank",
        "payment_method": "check",
        "x-apideck-service-id": "xero"
      }
    }
    
  4. Surface payment_id to the user.

Common failure modes

SymptomCauseFix
failingStep: validate-amountInvoice already fully paidConfirm with user; pass explicit amount only if recording an over-payment is intentional
Moneybird returns 404 from /accounting/paymentsMoneybird models customer payments as financial_mutations, not paymentsConnector coverage gap; surface the limitation, fall back to the Proxy API
QB rejects with parse errorpayment_method lower-casePass "Check" (capitalized) for QB
UrlElicitationRequiredErrorConnection expired/missingSurface consent URL, retry after OAuth

Related

Gives 0 of the 12 instructions most mcp tooling skills give in ~1.4k tokens

Counted across 638 of the 750 authors here whose files we hold, read 2026-08-06

  • create ten complex read-only evaluation questionsin 71 of 638, across 17 files
  • test servers using MCP Inspectorin 60 of 638, across 18 files
  • provide actionable error messagesin 56 of 638, across 14 files
  • prioritize comprehensive API coverage over specific workflowsin 54 of 638, across 12 files
  • use TypeScript and Streamable HTTP for remote serversin 53 of 638, across 7 files
  • define structured output schemas where possiblein 51 of 638, across 9 files
  • use Zod or Pydantic for input schemasin 48 of 638, across 6 files
  • fetch MCP specification pages with markdown suffixin 46 of 638, across 4 files
  • load framework documentation using WebFetchin 45 of 638, across 3 files
  • verify each evaluation answer independentlyin 45 of 638, across 3 files
  • implement API client with authentication and paginationin 45 of 638, across 3 files
  • Define input schemas with validationin 28 of 638, across 10 files

Said here and by no other author read

  • prefer the receive-customer-payment workflow
  • confirm invoice details before calling
  • capitalize payment_method for QuickBooks
  • omit amount to settle full balance
  • pass amount only for explicit partial payments
  • set x-apideck-service-id for multiple connections

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.