DEV Community

Cover image for A Deep Dive into Pactman’s Nonprofit Check Plus API
Developer Talha
Developer Talha

Posted on • Edited on

A Deep Dive into Pactman’s Nonprofit Check Plus API

By Muhammad Talha Mohsin | Published on 6/09/2025

What This Article Covers

  1. Why nonprofit verification matters more than ever
  2. What Pactman's Nonprofit Check Plus API actually does
  3. How it works — with real JSON and code
  4. How fast and reliable it is (with a graph!)
  5. How to use it as a developer
  6. Common data freshness issues — and how the API handles them
  7. Who should use this API
  8. Plans, pricing, and final thoughts

Why Verifying Charities Matters in 2025

We live in a time when donations happen with a click. Platforms, apps, and grant systems must know:
Is this nonprofit real? Is it tax-exempt? Is it clean from sanctions?

That’s where the Pactman Nonprofit Check Plus API comes in. It's designed to give real-time charity verification using official data from the IRS, OFAC, BMF, and Pub 78.

Image description

What Is the Nonprofit Check Plus API?

It’s a modern API that verifies nonprofits using their EIN (Employer Identification Number).

Here’s what it checks:

  • Tax-exempt status via IRS BMF
  • Inclusion in IRS Pub 78
  • Absence from the OFAC SDN (Sanctions) list
  • Info on deductibility and foundation type

Image description

This is not a basic database—it’s a live compliance engine built for:

  • Grant platforms
  • Donor-advised funds
  • CRMs
  • Banking apps
  • Fintech payment tools

What You Get: Sample API Response

Here's what a real result from the API looks like:

{
  "code": 200,
  "message": "OK",
  "errors": null,
  "data": {
    "pactman_org_url": "https://pactman.org/profile/nonprofit/aborjaily-bannish-foundation-r5U9r8yRcZ",
    "organization_info_last_modified": "5/02/2025 1:01:39 AM",
    "ein": "996589560",
    "organization_name": "ABORJAILY BANNISH FOUNDATION",
    "organization_name_aka": null,
    "address_line1": "50 LOWELL AVE",
    "address_line2": null,
    "city": "WESTFIELD",
    "state": "MA",
    "state_name": "Massachusetts",
    "zip": "01085-2643",
    "filing_req_code": "00",
    "pub78_church_message": null,
    "pub78_organization_name": "Aborjaily Bannish Foundation",
    "pub78_ein": "996589560",
    "pub78_verified": true,
    "pub78_city": "Westfield",
    "pub78_state": "MA",
    "pub78_indicator": "0",
    "organization_types": [
      {
        "organization_type": "Deductions for donations to private non-operating foundations are generally limited to 50 percent of adjusted gross income (AGI). This limit increases to 60% of AGI for cash donations.  For Non-Cash assets held for more than one year, the limit is 30% of AGI.",
        "deductibility_limitation": "50%",
        "deductibility_status_description": "PF"
      }
    ],
    "most_recent_pub78": "3/10/2025 12:00:00 AM",
    "bmf_church_message": null,
    "bmf_organization_name": "ABORJAILY BANNISH FOUNDATION",
    "bmf_ein": "996589560",
    "bmf_status": true,
    "most_recent_bmf": "3/10/2025 12:00:00 AM",
    "bmf_subsection": "03",
    "subsection_description": "501(c)(3) Public Charity",
    "foundation_code": "04",
    "foundation_code_description": null,
    "ruling_month": "07",
    "ruling_year": "2024",
    "group_exemption": "0000",
    "exempt_status_code": "01",
    "ofac_status": "This organization was NOT included in the Office of Foreign Assets Control Specially Designated Nationals (SDN) list.",
    "revocation_code": null,
    "revocation_date": null,
    "reinstatement_date": null,
    "irs_bmf_pub78_conflict": false,
    "foundation_509a_status": "N/A",
    "report_date": "6/17/2025 8:27:00 PM",
    "foundation_type_code": "pf",
    "foundation_type_description": "Private non-operating foundation (section 509(a))"
  },
  "took": 8,
  "nonprofit_check_count": 1
}

Enter fullscreen mode Exit fullscreen mode

💡 That means:

  • The org is real
  • Tax-exempt
  • Not on any U.S. watchlists

How Fast and Reliable Is It?

Here’s how the API performed across 2,143 calls:

Image description

Image description

How Developers Can Use It

Example: Single EIN Lookup in Python

import requests
import json
from datetime import datetime

EIN = "996589560"
API_URL = f"https://entities.pactman.org/api/entities/nonprofitcheck/v1/us/ein/{EIN}"

response = requests.get(API_URL)

if response.status_code == 200:
    raw = response.json()
    data = raw["data"]

    # Deductibility logic
    org_types = data.get("organization_types", [])
    deductibility = {
        "cash": "60% of AGI",
        "non_cash": "30% of AGI",
        "standard": "50% of AGI"
    }
    if org_types:
        first_type = org_types[0]
        if "deductibility_limitation" in first_type:
            deductibility["standard"] = first_type["deductibility_limitation"]

    # Date parsing for ISO format
    def to_iso(date_str):
        try:
            return datetime.strptime(date_str, "%m/%d/%Y %I:%M:%S %p").isoformat() + "Z"
        except Exception:
            return None

    output = {
        "status": raw["code"],
        "message": raw["message"],
        "data": {
            "legal_name": data.get("organization_name"),
            "ein": data.get("ein"),
            "irs_status": data.get("subsection_description"),
            "foundation_type": data.get("foundation_type_description"),
            "deductibility": deductibility,
            "address": {
                "street": data.get("address_line1"),
                "city": data.get("city"),
                "state": data.get("state"),
                "zip": data.get("zip")
            },
            "last_updated": to_iso(data.get("organization_info_last_modified"))
        },
        "took_ms": raw["took"]
    }

    print(json.dumps(output, indent=2))
else:
    print("Error:", response.status_code, response.text)

Enter fullscreen mode Exit fullscreen mode

API Response (Simplified for Developer Use)

{
  "status": 200,
  "message": "OK",
  "data": {
    "legal_name": "ABORJAILY BANNISH FOUNDATION",
    "ein": "996589560",
    "irs_status": "501(c)(3) - Public Charity",
    "foundation_type": "Private non-operating foundation (section 509(a))",
    "deductibility": {
      "cash": "60% of AGI",
      "non_cash": "30% of AGI",
      "standard": "50% of AGI"
    },
    "address": {
      "street": "50 LOWELL AVE",
      "city": "WESTFIELD",
      "state": "MA",
      "zip": "01085-2643"
    },
    "last_updated": "2025-05-02T01:01:39Z"
  },
  "took_ms": 8
}

Enter fullscreen mode Exit fullscreen mode

Key Fields for Developers

Image description

Common Use Cases

  1. Donation Platforms – Verify tax-deductible status before processing donations.
  2. Grant Management Systems – Automatically validate nonprofit eligibility.
  3. Financial Software – Check deductibility limits for tax reporting.
  4. Nonprofit Directories – Pull the latest IRS-recognized org data.

⚠️ Best Practice: Keep batches ≤ 50 EINs to avoid timeout delays.

Image description

The IRS Delay Problem — And How Pactman Solves It

Even with the best tech, government data updates lag. Here's what to expect:

Image description

🔐 But the API helps by exposing this field:

"irs_bmf_pub78_conflict": true
Enter fullscreen mode Exit fullscreen mode

So your system can flag mismatches, giving your team or clients the chance to double-check.

Image description

Real Success Story: Automating Grants with DAFs

A top donor-advised fund (DAF) provider integrated Pactman and reported:

Image description

They replaced spreadsheet reviews with a smart system that "just worked."

Image description

Pricing and Access

You don’t need a credit card to start using the API.

Image description

  • 🔐 Secure with API Key
  • 📚 Documentation
  • 💬 Support via email and online

Image description

Who Should Use This API?

If you’re building or working with:

  • Fintechs managing donations
  • CRMs for nonprofits
  • Government grant systems
  • Payment platforms needing charity compliance
  • Banks and auditors

Then you need this API. It keeps your app compliant, fast, and trustworthy.

Final Thoughts

The Pactman Nonprofit Check Plus API isn’t just a charity lookup tool — it’s an insurance policy for modern financial platforms. With real-time data from the IRS and OFAC, clean JSON, developer-first architecture, and low false positives, it’s a must-have for serious platforms.

Start free today and never doubt your donations again.
🔗 Try the API Now

Top comments (3)

Collapse
 
muhammad_aqib_f921b1d2175 profile image
muhammad aqib

Very insightful and well-explained — the examples made it crystal clear.

Collapse
 
mohsin_altaf_59f9ea12e830 profile image
Mohsin Altaf

Good read — very informative and well-structured! The real JSON examples and practical use cases made it easy to understand the API’s value.

Collapse
 
talhamohsin profile image
Developer Talha

thanks sir