Direct answer
Interpret IRS Business Master File data as a set of separate signals rather than as one status field.
Start with bmf_status to determine whether the organization appears in the BMF data used by Pactman. Confirm the source record with bmf_ein and bmf_organization_name, interpret bmf_subsection with subsection_description, then review exemption, foundation, ruling and group-exemption fields. Use most_recent_bmf for freshness, and keep Pub. 78, revocation and BMF/Pub. 78 conflict signals separate when your workflow needs a broader nonprofit-status decision.
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 endpoint for one nonprofit or the bulk endpoint for multiple EINs.
- Confirm BMF presence. Evaluate
bmf_status. - Confirm the source identity. Review
bmf_einandbmf_organization_name. - Interpret the tax-exempt subsection. Read
bmf_subsectiontogether withsubsection_description. - Interpret exemption and foundation classification. Review
exempt_status_code,foundation_code,foundation_code_description,foundation_509a_status,foundation_type_codeandfoundation_type_description. - Review determination and group context. Use
ruling_month,ruling_yearandgroup_exemptionwhen those fields matter to the workflow. - Check BMF freshness. Review
most_recent_bmfandorganization_info_last_modified. - Handle religious-organization exceptions. Review
bmf_church_messagewhen populated instead of treating ordinary BMF absence as automatically conclusive. - Keep other sources separate. Review
pub78_verified, revocation fields,most_recent_pub78andirs_bmf_pub78_conflictonly when the application needs information beyond the BMF itself.
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. | Use as the BMF-presence signal, not as a universal nonprofit-verification result. |
bmf_ein / bmf_organization_name |
Preserves the EIN and organization name as represented in BMF data. | Confirm the source record corresponds to the nonprofit being evaluated. |
bmf_subsection / subsection_description |
Provides the BMF subsection code and its corresponding classification description. | Use together to interpret the organization's tax-exempt subsection. |
exempt_status_code |
Defines the type of exemption held by the organization in the mapped IRS data. | Preserve as a separate exemption-status attribute rather than inferring it from another field. |
foundation_code / foundation_code_description |
Provides the IRS foundation code and its textual description. | Use to interpret organization-type and foundation context. |
| Foundation classification | foundation_509a_status, foundation_type_code and foundation_type_description provide additional public-charity/private-foundation context. |
Keep foundation classification separate from the BMF subsection field. |
ruling_month / ruling_year |
Provides the month and year associated with the ruling or determination letter acknowledging exempt status. | Retain as determination-history or audit context. |
group_exemption |
Provides the IRS number associated with a parent organization's group exemption when applicable. | Preserve group-exemption context for parent or subordinate organization workflows. |
most_recent_bmf |
Gives the date of the most recent IRS Business Master File used by Pactman. | Use as the primary BMF freshness input. |
bmf_church_message |
Can explain why a church or religious organization may not follow ordinary BMF-presence expectations. | Route the record through religious-organization exception logic when the field is populated. |
| Separate IRS signals | pub78_verified, revocation fields and irs_bmf_pub78_conflict answer questions outside simple BMF interpretation. |
Evaluate them separately when the workflow requires contribution, revocation or cross-source decisions. |
Example decision logic
A practical BMF interpretation layer might:
- confirm
bmf_statusbefore treating BMF-specific fields as the source record; - verify
bmf_einandbmf_organization_nameagainst the intended nonprofit; - map
bmf_subsectiontosubsection_description; - retain
exempt_status_codeas its own exemption-status attribute; - interpret foundation fields separately from subsection fields;
- retain ruling and group-exemption values when relevant; and
- consider
most_recent_bmfbefore treating the BMF record as current enough for the workflow.
The supplied bulk sample illustrates why these dimensions should remain separate. EIN "680343125" returns bmf_subsection: "03" and subsection_description: "501(c)(3) Public Charity", with foundation_type_code: "pc" and foundation_type_description: "Public charity described in section 509(a)(1) or (2)". EIN "996103790" also returns bmf_subsection: "03" and subsection_description: "501(c)(3) Public Charity", while its foundation_type_code is "pf" and its foundation_type_description is "Private non-operating foundation (section 509(a))".
Important: Do not collapse subsection, exemption status and foundation classification into one application field. The current Pactman response exposes them separately, so downstream rules should preserve those distinctions.
Why use a consolidated nonprofit verification API?
Raw BMF data becomes more useful when an application can receive its major identity, subsection, exemption, foundation, ruling, group and freshness attributes in a normalized record instead of building a separate ingestion and interpretation pipeline.
Pactman Nonprofit Check Plus returns those BMF attributes 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 BMF interpretation logic can be reused for interactive checks and batch workflows.
One normalized response
Interpret BMF presence, identity, subsection, exemption status, foundation classification, ruling information and group context from one Pactman organization record.
Separate source signals
Keep BMF attributes distinct from pub78_verified, revocation fields and irs_bmf_pub78_conflict so your application does not lose source meaning.
Reusable compliance rules
Create one BMF interpretation layer that can support onboarding, donation processing, grantmaking, fintech, donor-advised fund and recurring-review workflows.
Developer-friendly automation
Convert the returned BMF fields into structured application attributes and rules instead of requiring a person to manually inspect IRS records for each EIN.
Frequently asked questions
What is the difference between bmf_status and bmf_subsection?
bmf_status tells you whether the organization appears in the BMF data used by Pactman. bmf_subsection identifies the subsection code associated with that BMF record. Use subsection_description to retain the mapped description of that code.
Should I use bmf_subsection to determine public-charity or private-foundation status?
Do not use it as the only foundation-classification field. Pactman also returns foundation_code, foundation_code_description, foundation_509a_status, foundation_type_code and foundation_type_description, which should remain separate in your interpretation logic.
What does most_recent_bmf tell me?
It is the date of the most recent IRS Business Master File represented in the Pactman response. Use it as a freshness signal when deciding whether the BMF data is current enough for your workflow.
What if the organization is missing from the BMF?
Review bmf_church_message when populated and evaluate any other source signals required by the workflow. The supplied mapping specifically provides this message for church or religious-organization cases where ordinary BMF presence may not be required to validate status.
Related Pactman artifacts
- How to Check a Nonprofit in the IRS Business Master File
- How to Determine a Nonprofit’s IRS Subsection From Its EIN
- How to Interpret a Nonprofit’s IRS Foundation Code
Next step
Map the Pactman BMF fields into separate application attributes for presence, identity, subsection, exemption status, foundation classification, ruling, group context and freshness, then apply Pub. 78, revocation and conflict logic only when the broader workflow requires those additional sources.
Ready to automate BMF interpretation?
Use Pactman Nonprofit Check Plus API to bring normalized IRS BMF data directly into your application.