Pactman Developer Resources · Nonprofit verification answers for developers and compliance teams
Home  /  Artifacts  /  How to Use IRS Pub. 78 Data to Verify Tax-Deductible Organizations
Artifact · Developer How-To

How to Use IRS Pub. 78 Data to Verify Tax-Deductible Organizations

Send the organization's EIN to Pactman Nonprofit Check Plus API, confirm `pub78_verified`, and then inspect the `organization_types` array. Use `organization_type`, `deductibility_limitation` and `deductibility_status_description` to preserve the contribution classification returned from Publication 78. Review Pub. 78 identity, group-exemption, revocation, conflict and freshness fields before applying your application's final contribution-eligibility rule.

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

Direct answer

Use the nonprofit's EIN with Pactman Nonprofit Check Plus API, then treat pub78_verified as the Publication 78 presence signal and the organization_types array as the contribution-classification detail.

When pub78_verified is true, review organization_type, deductibility_limitation and deductibility_status_description inside organization_types. Confirm the Publication 78 identity with pub78_ein and pub78_organization_name, and use group-exemption, revocation, conflict and freshness fields as supporting context before your application decides how to handle the organization.

  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 application intended to evaluate.
  4. Confirm Pub. 78 presence. Evaluate pub78_verified.
  5. Confirm the Pub. 78 record. Review pub78_ein, pub78_organization_name, pub78_city and pub78_state.
  6. Read the contribution classification. Inspect organization_type, deductibility_limitation and deductibility_status_description inside organization_types.
  7. Review group-exemption context. Use pub78_indicator together with group_exemption when a subordinate organization may inherit the Pub. 78 status of a parent organization.
  8. Check Pub. 78 freshness. Review most_recent_pub78.
  9. Review status exceptions. Check pub78_church_message, bmf_church_message, revocation and reinstatement fields when ordinary Pub. 78 presence does not tell the whole story.
  10. Check source conflicts and supporting IRS context. Review irs_bmf_pub78_conflict, bmf_status, bmf_subsection, subsection_description, 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
pub78_verified Indicates whether the organization is included in the most recent Publication 78 data set used by Pactman. Use as the primary Pub. 78 presence signal.
pub78_ein / pub78_organization_name Identifies the EIN and organization name as they appear in Publication 78 data. Confirm the Pub. 78 record belongs to the nonprofit being evaluated.
organization_types Contains the Publication 78 contribution classification returned for the organization. Inspect its child fields instead of reducing contribution eligibility to a boolean.
organization_type Describes the type of organization and intended use of contributions as listed in Publication 78. Preserve the returned contribution description for downstream rules and user-facing explanations.
deductibility_limitation Provides the deductibility limitation associated with the returned Pub. 78 organization type. Retain the returned limitation as part of the contribution-eligibility record.
deductibility_status_description Returns the deductibility status code associated with the Pub. 78 organization type. Use the returned code with the other Pub. 78 fields rather than interpreting pub78_verified alone.
pub78_indicator / group_exemption Preserves group-exemption context, including subordinate organizations that can take on the Pub. 78 status of a parent organization. Apply group-exemption rules before deciding that a subordinate record is missing or ineligible.
most_recent_pub78 Provides the date of the most recent Publication 78 data used by Pactman. Use as a freshness input for the contribution-verification result.
Revocation fields revocation_code, revocation_date and reinstatement_date expose revocation-related history. Review separately before using Pub. 78 data in a broader current-eligibility decision.
irs_bmf_pub78_conflict Indicates whether BMF and Pub. 78 differ on the organization's private-foundation classification. Preserve and review the conflict instead of silently selecting one classification.
BMF and source freshness bmf_status, bmf_subsection, subsection_description, most_recent_bmf and organization_info_last_modified provide supporting IRS and freshness context. Use when the workflow needs more than the Pub. 78 contribution record alone.

Example decision logic

A practical Pub. 78 contribution-verification workflow might continue only after the application has:

  • matched ein and organization_name to the intended nonprofit;
  • confirmed pub78_verified is true;
  • matched pub78_ein and pub78_organization_name to the relevant Publication 78 record;
  • captured organization_type, deductibility_limitation and deductibility_status_description;
  • considered pub78_indicator and group_exemption where relevant;
  • reviewed revocation and reinstatement information for broader current-status decisions;
  • handled any irs_bmf_pub78_conflict; and
  • considered most_recent_pub78 before treating the contribution information as current enough for the workflow.

The supplied bulk sample shows why Pub. 78 presence and contribution classification should remain separate. EIN "680343125" returns pub78_verified: true, deductibility_status_description: "PC", deductibility_limitation: "50%" and foundation_type_code: "pc". A second current sample, EIN "996103790", also returns pub78_verified: true, but its deductibility_status_description is "PF" and its foundation_type_code is "pf".

Important: pub78_verified confirms presence in the Publication 78 data used by Pactman. It does not replace the contribution classification inside organization_types, and it should not be turned into a universal yes/no answer for every donor, contribution type or downstream policy.

Why use a consolidated nonprofit verification API?

A Pub. 78 integration needs more than a simple presence lookup when an application must explain or automate contribution eligibility. The application may need to confirm the Pub. 78 identity, retain the contribution classification and limitation, handle group exemptions, review revocation history and understand whether other IRS sources disagree.

Pactman Nonprofit Check Plus returns those signals in one normalized response. The supplied single-EIN and bulk examples use the same current 43 organization-level fields, allowing the same Pub. 78 contribution logic to be reused across one-off checks and higher-volume workflows.

One normalized response

Evaluate Pub. 78 presence, Pub. 78 identity, contribution classification, group-exemption context, revocation and supporting IRS data 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 what each source actually says.

Reusable compliance rules

Apply the same Pub. 78 interpretation layer across donation, grantmaking, payroll-giving, donor-advised fund and fintech workflows while allowing each product to define its own acceptance criteria.

Developer-friendly automation

Move Publication 78 contribution checks into application code so the organization can be evaluated automatically from its EIN without requiring a user to manually search and interpret Pub. 78 data.

Frequently asked questions

Is pub78_verified: true enough to verify that an organization is tax deductible?

It confirms that the organization is included in the most recent Publication 78 data set used by Pactman. For contribution classification, also inspect organization_type, deductibility_limitation and deductibility_status_description inside organization_types.

What does deductibility_status_description tell my application?

It returns the deductibility status code associated with the Publication 78 organization type. The current API samples show values such as "PC" and "PF", so preserve the returned code instead of assuming all Pub. 78 records share one contribution classification.

Why should I keep deductibility_limitation separate from pub78_verified?

Because the fields answer different questions. pub78_verified describes Publication 78 presence, while deductibility_limitation carries the limitation associated with the returned organization type. Keeping them separate preserves the meaning of the source data.

What if Pub. 78 and BMF disagree about the organization?

Review irs_bmf_pub78_conflict together with the Pub. 78 and BMF classification fields and their source dates. Preserve the disagreement so the application's policy can decide whether to continue, select the newer relevant source or require review.

Next step

Use pub78_verified to establish Publication 78 presence, preserve the returned organization_types contribution fields, and then apply group-exemption, revocation, conflict and freshness rules according to the contribution workflow your application actually needs.

Ready to automate Pub. 78 deductibility checks?

Use Pactman Nonprofit Check Plus API to connect Publication 78 contribution data directly to your application.

Get an API Key →