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

# Enter DonorPerfect gifts from a deposit list

> Enter gifts from a bank deposit list into DonorPerfect with the right codes, one donor at a time, and approve each before it saves.

Source: https://cotlet.dev/integrations/donorperfect-api-mcp-server/enter-gifts-from-a-deposit-list

After a mailing or an event, a list of checks and donors sits in a spreadsheet, and someone retypes every line into DonorPerfect: look up the donor, add the gift, pick the codes.

Cotlet does it in your own DonorPerfect account with search\_donors, list\_codes, create\_donor, add\_gift and list\_gifts, 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 enters gifts three ways (checked 23 Oct 2026): the gift form, Batch Gift Entry and the Utilities > Import file. Its XML API saves a gift with dp\_savegift. None of them reads a deposit list in plain words: a person types each line, maps columns for the import, or a developer writes the calls.

## How you do it in DonorPerfect today

1. Staff type a name or ID into the Last Name/Org/Id # field on the Search screen and click Lookup. With no match, the Add Individual, Add Organization and Add Donor/Gift buttons appear.
2. On the donor record, Add Gift opens the gift form with the date, amount, general ledger, solicitation, sub solicitation, campaign and thank you letter.
3. Batch Gift Entry, under Tasks, groups gifts into batches so the DonorPerfect total matches the bank deposit, and posts them after review.
4. For a file, Utilities > Import takes gifts for existing donors, and DonorPerfect advises running Backup and Restore under Utilities before it.
5. If the donor has an open pledge, DonorPerfect asks on save whether to apply the gift as a pledge payment.

## How to enter DonorPerfect gifts from a deposit list

Prompt

```
Here is this week's deposit list. For each line find the donor in DonorPerfect, add the gift with the codes I gave, and leave anything unclear for me.
```

1. 01  
### Find each donor  
search\_donors runs once per line, by last name, organization or donor ID. One clear match goes on. Two or more matches, or none, put the line on your list, because a gift on the wrong donor is hard to spot later.
2. 02  
### Check the codes once  
list\_codes reads your general ledger, solicitation, gift type and thank you letter codes from DonorPerfect. A code in your list that is not among them, such as a gift type spelled out in words, leaves the line for you instead of guessing.
3. 03  
### Add a donor only when asked  
create\_donor runs only for lines you marked as new donors, or after you approve it. Utilities has a Duplicate Maintenance tool for cleaning up afterwards, but the agent searches first so it rarely has to.
4. 04  
### Enter the gift  
add\_gift saves one gift on the donor record, not a batch. Each call waits for your OK until you switch confirmation off. If the donor has an open pledge, the tool answers no to the pledge question and lists the line for apply\_pledge\_payment.
5. 05  
### Compare with the deposit  
list\_gifts reads back each donor's gifts, and the agent adds up what it entered and compares it with the deposit total in your list.

### What you get back

Example data

```
Deposit list: 18 gifts, 3420.00
Entered 15, e.g. Dana Whitfield 250.00 (Fall Appeal, reference 4471)
Left for you 3:
- J. Alvarez 150.00 (two donors match)
- 90.00 with gift type "Cheque" (not a DonorPerfect code)
- Riverside Rotary 200.00 (no donor found)
Entered total: 2980.00 of 3420.00
```

### Other ways to ask

- Enter the gala table sales with solicitation GALA26 and thank you letter MAJOR for gifts of 1000 or more.
- Check my list against DonorPerfect and show which gifts are already entered. Add nothing.
- Create the donors that are missing, with their addresses from the form, then enter their gifts.

## What DonorPerfect allows, and what to know first

- DonorPerfect keeps a code list for each gift field under Settings > Code Maintenance, so list\_codes returns your organization's codes, not a fixed set.
- DonorPerfect asks on save whether to apply a gift to an open pledge, and a pledge payment must carry the pledge's codes, which is why this job leaves pledge payments to apply\_pledge\_payment.
- SmartActions that your team set up on new gifts run when a gift is saved, so an entered gift can start a task or email you already have.
- The XML API returns at most 500 rows per call, so a script that reads back a donor's gifts has to page; list\_gifts pages for you with a cursor.

create\_donor and add\_gift ask for your OK by default. To run it weekly without you, switch confirmation off for those tools in your dashboard.

Sources: [DonorPerfect: Managing pledges (import, pledge prompt)](https://www.donorperfect.com/video/managing-pledges-donorperfect/) · [DonorPerfect: Tributes in DonorPerfect (Add Gift, Batch Gift Entry)](https://www.donorperfect.com/video/tributes-in-donorperfect/) · [DonorPerfect: Batch Gift Entry](https://www.donorperfect.com/factsheets/batch-gift-entry/) · [DonorPerfect: SmartActions](https://www.donorperfect.com/video/smartactions-2/) · [DonorPerfect Online XML API Documentation](https://softerware-uploads.s3.amazonaws.com/community/donorperfect/DPO%5FXML%5FAPI%5FDocumentation.pdf)

## Call add\_gift from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/donorperfect/donors/48213/gifts \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"2026-10-21","amount":250,"gift_type":"Check","gl_code":"GEN","solicitation":"FALLAPPEAL","thank_you_letter":"STANDARD","reference":"4471"}'
```

Example response

```
{
"gift_id": 90417,
"donor_id": 48213,
"date": "2026-10-21",
"amount": 250,
"gift_type": "Check",
"solicitation": "FALLAPPEAL",
"thank_you_letter": "STANDARD",
"status": "saved"
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is donorperfect\_write → add\_gift. 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 enter DonorPerfect gifts from a deposit list__
| Tool | Parameters |
| -------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| search\_donors | query, by, limit, cursor |
| list\_codes | field |
| create\_donor | type, last\_name, first\_name, organization, email, phone, address, city, state, zip |
| add\_gift | donor\_id, date, amount, gift\_type, gl\_code, solicitation, sub\_solicitation, campaign, thank\_you\_letter, reference, memo |
| list\_gifts | donor\_id, limit, cursor |

[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

- [Apply payments to DonorPerfect pledges](https://cotlet.dev/integrations/donorperfect-api-mcp-server/apply-pledge-payments.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.
