Important: Each partner manages multiple customers (tax firms). Each workspace represents one customer/tax firm. You’ll create a separate workspace for each tax firm customer you onboard.
Prerequisites
Before you begin, ensure you have:- Partner account with Filed
- API access credentials (API Key)
- Partner key (provider or partner key is a unique identifier from Filed for your platform)
- Dedicated slack channel for your partner account
- GraphQL endpoint:
https://gateway.filed.com/graphql
Contact your Filed account representative if you need assistance creating your
partner account, API key, and partner key or have questions about the integration process.
Overview
The partner integration process enables you to:- Authenticate to Filed’s API using your API key
- Verify your connection by testing the API key with a sample query
- Create workspaces for each customer (tax firm) - one workspace per tax firm
- Onboard tax firm users by adding them to their respective workspaces
- Set up integrations with tax software providers for each tax firm
- Generate deep links that seamlessly redirect tax firm users to Filed
Understanding the model
- Partner: Your partner user account that manages multiple tax firm customers
- Workspace: Each workspace represents one customer (tax firm)
- One workspace = One customer = One tax firm
- A workspace can have multiple users from the same tax firm
- Partners like you can create multiple workspaces (one for each tax firm customer)
Integration Workflow
The partner integration process consists of six main steps:Step 1: Authenticate to Filed’s API using your API key
Exchange your API key for an access token that will be used for all subsequent API requests.GraphQL mutation
Implementation notes
- Store the
accessTokensecurely and use it in theAuthorizationheader for all subsequent requests - Access tokens are valid for a limited time; implement token refresh logic as needed
- Format:
Authorization: Bearer <accessToken> - Include a
source-platformheader with your partner name or identifier (e.g.,<partner_key>,qount,partner-name). This header is used to uniquely identify API requests for analytical purposes and does not affect rate limits or any other API functionality.
Important: The access token obtained from your partner API key provides access to all workspaces you create as a partner. This means you can use the same access token to call APIs against any workspace you’ve created, allowing you to manage multiple tax firm customers from a single authenticated session.
Step 2: Verify your connection
Make a test request to verify your API key works correctly. Theme query returns information about the authenticated user.
GraphQL Query
Implementation notes
- The
mequery returns information about the currently authenticated user - A successful response confirms your API integration is working correctly
- The
idfield uniquely identifies the authenticated user
Success! If you receive a valid response with your user information, your API key is working correctly and you’re ready to proceed with creating workspaces.
Step 3: Create workspace for each customer (tax firm)
Create a workspace for each tax firm customer. Each workspace represents one tax firm and will be used to manage that tax firm’s users and their tax preparations.Note: You’ll create a separate workspace for each tax firm customer. If you have 10 tax firm customers, you’ll create 10 workspaces.
GraphQL mutation
Implementation notes
- Save the
workspaceIdandslugfor each workspace (customer) - you’ll need the workspace ID for adding users and the slug for generating deep links - The
slugis essential for creating reliable deep links that route customers to the correct workspace - Workspace type will be automatically set to
partnerfor partner accounts - Create a new workspace for each tax firm customer you onboard
- Store the mapping between your customer IDs, workspace IDs, and workspace slugs for reference
Step 4: Add tax firm users to workspace
Add the tax firm’s users (preparers, staff, etc.) to their workspace by email addresses. This enables them to access Filed through deep links.GraphQL mutation
Implementation notes
- No email invitations are sent - users are simply added to the workspace
- If a user already exists, they will be added to the workspace without creating a duplicate account
- You can add multiple users in a single request
- Add users to the specific workspace that corresponds to their tax firm
- After being added, users can sign in using their email address and access the workspace through deep links
Step 5: Set up your integration with Filed
Complete the integration setup between your platform and Filed by establishing a provider connection. This enables Filed to communicate with your platform using the credentials and configuration you provide.Implementation Details: The specific implementation of what happens on Filed’s side when
startProviderConnection and verifyProviderConnection are called will be discussed and coordinated between your team and Filed’s engineering team during the integration process.- Start Provider Connection: This is used to setup a connection between your platform and Filed. You can pass in credentials for the specific tax firm based on what our engineering teams agree on. The idea is after you call this, in Filed’s integration section, the integration with your name on it will start showing up as pending.
-
Verify Provider Connection: This is where Filed will use the credentials and details you provided and call an endpoint at your end to test the connection between you and us. If this call succeeds, we will now start showing on our end that Filed and your platform has successfully connected. You can now start using the connection ID (the
idfield from the response) to send the tax prep to us.
Step 5a: Start Provider Connection
This is used to setup a connection between your platform and Filed. You can pass in credentials for the specific tax firm based on what our engineering teams agree on. The idea is after you call this, in Filed’s integration section, the integration with your name on it will start showing up as pending.For complete API reference, see Start provider connection.
Partner Key: Filed will provide you with a unique partner key identifier for your platform. Examples:
- If Google was our partner we would use:
google - Your specific partner key will be provided by Filed during partner onboarding
GraphQL mutation
Implementation notes
- workspaceId: The ID of the workspace (tax firm) you’re setting up the integration for
- providerKey: Your partner key provided by Filed (e.g.,
<partner_key>,qount) - inputs: Optional JSON object containing firm-specific credentials and configuration:
apiKey: Firm’s API key for your platformsecurityToken: Security token or authentication tokenbaseUrl: Base URL for API calls (if different from default)- Any other credentials or configuration your platform requires
- Save the
idfrom the response - you’ll need it for the collect step - The connection status will be
pendinguntil you complete the collect step
Step 5b: Verify Provider Connection
This is where Filed will use the credentials and details you provided and call an endpoint at your end to test the connection between you and us. If this call succeeds, we will now start showing on our end that Filed and your platform has successfully connected. You can now start using the connectionId to send the tax prep to us.For complete API reference, see Verify provider connection.
GraphQL mutation
Implementation notes
- connectionId: The connection ID (the
idfield) returned from thestartProviderConnectionmutation - inputs: Optional JSON object containing additional configuration:
firmReferenceId: Your internal reference ID for the tax firm (useful for correlation)- Any other parameters you want Filed to store for this tax firm
- Configuration that helps Filed communicate with your platform
- Filed will use the credentials from the start step to make an API call to your platform
- If the API call succeeds, Filed marks the connection as
active - If the API call fails, the connection status will reflect the error state
Connection Status: After successful collection, the connection status will be
active, indicating that Filed can successfully communicate with your platform using the provided credentials.Step 6: Generate deep links and redirect URIs
Generate deep links that seamlessly redirect tax firm users to Filed. These links can be used at any time to send users from a specific tax firm to their workspace and specific pages within Filed.For detailed information about deep link formats, common redirect paths, and implementation examples, see the Deep links API reference.
Complete Integration Example
Here’s a complete example showing all steps together:Best Practices
Security
- Never expose API keys: Store API keys in environment variables or secure secret management systems
- Use HTTPS: Always make API requests over HTTPS
- Validate inputs: Always validate user inputs before making API calls
Error handling
- Handle authentication errors: Implement retry logic for expired tokens
- Validate responses: Check for errors in GraphQL responses
- Log errors: Maintain error logs for debugging and monitoring
User experience
- Provide clear instructions: Guide tax firm users on what to expect when clicking deep links
- Handle edge cases: Account for users who may already have Filed accounts
- Monitor onboarding: Track tax firm user activation rates and identify bottlenecks
- Workspace isolation: Ensure users from different tax firms are directed to their correct workspaces
Support
For additional support or questions:- Slack: Contact your dedicated partner Slack channel
- Email: Reach out to your Filed account representative
- Documentation: Check our API documentation for more details
Next Steps
After completing the integration:- Review API reference: Check out the detailed API reference for complete endpoint documentation
- Test the flow: Create a test workspace for a tax firm customer and verify all steps work correctly
- Monitor usage: Track API usage and tax firm onboarding metrics per workspace
- Iterate: Gather feedback and refine your integration based on tax firm needs
- Scale: Automate the process to handle multiple tax firm customers efficiently
- Manage multiple workspaces: Implement systems to track and manage workspaces for all your tax firm customers