Pactman Developer Resources · Nonprofit verification answers for developers and compliance teams
Home  /  Artifacts  /  How to Interpret the IRS Deductibility Code for a Nonprofit
Artifact · Developer How-To

How to Interpret the IRS Deductibility Code for a Nonprofit

In the current Pactman Nonprofit Check Plus API, there is no field named `deductibility_code`. Interpret the Publication 78 contribution classification using the `organization_types` array, especially `deductibility_status_description`, `deductibility_limitation` and `organization_type`. Confirm `pub78_verified` first, then preserve those contribution fields together with source freshness, group-exemption, foundation-classification and conflict signals.

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

Direct answer

In the current Pactman Nonprofit Check Plus API, there is no field named deductibility_code. The deductibility-related information is returned inside the organization_types array.

Use deductibility_status_description as the returned deductibility-status code, deductibility_limitation for the associated limitation, and organization_type for the Publication 78 description of the organization type and contribution treatment. Confirm pub78_verified first so the interpretation is tied to the Publication 78 record.

  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 endpoint for one nonprofit or the bulk endpoint for multiple EINs.
  3. Confirm the organization. Match ein and organization_name to the nonprofit your application intended to evaluate.
  4. Confirm Pub. 78 presence. Review pub78_verified.
  5. Confirm the Pub. 78 record. Review pub78_ein and pub78_organization_name.
  6. Read the deductibility-status code. Use deductibility_status_description inside organization_types.
  7. Read the deductibility limitation. Use deductibility_limitation.
  8. Read the contribution description. Use organization_type so the code and limitation retain their Publication 78 context.
  9. Review group-exemption and foundation context. Use pub78_indicator, group_exemption, foundation_type_code and foundation_type_description when relevant.
  10. Check freshness and conflicts. Review most_recent_pub78, most_recent_bmf, organization_info_last_modified, revocation fields and irs_bmf_pub78_conflict before applying a broader contribution-eligibility rule.

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 bulk-EIN Nonprofit Check endpoint used in Pactman's Production/Customer Environment. You can have at most 50 EINs in a bulk-EIN Nonprofit Check endpoint request.

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. Interpret the contribution fields in the context of the returned Pub. 78 record.
deductibility_status_description Returns the deductibility-status code inside organization_types. Current samples include values such as "PC" and "PF". Preserve the returned code as its own Pub. 78 contribution-classification field.
deductibility_limitation Returns the deductibility limitation associated with the Publication 78 organization type. Store or present the returned limitation separately from the status code.
organization_type Describes the organization type and intended contribution treatment as listed in Publication 78. Use with the status code and limitation so the application retains the full contribution context.
pub78_ein / pub78_organization_name Identifies the EIN and organization name as represented in Publication 78. Confirm that the contribution classification belongs to the nonprofit being evaluated.
pub78_indicator / group_exemption Provides group-exemption context for subordinate organizations. Apply group-exemption logic before treating an unusual Pub. 78 record as missing or inconsistent.
Foundation classification foundation_type_code and foundation_type_description provide public-charity/private-foundation context separately from the Pub. 78 contribution code. Preserve foundation classification as a separate signal.
Source dates most_recent_pub78, most_recent_bmf and organization_info_last_modified provide freshness context. Use them when deciding whether the contribution information is current enough for the workflow.
Revocation and conflict fields revocation_code, revocation_date, reinstatement_date and irs_bmf_pub78_conflict expose status history and cross-source disagreement. Keep them separate from the deductibility-status code, but consider them when the workflow needs a broader current-eligibility decision.

Example decision logic

A practical deductibility interpretation layer might:

  • match ein and organization_name to the intended nonprofit;
  • confirm pub78_verified;
  • read deductibility_status_description, deductibility_limitation and organization_type together;
  • retain Pub. 78 identity fields;
  • preserve group-exemption and foundation-classification context separately;
  • review revocation and conflict fields when the workflow needs broader eligibility; and
  • consider most_recent_pub78 before treating the result as current enough for the transaction.

The supplied bulk sample shows why the status code should not be interpreted in isolation. EIN "680343125" returns pub78_verified: true, deductibility_status_description: "PC", deductibility_limitation: "50%" and a corresponding organization_type description. EIN "996103790" also returns pub78_verified: true and deductibility_limitation: "50%", while its deductibility_status_description is "PF" and its organization_type describes a private non-operating foundation.

Important: The article title uses the phrase "IRS deductibility code," but the current Pactman response does not expose a field literally named deductibility_code. Do not create one in downstream integrations. Use the actual deductibility_status_description, deductibility_limitation and organization_type fields returned inside organization_types.

Why use a consolidated nonprofit verification API?

Deductibility interpretation is more useful when an application can receive Publication 78 presence, contribution status, contribution limitation, organization type, foundation classification, group-exemption context and source freshness together.

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, so the same contribution-classification logic can be reused across individual and batch workflows.

One normalized response

Retrieve Pub. 78 presence, deductibility status, limitation, organization type and supporting IRS context from one Pactman organization record.

Separate source signals

Keep deductibility_status_description, deductibility_limitation, organization_type, foundation classification, revocation fields and irs_bmf_pub78_conflict distinct so your application preserves what each field represents.

Reusable compliance rules

Apply one deductibility-interpretation layer across donations, grantmaking, payroll giving, donor-advised funds, fintech and nonprofit-onboarding workflows.

Developer-friendly automation

Convert the returned Publication 78 contribution fields into structured application attributes instead of requiring a user to manually interpret IRS deductibility information.

Frequently asked questions

Is there a Pactman API field named deductibility_code?

No. In the current API samples, the relevant status code is returned as deductibility_status_description inside organization_types.

What does deductibility_status_description contain?

It contains the deductibility-status code associated with the Publication 78 organization type. The current supplied samples include values such as "PC" and "PF".

Is deductibility_limitation the same thing as the deductibility-status code?

No. deductibility_limitation is a separate field. Keep it distinct from deductibility_status_description and use both together with organization_type.

Should foundation classification be inferred from the deductibility-status code alone?

No. Pactman separately returns fields such as foundation_type_code and foundation_type_description. Preserve those foundation-classification signals independently rather than deriving them only from the Pub. 78 deductibility-status code.

Next step

Use deductibility_status_description, deductibility_limitation and organization_type together as the Publication 78 contribution-classification result, preserve foundation, revocation and conflict information separately, and avoid introducing a made-up deductibility_code field into your application.

Ready to automate deductibility interpretation?

Use Pactman Nonprofit Check Plus API to bring Publication 78 contribution classification directly into your application.

Get an API Key →