[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)

# Apply payments to DonorPerfect pledges

> Apply pledge payments from a payroll or bank list to the right DonorPerfect pledge with its codes carried over, with no import file to build.

Source: https://cotlet.dev/integrations/donorperfect-api-mcp-server/apply-pledge-payments

A payroll report arrives with a name and an amount per employee, and each line belongs on an open pledge, not in the gift list as a loose gift.

Cotlet does it in your own DonorPerfect account with search\_donors, list\_pledges and apply\_pledge\_payment, called by your AI agent, an n8n workflow or a script.

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

Hosted · nothing to install or maintain

## Can DonorPerfect do this on its own?

DonorPerfect has Apply payment on the pledge and a file import with a P link column (checked 23 Oct 2026). The XML API saves a payment with dp\_savegift and a plink value set to the pledge's gift ID. Nothing matches a name and an amount from a list to a pledge: the import file needs each pledge's gift ID first.

## How you do it in DonorPerfect today

1. Staff look up the donor, open the record and the pledge, and select Apply payment. The gift data from the pledge fills in; they enter the amount and click Save.
2. The other route is to enter a gift. DonorPerfect then asks whether to apply it as a pledge payment. After Yes, they pick the pledge, choose apply pledge payment, and edit the gift codes by hand to match the pledge.
3. For many payments, Utilities > Import takes a file with a P link column that holds each pledge's gift ID. Staff choose gifts as the record type and "insert new transactions for existing donors", click Next step twice, then Import records.
4. DonorPerfect advises running Backup and Restore under Utilities before an import.

## How to apply payments to DonorPerfect pledges

Prompt

```
This payroll file lists payments per employee. For each one find the open pledge in DonorPerfect and apply the payment. Leave any line where the amount or the pledge is unclear.
```

1. 01  
### Match each line to a donor  
search\_donors runs once per line. A name with more than one match is left for you instead of picked by guess.
2. 02  
### Find the pledge  
list\_pledges returns the donor's pledges with total, number of payments, billing amount and frequency. One pledge goes on. If the donor has two or more, the agent picks the one whose billing amount equals the payment, or leaves the line for you.
3. 03  
### Compare the amount  
A payment that differs from the pledge's billing amount is listed for you, not applied. A short payment and a double payment look the same in a payroll file, and a person should decide.
4. 04  
### Apply the payment  
apply\_pledge\_payment uses Apply payment on the pledge, so the gift data comes from the pledge and no codes are edited by hand. Each call waits for your OK until you switch confirmation off for this tool.
5. 05  
### Report the misses  
The agent lists every line it did not apply, with the reason, and the total applied, so you can compare it with the payroll total.

### What you get back

Example data

```
Payroll file: 12 payments, 1250.00
Applied 10 (100.00 each to the donor's monthly pledge)
Left for you 2:
- Priya Nair 100.00 (two open pledges)
- Leo Marsh 150.00 (pledge bills 100.00)
Applied total: 1000.00
```

### Other ways to ask

- Every month on the 5th, apply the payroll file to the employees' pledges and list the misses.
- List the donors in this file who have no pledge, and apply nothing.
- Apply only the 100.00 payments and leave the rest for me.

## What DonorPerfect allows, and what to know first

- A fixed pledge is entered with a Total and a number of payments, and an open-ended recurring pledge has a total of 0 and only a billing amount, so the billing amount is what a payment is compared with.
- A pledge with an unusual payment schedule lists each month, year and amount in its Schedule of payments; apply\_pledge\_payment applies a payment and does not edit that schedule.
- In the XML API a pledge payment is an ordinary gift tied to its pledge by plink, which is why the import file also needs the pledge's gift ID.
- DonorPerfect sends pledge reminders from Mailings; this job only applies payments and sends nothing to donors.

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

Sources: [DonorPerfect: Managing pledges](https://www.donorperfect.com/video/managing-pledges-donorperfect/) · [DonorPerfect Online XML API Documentation](https://softerware-uploads.s3.amazonaws.com/community/donorperfect/DPO%5FXML%5FAPI%5FDocumentation.pdf) · [DonorPerfect Online Getting Started Guide (Paying Off a Pledge, Pledge Reminders)](https://www.softerware.com/doclib/dp/manuals/dpo%5Fsup%5Fmanual%5Fgettingstarted.pdf)

## Call apply\_pledge\_payment from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/donorperfect/donors/51907/pledges/77120/payment/apply \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"amount":100}'
```

Example response

```
{
"payment_gift_id": 91002,
"donor_id": 51907,
"pledge_id": 77120,
"amount": 100,
"date": "2026-10-22",
"status": "applied"
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is donorperfect\_write → apply\_pledge\_payment. Example data.

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

## DonorPerfect tools this automation uses

__Cotlet DonorPerfect tools used to apply payments to DonorPerfect pledges__
| Tool | Parameters |
| ---------------------- | ----------------------------------- |
| search\_donors | query, by, limit, cursor |
| list\_pledges | donor\_id |
| apply\_pledge\_payment | donor\_id, pledge\_id, amount, date |

[All 14 DonorPerfect tools with descriptions](https://cotlet.dev/integrations/donorperfect-api-mcp-server.md#tools)

## Frequently asked questions

### Is it safe to connect DonorPerfect to Cotlet?

Yes. You sign in to DonorPerfect yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get DonorPerfect 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 DonorPerfect automations

- [Enter DonorPerfect gifts from a deposit list](https://cotlet.dev/integrations/donorperfect-api-mcp-server/enter-gifts-from-a-deposit-list.md)
- [Log donor calls and follow-ups in DonorPerfect](https://cotlet.dev/integrations/donorperfect-api-mcp-server/log-donor-calls-in-contacts.md)
- [DonorPerfect API and MCP server: every tool](https://cotlet.dev/integrations/donorperfect-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to DonorPerfect.

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

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

---

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.
