canonical: https://jentic.com/apis/candid.org/candid

# Candid CharityCheck

Jentic publishes the only available OpenAPI specification for CharityCheck, keeping it validated and agent-ready. Candid CharityCheck validates the nonprofit status and eligibility of a single U.S. organisation by EIN against IRS Publication 78, the IRS Business Master File, the Internal Revenue Bulletin, the Automatic Revocation of Exemption list, and the OFAC Specially Designated Nationals list. Two GET endpoints accept an EIN (optionally scoped by state) and return organisation type, deductibility limitations, religious-organisation status, revocation history, and a date-stamped Charity Check PDF for due-diligence archiving.

## For AI agents

Validate a U.S. nonprofit's IRS status and OFAC sanctions exposure by EIN and retrieve a date-stamped due-diligence PDF.

## Scope

Does not handle non-U.S. charity registries, donor identity screening, or grant disbursement - use for U.S. nonprofit IRS-status validation by EIN only.

## Capabilities

- Verify a U.S. nonprofit's tax-exempt status against IRS Publication 78 and the Business Master File via `/v1/{ein}`
- Check OFAC Specially Designated Nationals exposure for the queried organisation
- Surface Automatic Revocation of Exemption status and revocation dates
- Return contribution deductibility limitations and organisation type for grant-eligibility decisions
- Identify religious-organisation status that affects filing requirements
- Retrieve a date-stamped Charity Check PDF document for compliance archiving

## Use cases

### Grant-Making Due Diligence

Foundations and donor-advised funds must verify a recipient's tax-exempt status and sanctions exposure before disbursing a grant. CharityCheck returns the IRS Publication 78 record, BMF data, and OFAC SDN status for a given EIN in one call, with a downloadable PDF that auditors can keep on file as evidence of compliance.

Example prompt: GET `/v1/{ein}` for the grantee's EIN, confirm status='Subsection 501(c)(3)' and revoked=false, then archive the returned PDF reference in the grant record.

### Donation Platform Eligibility Filtering

Donation platforms need to refuse contributions to revoked or sanctioned charities at submission time. Calling CharityCheck before charging the donor surfaces revocation, deductibility, and OFAC matches so the platform can block the transaction or warn the donor that their gift may not be tax-deductible.

Example prompt: GET `/v1/{state}/{ein}` when the donor selects a charity, refuse the donation if revoked=true or any OFAC match is reported.

### Corporate Matching Gift Workflows

Employer matching-gift programs validate that nominated charities are eligible 501(c)(3) public charities before approving a match. CharityCheck returns the organisation type and deductibility limit, letting HR systems auto-approve eligible charities and route ineligible nominations for manual review.

Example prompt: GET `/v1/{ein}` for the employee's nominated charity and approve the match only when organisation_type='Public Charity'.

### AI Agent Charity Compliance via Jentic

Through Jentic, an agent searches for 'verify a U.S. charity by EIN', loads the input schema for `/v1/{ein}`, and executes the call without managing the Subscription-Key header. Jentic's vault holds the Candid subscription key so it never enters the agent's prompt context.

Example prompt: Use the Jentic SDK to search 'verify a U.S. charity by EIN', load the `/v1/{ein}` operation schema, and execute it with the EIN to confirm 501(c)(3) status and OFAC clearance.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/v1/{ein}` | Validate a charity by EIN |
| GET | `/v1/{state}/{ein}` | Validate a charity by EIN narrowed by state |

## Key resources

- **Charity check by EIN** — Validate nonprofit status and OFAC exposure by EIN, optionally narrowed by state

## Why Jentic

- **Setup:** Wiring CharityCheck by hand means setting its Subscription-Key header and calling the EIN lookup routes yourself. Through Jentic you install once, import CharityCheck from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** CharityCheck puts the EIN in the URL path (`/v1/{ein}`) on read-only lookups, so scope the agent to those verification operations. You choose the operations it may call, so it stays limited to checking U.S. nonprofit IRS status and nothing else.
- **Credential handling:** Your Candid Subscription-Key is stored once, encrypted, by your own Jentic One instance and injected into the Subscription-Key header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'verify a U.S. charity by EIN', and Jentic returns the matching CharityCheck operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **ComplyAdvantage API** — ComplyAdvantage screens individuals and entities against global sanctions, PEP, and adverse-media lists, where CharityCheck focuses specifically on U.S. nonprofit IRS status with OFAC overlay.
- **OpenSanctions API** — OpenSanctions provides open consolidated sanctions data that pairs with CharityCheck's 501(c)(3) checks for cross-border grant-making.
- **Stripe API** — Stripe processes donor payments while CharityCheck validates the receiving nonprofit's IRS status before the transaction completes.

## FAQ

### Why is there no official OpenAPI spec for CharityCheck?

Candid documents CharityCheck through its developer portal but does not publish a redistributable OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call CharityCheck via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does CharityCheck use?

It uses an API key passed as Subscription-Key, either in the request header or as a query parameter. Through Jentic, the key is stored in your Jentic One instance and injected into the Subscription-Key header at execution time, so the raw key never enters the agent's prompt context.

### Can I retrieve a downloadable PDF for archiving?

Yes. The CharityCheck response references a date and time-stamped Charity Check PDF that grant-makers and auditors can archive as evidence of due-diligence at the moment of validation. The Charity Check PDF API is included with the same subscription key.

### How do I look up an EIN through Jentic?

Run pip install jentic, then search 'verify a U.S. charity by EIN' through the Jentic SDK. Jentic returns GET `/v1/{ein}` with its input schema. Provide the 9-digit EIN and execute the operation; supply the state code as well to use `/v1/{state}/{ein}` when state context is known.

### Are CharityCheck records updated as IRS data changes?

Yes. Candid refreshes CharityCheck against the IRS Publication 78, Business Master File, Internal Revenue Bulletin, and Automatic Revocation feeds, so a request returns the latest status visible to Candid at the time of the call. The PDF carries the timestamp of the lookup.

### Is CharityCheck free?

No. CharityCheck is a paid Candid product accessed via subscription. Pricing details are not in the OpenAPI spec; check developer.candid.org for current tier prices and call quotas.

### Can I limit what my agent is allowed to do with the CharityCheck API?

Yes. Because you run your own self-hosted Jentic One instance, you decide which CharityCheck operations the agent can call and which credentials it may use. CharityCheck exposes only read-only EIN lookups, GET `/v1/{ein}` and GET `/v1/{state}/{ein}`, so you can scope the agent to those verification calls and nothing more. Your rules hold the Candid Subscription-Key and grant it only to the lookups you allow, keeping the agent limited to checking U.S. nonprofit IRS status by EIN.
