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.
Recommended verification flow
- Normalize the EIN. Remove spaces or dashes so
12-3456789becomes123456789. - Send the EIN to the Nonprofit Check Plus API. Use the single-EIN
nonprofitcheckendpoint for one organization. - Confirm the organization. Match
einandorganization_nameto the nonprofit your application intended to evaluate. - Confirm Pub. 78 presence. Evaluate
pub78_verified. - Confirm the Pub. 78 record. Review
pub78_ein,pub78_organization_name,pub78_cityandpub78_state. - Read the contribution classification. Inspect
organization_type,deductibility_limitationanddeductibility_status_descriptioninsideorganization_types. - Review group-exemption context. Use
pub78_indicatortogether withgroup_exemptionwhen a subordinate organization may inherit the Pub. 78 status of a parent organization. - Check Pub. 78 freshness. Review
most_recent_pub78. - 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. - Check source conflicts and supporting IRS context. Review
irs_bmf_pub78_conflict,bmf_status,bmf_subsection,subsection_description,most_recent_bmfandorganization_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
einandorganization_nameto the intended nonprofit; - confirmed
pub78_verifiedis true; - matched
pub78_einandpub78_organization_nameto the relevant Publication 78 record; - captured
organization_type,deductibility_limitationanddeductibility_status_description; - considered
pub78_indicatorandgroup_exemptionwhere relevant; - reviewed revocation and reinstatement information for broader current-status decisions;
- handled any
irs_bmf_pub78_conflict; and - considered
most_recent_pub78before 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.
Related Pactman artifacts
- How to Check Whether a Nonprofit Is Listed in IRS Publication 78
- How to Check Whether Donations to a Nonprofit Are Tax Deductible
- How to Interpret the IRS Deductibility Code for a Nonprofit
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.