Pactman Developer Resources · Nonprofit verification answers for developers and compliance teams
Home  /  Artifacts  /  How to Check Whether Donations to a Nonprofit Are Tax Deductible
Artifact · Developer How-To

How to Check Whether Donations to a Nonprofit Are Tax Deductible

Use the nonprofit's EIN with Pactman Nonprofit Check Plus API and evaluate the Publication 78 fields returned for that organization. Start with `pub78_verified`, then review the `organization_types` array, including `organization_type`, `deductibility_limitation` and `deductibility_status_description`. Use BMF classification, revocation and reinstatement, group-exemption, conflict and source-freshness fields as supporting context before applying your application's contribution-eligibility rule.

Updated September 28, 20266 min readFor developers, compliance teams, donation platforms & fintech and nonprofit software teams

Direct answer

To check whether donations to a nonprofit are tax deductible, send the organization's EIN to Pactman Nonprofit Check Plus API and evaluate the Publication 78 signals returned for that EIN.

Start with pub78_verified, which indicates whether the organization is included in the most recent Publication 78 data set used by Pactman. Then review the organization_types array, especially organization_type, deductibility_limitation and deductibility_status_description. Use IRS BMF classification, revocation and reinstatement history, group-exemption information, source conflicts and freshness as additional context rather than treating a valid EIN or BMF record alone as proof of contribution deductibility.

  1. Normalize the EIN. Remove spaces or dashes so 12-3456789 becomes 123456789.
  2. Send the EIN to the Nonprofit Check Plus API. Use the single-EIN nonprofitcheck endpoint for one organization.
  3. Confirm the organization. Match ein and organization_name to the nonprofit your user intended to support.
  4. Check Pub. 78 presence. Review pub78_ein and pub78_verified.
  5. Interpret the contribution classification. Review the organization_types array, including organization_type, deductibility_limitation and deductibility_status_description.
  6. Review the Pub. 78 indicator when applicable. pub78_indicator helps provide Pub. 78 context, including subordinate organizations under group exemptions.
  7. Use BMF classification as supporting context. Review bmf_ein, bmf_status, bmf_subsection, subsection_description and exempt_status_code.
  8. Check group-exemption context. Review group_exemption when the organization may be subordinate to a parent organization with a group exemption.
  9. Check revocation and reinstatement. Review revocation_code, revocation_date and reinstatement_date before making a current deductibility decision.
  10. Check conflicts and freshness. Review irs_bmf_pub78_conflict, most_recent_pub78, most_recent_bmf and organization_info_last_modified.

Example request(s)

curl --request GET \
  --url https://entities.pactman.org/api/entities/nonprofitcheck/v1/us/ein/YOUR_EIN \
  --header 'Authorization: Bearer YOUR_API_KEY'

Implementation note: The endpoint name above reflects the Pactman single-EIN Nonprofit Check endpoint used in Pactman's Production/Customer Environment.

curl --request POST \
  --url https://entities.pactman.org/api/entities/nonprofitcheckbulk/v1/us/eins \
  --header 'accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '[
    "YOUR_EIN_1",
    "YOUR_EIN_2",
    "YOUR_EIN_3",
    "YOUR_EIN_4",
    "YOUR_EIN_5"
  ]'

Implementation note: The endpoint name above reflects the Pactman single-EIN Nonprofit Check endpoint used in Pactman's Production/Customer Environment.

What your application should evaluate

Signal Why it matters Typical application decision
ein / organization_name Confirms that the response belongs to the nonprofit the donor intended to support. Continue only when the EIN and organization identity match the intended nonprofit.
pub78_verified The Pactman data mapping defines this as whether the organization is included in the most recent Publication 78 data set. Use as the primary Pub. 78 presence signal when contribution deductibility matters.
organization_types Contains the Pub. 78 contribution classification returned for the organization. Evaluate its child fields rather than reducing Pub. 78 to a single yes/no signal.
organization_type Describes the type of organization and intended use of contributions as listed in Publication 78. Preserve the returned organization-type description for the contribution workflow.
deductibility_limitation Provides the deductibility limitation associated with the organization's Pub. 78 status. Use the returned limitation as part of the contribution-eligibility information presented or stored by the application.
deductibility_status_description Returns the deductibility status code in the Pub. 78 organization type information. Preserve the returned code and interpret it together with the other Pub. 78 fields.
BMF classification bmf_status, bmf_subsection, subsection_description and exempt_status_code provide broader IRS tax-exempt classification context. Use as supporting IRS context rather than substituting BMF presence for Pub. 78 deductibility information.
Group-exemption signals pub78_indicator and group_exemption help preserve context for organizations covered by group exemptions. Apply group-exemption logic rather than assuming every subordinate organization must be evaluated as an independent Pub. 78 record.
Revocation fields revocation_code, revocation_date and reinstatement_date provide revocation-related history. Review reinstatement before treating a historical revocation record as the organization's current contribution status.
irs_bmf_pub78_conflict Indicates whether BMF and Pub. 78 differ on private-foundation classification. Route a disagreement through source-aware review instead of silently choosing one classification.
Source dates most_recent_pub78, most_recent_bmf and organization_info_last_modified provide freshness context. Use them when deciding whether the returned contribution and classification information is current enough for the workflow.

Example decision logic

A practical donation workflow might treat a nonprofit as eligible for the application's tax-deductible-contribution path only after it has:

  • matched the returned ein and organization_name to the intended recipient;
  • evaluated pub78_verified;
  • reviewed organization_type, deductibility_limitation and deductibility_status_description inside organization_types;
  • considered BMF classification and group-exemption context where relevant;
  • reviewed revocation and reinstatement information;
  • handled any irs_bmf_pub78_conflict; and
  • considered the source dates before treating the result as current.

The supplied bulk sample provides a concrete example. For EIN "680343125", Pactman returns pub78_verified: true and an organization_types entry with deductibility_status_description: "PC" and deductibility_limitation: "50%". The same response reports bmf_status: true, bmf_subsection: "03", subsection_description: "501(c)(3) Public Charity", and revocation_code, revocation_date and reinstatement_date as null.

Important: Do not reduce donation deductibility to a valid EIN, bmf_status, or tax-exempt classification alone. Pactman exposes Pub. 78 contribution information separately so an application can distinguish general tax-exempt status from the contribution-related information returned by Publication 78.

Why use a consolidated nonprofit verification API?

Determining whether a contribution is associated with a tax-deductible nonprofit can require multiple IRS signals. An application may need to confirm the organization, establish Pub. 78 presence, interpret the returned contribution classification and limitation, account for group exemptions, check revocation and reinstatement, and understand whether the IRS sources disagree.

Pactman Nonprofit Check Plus returns those signals in one normalized response. The supplied single-EIN and bulk samples use the same current 43 organization-level fields, so the same deductibility-verification logic can be reused across individual donations and higher-volume contribution workflows.

One normalized response

Evaluate organization identity, Pub. 78 contribution information, BMF classification, revocation and source freshness from one Pactman response model.

Separate source signals

Keep pub78_verified, organization_types, BMF fields, revocation fields and irs_bmf_pub78_conflict separate so downstream logic preserves the meaning of each source.

Reusable compliance rules

Apply the same contribution-verification framework across donation checkout, payroll giving, donor-advised fund and recurring donation workflows while allowing each product to set its own acceptance rules.

Developer-friendly automation

Move nonprofit deductibility checks into the application workflow instead of requiring a donor or employee to manually compare Pub. 78, BMF and revocation information for every EIN.

Frequently asked questions

Is pub78_verified: true enough to determine deductibility?

It is the primary Pactman signal that the organization is included in the most recent Publication 78 data set, but the API also returns organization_types with organization_type, deductibility_limitation and deductibility_status_description. Use those fields together when the workflow needs the contribution classification rather than only Pub. 78 presence.

Is bmf_status: true the same as being verified in Pub. 78?

No. bmf_status indicates that the organization appears in the Business Master File data used by Pactman. pub78_verified indicates presence in the most recent Publication 78 data set. They answer different questions and should remain separate in downstream logic.

What if the nonprofit has revocation history?

Review revocation_code, revocation_date and reinstatement_date together. Historical revocation information should not be treated as the organization's current contribution status without considering reinstatement information.

How should group-exempt organizations be handled?

Review pub78_indicator and group_exemption. The Pactman mapping notes that subordinate organizations under group exemptions can take on the Pub. 78 status of the parent organization, so group context should be preserved instead of treating every organization as an unrelated standalone record.

Next step

Use the Pactman API response to confirm the nonprofit, evaluate pub78_verified and its organization_types contribution information, then explicitly handle BMF context, group exemptions, revocation, source conflicts and freshness before applying your application's tax-deductible-contribution rule.

Ready to automate donation deductibility checks?

Use Pactman Nonprofit Check Plus API to connect Pub. 78 and nonprofit verification signals directly to your donation workflow.

Get an API Key →