501(c)(3) tax exemption
501(c)(3) refers to federal tax-exempt status for qualifying nonprofits. SwyftFilings offers a standalone service to prepare and file the IRS application for recognition of exemption (typically Form 1023 series), subject to your partner agreement.
Related: Partner products overview · State requirements reference
When to use this flow
Use the standalone 501(c)(3) service cart when the customer is forming or operating a nonprofit and needs federal exemption recognition as a discrete order. If 501(c)(3) is bundled with nonprofit formation, follow Incorporation Service Example or your package configuration.
Service slug and catalog
- Call Get Service Carts and find the 501(c)(3) / nonprofit exemption entry.
- Use that item’s
slugfor Get Service Configuration and Create New Order.
The OpenAPI specification includes 501c3 as a service value on Create New Order. Examples below use the slug 501c3. Replace with the slug returned for your account if it differs.
API flow
| Step | Method | Endpoint |
|---|---|---|
| 1. List carts | GET | externalCart.index |
2. Configuration, input_fields, catalog | GET | externalCart.getCart |
| 3. NAICS / classification (if required) | GET | businessClassification.index |
| 4. Create order | POST | order.store |
| 5. Submit order (if required) | POST | order.submitOrder |
| 6. Post-checkout (optional) | GET | order.getOrderPostCheckout |
| 7. Get order (optional) | GET | order.getOrder |
Follow Standalone Service Example for whether submit is required.
State-specific requirements (discovery)
Exemption applications are federal, but business_data.formation_state and nonprofit address fields still anchor jurisdiction. Use Get Service Configuration for the 501c3 slug to obtain the exact input_fields (governance, purpose, finances) for your build.
Example: Get Service Configuration
GET {baseUrl}/service-carts/501c3?service=501c3
Authorization: Bearer {token}
Abbreviated success payload:
{
"success": true,
"data": {
"name": "501(c)(3) Tax Exemption",
"slug": "501c3",
"description": "IRS application for recognition of tax exemption.",
"input_fields": [
{
"name": "Organization legal name",
"key": "business_data.name",
"type": "string",
"description": "Legal name of the nonprofit",
"validation_rules": ["required"]
},
{
"name": "Formation state",
"key": "business_data.formation_state",
"type": "enum",
"description": "State of incorporation (two-letter code)",
"validation_rules": ["required", "exists:states,abbr"]
}
],
"catalog": [
{
"sku": "SF_501C3_EXAMPLE_SG_0",
"name": "501(c)(3) Application Package",
"item_type": "product",
"has_gov_fee": true,
"price": 599,
"package": false
}
]
}
}
Example: Create order
{
"service": "501c3",
"email": "[email protected]",
"first_name": "Pat",
"last_name": "Jordan",
"phone_number": "5552221111",
"consent_sms": false,
"business_data": {
"name": "Community Garden Alliance",
"type": "Nonprofit",
"formation_state": "CA",
"category": "813410",
"address": "400 Civic Center Dr",
"city": "San Francisco",
"state": "CA",
"zip": "94102"
}
}
Abbreviated response:
{
"success": true,
"data": {
"message": "Order created successfully",
"order_uuid": "e5f6a7b8-c9d0-1234-ef01-345678901234"
}
}
Example: Submit order
{
"order_uuid": "e5f6a7b8-c9d0-1234-ef01-345678901234",
"skus": ["SF_501C3_EXAMPLE_SG_0"],
"total_amount": 599.0,
"payment_method_nonce": null,
"service": "501c3"
}
Fulfillment
- Customer Portal: Exemption applications usually require extensive questionnaires and document uploads; implement Swyft Customer Portal.
- Webhooks: Track order and processing status via Webhooks.
- IRS determination: Completion is when the IRS issues a determination letter (timeline varies).
Errors and edge cases
- Entity type: Nonprofit-specific validations may apply; honor
input_fieldsandcatalog.conditions. - User fees: IRS user fees change; reflect amounts from
catalogand current IRS guidance.