[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Use cases](https://cotlet.dev/use-cases.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# Record offline payments against Wild Apricot invoices

> Match a bank statement to unpaid Wild Apricot invoices and record each transfer as a payment, partial ones included. You review the leftovers.

Source: https://cotlet.dev/integrations/wild-apricot-api-mcp-server/record-offline-payments-against-invoices

Members pay dues by bank transfer, cash or cheque, and Wild Apricot only knows about it once an admin finds the invoice and records the payment by hand.

Cotlet does it in your own Wild Apricot account with list\_invoices, get\_contact and record\_payment, called by your AI agent, an n8n workflow or a script.

[Sign up free](https://cotlet.dev/app/signup?app=wild-apricot) [All Wild Apricot tools](https://cotlet.dev/integrations/wild-apricot-api-mcp-server.md)

Hosted · nothing to install or maintain

## Can Wild Apricot do this on its own?

Wild Apricot has the Record payment button on each invoice (checked 23 Oct 2026) and a Payments admin API call for developers that creates payments and allocates them to invoices. Neither matches a statement for you; the matching is by eye, or by your own code.

## How you do it in Wild Apricot today

1. The admin reads the bank statement and notes the payer, amount and date of each transfer.
2. For each one the admin locates the invoice and clicks Record payment.
3. The admin enters the amount and the date and selects the payment type, such as check, cash or wire transfer, then clicks Save.
4. Wild Apricot settles the payment against the invoice and updates the invoice and contact balances.
5. Receipts are sent automatically only for online payments, so the admin must email the receipt for each manual one.

## How to record offline payments against Wild Apricot invoices

Prompt

```
Here are this week's bank transfers. Match each to an unpaid Wild Apricot invoice by payer and amount, record it as a bank transfer payment, and list the ones you could not match.
```

1. 01  
### Read your list  
The agent takes the transfers from your prompt or an attached statement: payer, amount, date and the reference if there is one. Lines that have no payer or amount go to the unmatched list.
2. 02  
### Find the open invoices  
list\_invoices runs with status unpaid and then partially\_paid, and follows next\_cursor. The agent matches a transfer to an invoice when payer and amount agree, or when the reference holds the invoice number.
3. 03  
### Check the contact  
For a doubtful match the agent calls get\_contact and compares the balance with the invoice. Two invoices of the same amount for one payer are not guessed at: the transfer goes to your list.
4. 04  
### Record each payment  
record\_payment runs once per transfer with the statement date and the payment type you named. A transfer larger than the invoice is not recorded, because Wild Apricot accepts a payment up to the invoice amount only. Each call waits for your OK by default.
5. 05  
### Report what is left  
The agent lists unmatched transfers and invoices still open, and reminds you that Wild Apricot sends no receipt for a manual payment.

### What you get back

Example data

```
Transfers read: 13
Recorded 11 against invoices (2 partial)
Left for you 2:
- 150.00 from J. Okafor: larger than the open invoice of 95.00
- 60.00 with no payer name
Receipts not sent: manual payments need a manual email
```

### Other ways to ask

- Record only transfers that match an invoice to the cent and leave partial ones for me.
- List unpaid invoices older than 30 days with the contact's email and record nothing.
- Every Friday, record the payments in this CSV and give me the open balance per contact.

## What Wild Apricot allows, and what to know first

- Wild Apricot only lets a manual payment be equal to or less than the invoice amount.
- A payment below the open balance marks the invoice partially paid, and a payment for the whole balance marks it fully paid.
- Online payments record their payment type automatically, and a manual payment gets the type you pick, which the payments report sums up.
- Wild Apricot sends payment receipts automatically for online payments only; for a manual one you email the receipt yourself.
- Full administrators, membership managers, events managers and donations managers can record payments.

record\_payment asks for your OK by default. To run it weekly without you, switch confirmation off for that tool in your dashboard.

Sources: [Wild Apricot Help: Manual payments](https://gethelp.wildapricot.com/en/articles/81-manual-payments) · [Wild Apricot Help: Credits or payments on account](https://gethelp.wildapricot.com/en/articles/557-credits-or-payments-on-account) · [Wild Apricot Help: Payments admin API call](https://gethelp.wildapricot.com/en/articles/494-payments-admin-api-call) · [Wild Apricot Help: Account administrators](https://gethelp.wildapricot.com/en/articles/50-account-administrators)

## Call record\_payment from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/wild-apricot/invoices/90417/payments \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"amount":95,"date":"2026-10-21","payment_type":"Bank transfer"}'
```

Example response

```
{
"payment_id": 71002,
"invoice_id": 90417,
"contact": "Sam Okafor",
"amount": 95,
"date": "2026-10-21",
"payment_type": "Bank transfer",
"invoice_status": "paid",
"balance": 0
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is wild\_apricot\_write → record\_payment. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/wild-apricot-api-mcp-server.md#automations)

## Wild Apricot tools this automation uses

__Cotlet Wild Apricot tools used to record offline payments against Wild Apricot invoices__
| Tool | Parameters |
| --------------- | ---------------------------------------- |
| list\_invoices | status, contact\_id, cursor |
| get\_contact | contact\_id |
| record\_payment | invoice\_id, amount, date, payment\_type |

[All 12 Wild Apricot tools with descriptions](https://cotlet.dev/integrations/wild-apricot-api-mcp-server.md#tools)

## Frequently asked questions

### Is it safe to connect Wild Apricot to Cotlet?

Yes. You sign in to Wild Apricot yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Wild Apricot once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

## More Wild Apricot automations

- [Approve Wild Apricot membership applications with AI](https://cotlet.dev/integrations/wild-apricot-api-mcp-server/approve-membership-applications.md)
- [Email Wild Apricot event attendees after the event](https://cotlet.dev/integrations/wild-apricot-api-mcp-server/email-event-attendees-after-event.md)
- [Wild Apricot API and MCP server: every tool](https://cotlet.dev/integrations/wild-apricot-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to Wild Apricot.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with Wild Apricot.

[Sign up free](https://cotlet.dev/app/signup?app=wild-apricot)

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [Use cases](https://cotlet.dev/use-cases.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet.dev is built by Bart Krawczyk and Jake Slugocki, the founders of Take Group sp. z o.o., ul. Wincentego Janasa 4, 40-855 Katowice, Poland. KRS 0000871398, NIP 6342984273, VAT EU: PL6342984273. [About us](https://cotlet.dev/about.md)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.
