# Claim attachments
Source: https://www.stedi.com/docs/healthcare/submit-claim-attachments

***

title: "Claim attachments"
sidebarTitle: "Attachments"
---------------------------

Claim attachments are additional documents that help justify or validate a claim. They're typically required when the claim alone doesn't provide enough information for the payer to make a decision, such as when a procedure is unusual, high-cost, or uses an unlisted code.

Attachments can include medical records, treatment plans, radiographs, photographs, itemized bills, and letters from providers - the type required for each claim depends on the services listed and the payer's rules. For example, a claim for a dental crown may require X-rays, while a claim for a surgery may require an operative report.

You can submit [unsolicited 275 claim attachments](#solicited-vs-unsolicited-attachments) for professional, dental, and institutional claims in either JSON or X12 EDI format. For professional claims you can also submit attachments through the Stedi portal.

## Supported payers

You can check which payers support 275 claim attachments using the [Payer Network](https://www.stedi.com/healthcare/network) or the [Payers API](/healthcare/api-reference/get-payer). If you try to submit claim attachments to a payer that doesn't support them, Stedi blocks the submission before it reaches the payer:

* **APIs:** When you submit a claim with attachments to an unsupported payer, Stedi returns a `400` HTTP error with an explanatory error message. For example:

  ```json
  {
    "code": "TRANSACTION_TYPE_NOT_SUPPORTED",
    "message": "Payer 62308 (Stedi Payer ID HGJLR) is not configured for Unsolicited Claim Attachment (275). Please check our published payer list or contact Stedi support to resolve."
  }
  ```

* **SFTP:** When you submit a claim with attachments to an unsupported payer, Stedi rejects it with a [277CA claim acknowledgment](/healthcare/claim-responses-overview#277ca-claim-acknowledgment) explaining the issue. For example:

  ```
  STC*A7:N21*[DATE]*PR*[AMOUNT]********Payer 62308 (Stedi Payer ID HGJLR) is not configured for Unsolicited Claim Attachment (275). Please check our published payer list or contact Stedi support to resolve.~
  ```

## Transaction enrollment

[Transaction enrollment](/healthcare/transaction-enrollment) is the process of registering a provider to exchange specific healthcare transactions with a payer. Some payers require enrollment before allowing providers to submit 275 claim attachments. When required, this enrollment process is separate from the transaction enrollment process for 837 claims.

You can check whether a specific payer requires transaction enrollment for 275 attachments in the [Payer Network](https://www.stedi.com/healthcare/network) or through the [Payers API](/healthcare/api-reference/get-payer).

To enroll, complete the following steps:

1. Create a provider record with the information required for enrollment. If you already have a record for the provider, you can skip this step. [Stedi portal](https://portal.stedi.com/app/healthcare/providers) | [API endpoint](/healthcare/api-reference/post-enrollment-create-provider)
2. Submit an enrollment request for the type of claim attachments you plan to send (solicited or unsolicited). [Stedi portal](https://portal.stedi.com/app/healthcare/enrollments) | [API endpoint](/healthcare/api-reference/post-enrollment-create-enrollment)

## Submit claim attachments

Unsolicited 275 claim attachments are a separate transaction type from 837 claims. They're linked to the claim through [specific identifiers](#reference-attachments-in-a-claim) that indicate an attachment will follow the claim submission.

The submission methods available for 275 claim attachments depend on the claim type:

* **Professional claim attachments:** [claim form UI](#claim-form-ui), [JSON APIs](#json-apis), [X12 EDI APIs](#x12-edi-apis), and [SFTP](#sftp)
* **Dental claim attachments:** [JSON APIs](#json-apis), [X12 EDI APIs](#x12-edi-apis), and [SFTP](#sftp)
* **Institutional claim attachments:** [JSON APIs](#json-apis), [X12 EDI APIs](#x12-edi-apis), and [SFTP](#sftp)

### Claim form UI

You can submit attachments through the Stedi portal at the same time you are manually submitting a professional claim. The claim submission UI is based on the CMS-1500 Claim Form. Visit [Submit professional claims](/healthcare/submit-professional-claims#ui-submission) for instructions.

<Note>
  UI attachment submission isn't supported for dental or institutional claims.
</Note>

### JSON APIs

You can submit [unsolicited claim attachments](#solicited-vs-unsolicited-attachments) through Stedi JSON APIs for all claim types. Submitting claim attachments in JSON requires three steps:

<Steps>
  <Step title="Create the claim attachment.">
    Call the [Create Claim Attachment (275) JSON](/healthcare/api-reference/post-healthcare-create-claim-attachment) endpoint to receive a pre-signed URL that you can use to upload the attachment file to Stedi.

    The response also contains an `attachmentId` that you'll include in the claim submission.
  </Step>

  <Step title="Upload the attachment file.">
    Use a `PUT` request to upload the attachment file to the pre-signed URL (`uploadUrl`) in the response. The request must include a `Content-Type` header that matches the MIME type you specified for the attachment file.

    The following example shows how to upload a JPEG attachment:

    ```bash
    curl --request PUT \
      --url "<uploadUrl>" \
      --header "Content-Type: image/jpeg" \
      --upload-file /path/to/file.jpeg
    ```

    We recommend limiting attachments to 64MB each, but some payers may have different size requirements. When in doubt, check the payer's documentation to determine their specific limits. Stedi stores uploaded files for 45 days. After that, you must reupload the attachment file before you can submit it to the payer.
  </Step>

  <Step title="Submit the claim and attachment information.">
    Call one of the following claim submission endpoints:

    * [Professional Claims JSON](/healthcare/api-reference/post-healthcare-claims)
    * [Dental Claims JSON](/healthcare/api-reference/post-healthcare-dental-claims)
    * [Institutional Claims JSON](/healthcare/api-reference/post-healthcare-institutional-claims)

    You must include [specific properties](#reference-attachments-in-a-claim) in your request to identify the attachment and tell Stedi which attachment file to use. These properties are `attachmentReportTypeCode`, `attachmentTransmissionCode`, and `attachmentId`.

    Stedi sends the claim and the claim attachment to the payer and then returns summary information about the claim submission.
  </Step>
</Steps>

The payer processes the claim and attachment together, and sends back [277CA and 835 ERA responses](/healthcare/submit-claim-attachments#payer-responses).

### X12 EDI APIs

You can submit [unsolicited claim attachments](#solicited-vs-unsolicited-attachments) through Stedi X12 EDI APIs for all claim types. This approach is useful when you have an existing system that generates X12 EDI files and you want to send them through Stedi.

With X12 EDI submissions, you don't need to upload the attachment file to Stedi first - you can send the entire 275 transaction directly to the payer. Submitting claim attachments through our X12 EDI APIs requires two steps:

<Steps>
  <Step title="Submit the claim.">
    Call one of the following endpoints:

    * [Professional Claims Raw X12](/healthcare/api-reference/post-healthcare-claims-raw-x12)
    * [Dental Claims Raw X12](/healthcare/api-reference/post-healthcare-dental-claims-raw-x12)
    * [Institutional Claims Raw X12](/healthcare/api-reference/post-healthcare-institutional-claims-raw-x12)

    In addition to the claim information, you must include [specific elements](#reference-attachments-in-a-claim) in either `Loop 2300` or `Loop 2400` (professional claims only) to identify the attachment. These elements are `PWK01`, `PWK02`, and `PWK06`.
  </Step>

  <Step title="Submit the attachment.">
    Call the [Submit Claim Attachment (275) X12 EDI](/healthcare/api-reference/post-healthcare-submit-claim-attachment-raw-x12) endpoint. Stedi sends the 275 transaction to the payer and returns summary information about the submission.

    * **Payer ID:** You must submit a payer identifier in `Loop 1000A NM109` so Stedi can route the attachment to the correct payer. This identifier **must** be a payer ID or payer ID alias listed in the [Payer Network](https://www.stedi.com/healthcare/network). For example, you could use `60054`, `HPQRS`, `AETNA`, or any other listed payer ID alias for Aetna.
    * The size limit for attachments submitted in a single API request is 6MB. If you need to submit larger attachment files, you must submit them through Stedi SFTP or the JSON endpoints.
  </Step>
</Steps>

Once received, the payer processes the claim and attachment together and sends back [277CA and 835 ERA responses](/healthcare/submit-claim-attachments#payer-responses).

### SFTP

You can submit [unsolicited claim attachments](#solicited-vs-unsolicited-attachments) in X12 EDI format through SFTP for all claim types.

SFTP submission is ideal if you need to send institutional claim attachments or you have attachments that are larger than 6MB.

Submitting claim attachments through SFTP requires sending two transactions to the payer. You can send these transactions as separate files or together in the same file as long as the claim and the attachment are within the same interchange (`ISA`/`IEA`) envelope:

<Steps>
  <Step title="837 claim.">
    Submit an 837 professional, dental, or institutional claim to the payer through [Stedi SFTP](/healthcare/submit-claims-sftp-connection#837-claims).

    You must include specific elements in either `Loop 2300` or `Loop 2400` (professional claims only) to identify the attachment. These elements are `PWK01`, `PWK02`, and `PWK06`.
  </Step>

  <Step title="275 claim attachment.">
    Submit a 275 claim attachment to the payer through [Stedi SFTP](/healthcare/submit-claims-sftp-connection#275-claim-attachments).

    You must submit a payer identifier in `Loop 1000A NM109` so Stedi can route the attachment to the correct payer. This identifier **must** be a payer ID or payer ID alias listed in the [Payer Network](https://www.stedi.com/healthcare/network). For example, you could use `60054`, `HPQRS`, `AETNA`, or any other listed payer ID alias for Aetna.

    We recommend limiting attachments to 64MB each, but some payers may have different size requirements. When in doubt, check the payer's documentation to determine their specific limits.
  </Step>
</Steps>

Once received, the payer processes the claim and attachment together and sends back [277CA and 835 ERA responses](/healthcare/submit-claim-attachments#payer-responses).

## Reference attachments in a claim

To submit an unsolicited claim attachment, you must submit a claim that references the attachment(s) in the appropriate location. When submitting claims through Stedi APIs or SFTP, include the following properties or elements to identify the attachment(s).

<Note>
  If you're submitting claims manually, visit [Submit professional claims](/healthcare/submit-professional-claims#ui-submission) for instructions.
</Note>

### Attachment level

You can specify attachments that relate to the entire claim or to a specific service line.

#### Entire claim

For professional, dental, and institutional claims, you can specify claim-level attachments in the `claimInformation.claimSupplementalInformation.reportInformation` object or the `claimInformation.claimSupplementalInformation.reportInformations[]` array (for multiple attachments). These structures correspond to segment `PWK` in `Loop 2300`.

API reference docs: [professional](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.claimSupplementalInformation.reportInformation) | [dental](/healthcare/api-reference/post-healthcare-dental-claims#body.claimInformation.claimSupplementalInformation.reportInformation) | [institutional](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.claimSupplementalInformation.reportInformation)

#### Service line

* **Professional claim attachments:** Specify service line attachments in the `claimInformation.serviceLines.serviceLineSupplementalInformation` array. This object corresponds to segment `PWK` in `Loop 2400`.

  API reference docs: [professional](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.serviceLines.serviceLineSupplementalInformation)

* **Institutional claim attachments:** For institutional claims, you can specify service line attachments in the `claimInformation.serviceLines.serviceLineSupplementalInformation` object or the `claimInformation.serviceLines.serviceLineSupplementalInformations[]` array (for multiple attachments). These structures correspond to segment `PWK` in `Loop 2400`.

  API reference docs: [institutional](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.serviceLines.serviceLineSupplementalInformation)

### Required properties

Both claim and service line attachments require the following properties to inform the payer that an attachment will follow the claim submission.

{/* prettier-ignore-start */}

| JSON property                | X12 EDI | Description                                                                                                                                                                                                 |
| ---------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `attachmentReportTypeCode`   | `PWK01` | This code identifies the type of report or document you plan to submit as an attachment. Visit [Code lists](/healthcare/claims-code-lists#attachment-report-type-codes) for a complete list of valid codes. |
| `attachmentTransmissionCode` | `PWK02` | Set to `EL` when submitting attachments through Stedi. This property indicates the attachment will be sent in a separate, electronic 275 transaction.                                                       |

{/* prettier-ignore-end */}

You must also include **one** of the following properties, depending on your use case. Specifically, you should only include the attachment control number when you're not submitting the attachment file through Stedi (for example, you submitted the attachment directly through a payer's portal). Otherwise, include the attachment ID.

{/* prettier-ignore-start */}

| JSON property             | X12 EDI | Description                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `attachmentControlNumber` | `PWK06` | A unique identifier for the attachment. The payer uses this value to match the attachment to the claim. We recommend using a ULID or UUID of up to 50 characters.<ul><li>X12 EDI submissions: This property is **required**.</li><li>JSON submissions: Only include this property when you aren't submitting the attachment file through Stedi's API. For example, you submitted the attachment directly through a payer's portal.</li></ul> |
| `attachmentId`            | -       | The attachment ID you received in the [Create Claim Attachment (275) JSON](/healthcare/api-reference/post-healthcare-create-claim-attachment) response. It tells Stedi which file to use when generating the 275 transaction for the payer. This property is **required** if you're submitting attachments through a JSON endpoint.                                                                                                          |

{/* prettier-ignore-end */}

## Solicited vs. unsolicited attachments

There are two types of claim attachments:

* **Solicited:** The payer requests attachments for a submitted claim in a Request for Additional Information (277 RFA) transaction. In these cases, you must submit the attachment(s) in a separate 275 transaction that references the 277 RFA.
* **Unsolicited:** The provider proactively sends attachments at their discretion without a prior request from the payer. In these cases, you must [reference the attachment(s) in the claim submission](/healthcare/submit-claim-attachments#reference-attachments-in-a-claim).

You can only submit unsolicited claim attachments through Stedi APIs and SFTP. Check the [Payer Network](https://www.stedi.com/healthcare/network?query=eyIyNzAiOnt9LCIyNzYiOnt9LCI4MzUiOnt9LCI4MzdQIjp7fSwiODM3SSI6e30sIjgzN0QiOnt9LCJDT0IiOnt9LCIyNzVTIjp7ImlzU3VwcG9ydGVkIjp0cnVlfSwiMjc1VSI6eyJpc1N1cHBvcnRlZCI6dHJ1ZX19\&page=0) to determine which payers support attachments.

## Payer responses

The payer processes claims and claim attachments together. When you submit a claim attachment, you'll receive the same [277CA and 835 ERA responses](/healthcare/receive-claim-responses#retrieve-responses-from-stedi) for the claim as you would for a regular claim submission.

If a claim is rejected, pended, or denied due to issues with attachments, you'll likely receive error codes in the 277CA response that indicate the issue. However, the exact error codes used depend on the payer's system and how they handle attachments.

## Concurrency limit

Claim attachment endpoints share a concurrency pool with other claim endpoints. For more information, visit [Concurrency limits](/healthcare/api-reference#concurrency-limits).