How it works?

Here's how the process generally works:

Taxpayer's Consent:

The taxpayer must provide written consent to you to access the transcripts. You must obtain authorization from the IRS, granted by the taxpayer. This includes the taxpayer agreeing to defined terms regarding data access and usage. Throughout the consent process, you'll gather taxpayer information and send it to Compliancely. This consent can be obtained through an electronic consent process provided the necessary details for IRS authorization if you use the Compliancely consent collection process. Taxpayer just need to agree the IRS terms and electronically sign.

Form 8821 is an IRS tax form titled "Tax Information Authorization." This form allows individuals or entities to designate a representative (such as a tax professional or financial advisor) to access and receive taxpayer's tax information, including transcripts, on the taxpayer's behalf. It grants permission for the designated individual to communicate with the IRS regarding the specific tax matters outlined in the form. The IRS accepts electronic signatures on Form 8821, provided that certain criteria are met. This allows taxpayers to authorize representatives to access taxpayer's tax information conveniently and securely online.

Modes of consent collection

  1. Generic consent link - A single Compliancely consent collection link can be shared with multiple members.
  2. Dedicated (Pre-filled) consent link (Recommended) - A dedicated Compliancely consent collection link can be provided upon using the API by pre-filling the taxpayer's data.
  3. Direct Upload - A signed 8821 consent pdf can be uploaded using an API along with metadata.

1. Generic consent link

Walk-through of Compliancely consent link process.

Note: The data used in this walk-through is dummy and random.

On successful completion of consent collection, Compliancely will process the request. Results will be notified either and/or of the configured URLs (redirect_url, webhook_url). For more information on how to set the URLs at the template level here

2. Pre-filled Consent links (Recommended FLow)

Compliancely also supports the pre-filled consent links. One needs to use an API (Please refer to API details here) to ingest the taxpayer's data. On a successful API call, a dedicated consent link will be provided in the response. An email will be sent along with a consent link to the taxpayer. The minimum information required to create a request is the template_id, name, email address, and workflow. We suggest including webhook URLs in the input to send the response.

Note: The data ingested through this API call are non-editable by the taxpayer while filling the data in the consent link.

3. Direct Signed Consent PDF Upload

An 8821 Signed Consent PDF is to be uploaded along with metadata. The maximum allowed PDF size is 15MB. Please refer to the API document here

How to see the result

Compliancely provides a GET API to see the results of a given widget request. Please refer to the API details here

The response contains two main components: the consent key, which holds consent details, and the transcript key, which contains the transcript information. The transcript includes an output_link pointing to a zip file containing one or more requested transcript PDFs, and the output_details may provide specifics about each transcript type and the corresponding individual PDF links.

It's important to note that any links, whether they are labeled as output_link, consent_link, or pdf_link within the response, are not public and have a Response Content-Type of application/octet-stream. As a result, these links should be treated as additional API endpoints, and they require an access_tokenfor access. Using the access_token, triggering the pdf/zip link as an API endpoint is necessary. The resulting data from the response should be stored in a file. Below is an example in cURL & Python illustrating how to save this data. Users who wish to open these links in a web browser while logged into the Compliancely portal can download the files directly.

curl -X GET "<pdf/zip file link>" -H "Authorization: Token <Authtoken>" -o "<dir>/<filename>.pdf/zip"

import requests
import os

headers = {
  'Authorization': f'Token <Authtoken>'
}
response = requests.get('<pdf/zip file link>', headers=headers)
destination_file_name = "{}.pdf/zip".format(<filename>)
destination_file_path = os.path.join(<dir>, destination_file_name)
with open(destination_file_path, 'wb') as file:
    file.write(response.content)

Ensure to replace <pdf/zip file link>, <filename>, and <Authtoken> with the actual link/data, and ensure that the <dir> variables are correctly defined in your code.

Status Life Cycle

Pending: This status indicates that the record has been added and is yet to receive consent.

Consent Collected: This status signifies that the required consent from relevant parties has been collected for further processing of the record.

Consent Processing: This status suggests that the collected consent is currently being processed. It may involve verifying its validity and ensuring compliance with regulations.

Consent Submitted: This status signifies that the collected consent has been submitted for IRS review or approval

Consent Rejected: This status implies that the provided consent has been rejected due to certain reasons. Further action might be required to rectify or obtain new consent. The reason will be provided upon rejection. This status is generally given by Compliancely when there are any data errors or missing information.

Consent Rejected By IRS: This status indicates that after review, the IRS has rejected or denied acceptance of the submitted consent. Additional steps may need to be taken to address this rejection.

Consent Accepted By IRS: This status indicates that the consent provided has been accepted and approved by the IRS (Internal Revenue Service).

Processing: This status suggests that the record is currently being processed to pull the transcripts.

Completed: This status suggests that all necessary actions related to record processing have been completed without any issues or errors.

Error: This status implies an error occurred during some stage of record processing. Troubleshooting and corrective measures may be needed.

Consent Rejection Life Cycle

There could be several reasons for the consent to be rejected. The rejection reasons can be found in the reason field in the API response and the same can be notified by email. If the consent is rejected, you can use the following APIs to re-upload it after making the necessary fixes with the request id that is provided when the initial POST API request. There will be no additional cost to re-upload the consent upon rejection.

  • For Generic or Dedicated Consent links: You can use this API to re-upload the consent. Requesters have two options: they can either submit the data using the information they already have (excluding signature errors), or they can share a new consent link with the Taxpayer by using the send_edit_link_to_taxpayer_on_rejection key in the API request. This new consent updation link will be provided once you make a PUT API request.
  • For Direct Upload PDF: This API allows you to re-upload in a similar way as with the Generic or Dedicated Consent links process.

Please note that the Compliancely Tax Transcript feature utilizes a Widget, which serves as an interface for collecting consents for both Generic and Dedicated Consent collection methods. Therefore, when you receive an API response, if it's related to Generic or Dedicated Consents, then request_id refers to a Widget reference. On the other hand, if it's related to the Direct Upload PDF method, then request_id refers to a Tax Transcript reference. Hence, there are different APIs used depending on which collection method was chosen.

Webhooks will be triggered on three different statuses: Consent collection, Consent Rejected (or) Consent Rejected By IRS, and Completed.