Pactman Developer Resources · Nonprofit verification answers for developers and compliance teams
Home  /  Artifacts  /  How to Determine a Nonprofit’s IRS Subsection From Its EIN
Artifact · Developer How-To

How to Determine a Nonprofit’s IRS Subsection From Its EIN

Send the nonprofit's EIN to Pactman Nonprofit Check Plus API and review `bmf_subsection` together with `subsection_description`. `bmf_subsection` returns the subsection code from the IRS Business Master File data, while `subsection_description` provides the mapped classification description. Confirm `bmf_status` and the BMF identity first, then keep foundation classification, Pub. 78, revocation and source-conflict fields separate from the subsection result.

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

Direct answer

To determine a nonprofit's IRS subsection from its EIN, send the EIN to Pactman Nonprofit Check Plus API and review bmf_subsection together with subsection_description.

bmf_subsection is the subsection code returned from the IRS Business Master File data used by Pactman. subsection_description provides the mapped description for that code. Confirm bmf_status, bmf_ein and bmf_organization_name first so the subsection is tied to the intended BMF record, then keep foundation, Pub. 78, revocation and source-conflict information separate.

  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 BMF presence. Review bmf_status.
  5. Confirm the BMF record identity. Review bmf_ein and bmf_organization_name.
  6. Read the subsection code. Use bmf_subsection.
  7. Read the mapped subsection description. Use subsection_description with the code instead of storing the code alone.
  8. Keep foundation classification separate. Review foundation_code, foundation_code_description, foundation_509a_status, foundation_type_code and foundation_type_description when your workflow also needs public-charity/private-foundation context.
  9. Check freshness. Review most_recent_bmf and organization_info_last_modified.
  10. Use other IRS signals separately. Review pub78_verified, revocation fields and irs_bmf_pub78_conflict only when the workflow needs information beyond the BMF subsection.

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
bmf_status Indicates whether the organization appears in the Business Master File data used by Pactman. Interpret BMF subsection fields only in the context of the returned BMF record.
bmf_ein / bmf_organization_name Preserves the EIN and organization name as represented in the BMF data. Confirm that the subsection belongs to the intended nonprofit.
bmf_subsection Returns the subsection code from the Business Master File. The supplied mapping states that the code designates the type of tax-exempt organization. Store or route the returned subsection code as its own IRS classification attribute.
subsection_description Provides the mapped description corresponding to bmf_subsection. Present or store the human-readable classification together with the code.
exempt_status_code Provides the EO status code describing the type of exemption held by the organization. Keep as a separate exemption-status attribute rather than treating it as the subsection code.
Foundation classification fields foundation_code, foundation_code_description, foundation_509a_status, foundation_type_code and foundation_type_description describe foundation context separately from subsection. Do not infer public-charity/private-foundation classification from bmf_subsection alone.
most_recent_bmf Provides the date of the most recent IRS Business Master File used by Pactman. Use as a freshness input for the subsection result.
bmf_church_message Can provide context when a church or religious organization does not follow ordinary BMF-presence expectations. Apply religious-organization exception logic when this field is populated.
Other IRS signals pub78_verified, revocation fields and irs_bmf_pub78_conflict answer questions separate from BMF subsection classification. Preserve them independently when the broader workflow requires those checks.

Example decision logic

A practical subsection lookup might:

  • match ein and organization_name to the intended nonprofit;
  • confirm bmf_status and the BMF identity fields;
  • read bmf_subsection;
  • pair it with subsection_description;
  • retain exempt_status_code and foundation fields separately; and
  • consider most_recent_bmf before treating the subsection information as current enough for the workflow.

The supplied bulk sample provides a concrete example. For EIN "680343125", Pactman returns bmf_status: true, bmf_ein: "680343125", bmf_subsection: "03" and subsection_description: "501(c)(3) Public Charity". The same record separately returns foundation_code: "16", foundation_type_code: "pc" and foundation_type_description: "Public charity described in section 509(a)(1) or (2)".

Important: Do not interpret bmf_subsection as a complete substitute for foundation classification, Pub. 78 contribution status or current revocation status. The Pactman response exposes those as separate fields because they answer different nonprofit-verification questions.

Why use a consolidated nonprofit verification API?

An IRS subsection lookup is more useful when the application can receive the subsection code, its description, BMF identity, exemption status, foundation context and source freshness in one normalized record.

Pactman Nonprofit Check Plus returns those fields alongside Pub. 78, revocation and other verification signals. The supplied single-EIN and bulk examples use the same current 43 organization-level fields, so the same subsection logic can be reused for interactive and batch workflows.

One normalized response

Retrieve BMF presence, source identity, subsection code, subsection description, exemption status and foundation context from one Pactman organization record.

Separate source signals

Keep bmf_subsection, foundation fields, pub78_verified, revocation fields and irs_bmf_pub78_conflict distinct so your application preserves what each field actually represents.

Reusable compliance rules

Apply one subsection-interpretation layer across nonprofit onboarding, donations, grants, fintech and recurring compliance workflows.

Developer-friendly automation

Convert the EIN directly into structured BMF subsection attributes instead of requiring users or staff to manually search and interpret IRS records.

Frequently asked questions

Which Pactman field contains the IRS subsection code?

Use bmf_subsection. The supplied data mapping describes it as the subsection code from the Business Master File that designates the type of tax-exempt organization.

What is subsection_description used for?

It provides the description corresponding to bmf_subsection. Store or display both fields together so your application retains the IRS code and its human-readable classification.

Does a subsection code tell me whether the organization is a public charity or private foundation?

Not by itself. Pactman returns separate foundation-specific fields such as foundation_code, foundation_509a_status, foundation_type_code and foundation_type_description. Keep those separate from BMF subsection classification.

What if the nonprofit is not present in the BMF?

Review bmf_church_message when populated and evaluate the other source signals required by your workflow. The supplied data mapping specifically includes this message for church or religious-organization cases where ordinary BMF inclusion may not be required to validate status.

Next step

Use bmf_subsection and subsection_description as a paired IRS classification result, preserve foundation and exemption fields separately, and apply Pub. 78, revocation and conflict logic only when the broader verification workflow requires them.

Ready to automate IRS subsection lookups?

Use Pactman Nonprofit Check Plus API to retrieve IRS BMF subsection data directly from an EIN.

Get an API Key →