Introducing claim attachments

May 2, 2025

Products

You can now use the Stedi Claim Attachment API to create and submit 275 claim attachments. API endpoints include:

When you need a claim attachment

A claim is a request you send to an insurance company or other payer, asking them to pay for care. You can submit professional (837P), dental (837D), or institutional (837I) claims using our Claim Submission API.

But sometimes, a claim isn't enough.

For some medical and dental procedures, payers want more documentation. Claim attachments show a service occurred or was needed. They can include X-rays, treatment plans, or itemized bills. The type of attachment needed depends on the payer and the service. Without these attachments, the payer may delay (pend) or deny the claim.

Solicited vs. unsolicited attachments

There are two kinds of claim attachments:

  • Solicited attachments: The payer asks you to send more documentation for a claim.

  • Unsolicited attachments: You send documentation for a claim because you expect the payer to need it – even if they didn’t ask for it.

Currently, Stedi only supports unsolicited claim attachments. These are always sent after a claim submission that references the attachment. You then submit the attachment in a separate 275 claim attachment transaction.

Payer support

While uncommon, some payers may require transaction enrollment before accepting 275 transactions.

Other payers don’t accept EDI attachments at all. They may require that attachments be sent by fax, email, or other channels instead.

Submit a claim attachment

Follow these steps to send an unsolicited claim attachment:

  1. Check payer support.
    Check the Stedi Payer Network or the Payers API to see if your payer supports unsolicited 275 claim attachment transactions.

  2. Reference the attachment in your claim.
    Use one of the Claim Submission API endpoints to submit an 837P, 837I, or 837D claim to the payer.

    In the claim payload, include one of the following objects. The object indicates whether the attachment is for the entire claim or a service line in the claim:

    • Entire claim: Include the claimInformation.claimSupplementalInformation.reportInformation object. This object is supported by all claim types.

    • Service line: For 837P and 837I claims, specify service line attachments in the claimInformation.serviceLines.serviceLineSupplementalInformation object. 837D claims don’t support service line attachments.

    Inside the object, include the following properties:

    • attachmentControlNumber: A unique ID that links the claim to a single attachment.​ Use a ULID or UUID of up to 50 characters.

    • attachmentReportTypeCode: Code for the type of attachment, such as an operative report or X-ray. Visit Code lists for a list of valid codes.

    • attachmentTransmissionCode: Set to EL. Indicates the attachment will be sent in a separate 275 transaction.

    For example, for an attachment related to an entire dental claim:

    curl --request POST \
      --url https://healthcare.us.stedi.com/2024-04-01/dental-claims/submission \
      --header 'Authorization: <api-key>' \
      --header 'Content-Type: application/json' \
      --data '{
        ...
        "claimSupplementalInformation": {
          "reportInformation": {
            "attachmentControlNumber": "<YOUR-ATTACHMENT-CONTROL-NUMBER>"
            "attachmentReportTypeCode": "06",
            "attachmentTransmissionCode": "EL",
          }
        },
        ...
      }'


  3. Get an attachment URL.
    Call the Create Claim Attachment endpoint. Specify the attachment’s contentType in the request body. Supported types include application/pdf, image/tiff, and image/jpg.

    Example for a PDF attachment:

    curl --request POST \
      --url https://claims.us.stedi.com/2025-03-07/claim-attachments/file \
      --header 'Authorization: <api-key>' \
      --header 'Content-Type: application/json' \
      --data '{
      "contentType": "application/pdf"
    }'


    The response returns an attachmentId and pre-signed uploadUrl for a Stedi S3 bucket:

    {
      "attachmentId": "d3b3e3e3-3e3e-3e3e-3e3e-3e3e3e3e3e3e",
      "uploadUrl": "https://s3.amazonaws.com/bucket/key"
    }


  4. Upload the attachment.
    Upload the attachment file by making a PUT request to the attachment’s S3 bucket URL.

    curl --request PUT \
      --url "<uploadUrl>" \
      --header "Content-Type: application/pdf" \
      --upload-file /path/to/file.pdf


  5. Submit the claim attachment.
    Call the Submit Claim Attachment (275) JSON endpoint to submit the attachment to the payer. Include the following properties:

    • relatedTransactionId or relatedExecutionId: An identifier for the 837 claim you previously submitted through Stedi. This value tells Stedi which claim is related to the attachment.

    • attachmentId: The attachment ID you received in the Create Claim Attachment JSON response. This value tells Stedi which file to use when generating the 275 transaction for the payer.

    • providerAttachmentControlNumber: The value you set in the claim’s attachmentControlNumber property. It allows the payer to associate the attachment with the claim that’s already in their system.

    • attachmentDetails.attachmentId: The value you set in the claim’s providerControlNumber property. This property is optional. It lets you indicate the attachment should be associated with only a specific service line from the claim. This doesn’t apply to 837D claims.


    Behind the scenes, Stedi sends a 275 claim attachment to the payer.

    curl --request POST \
      --url https://claims.us.stedi.com/2025-03-07/claim-attachments/submission \
      --header 'Authorization: <api-key>' \
      --header 'Content-Type: application/json' \
      --data '{
      "usageIndicator": "T",
      "relatedExecutionId": "9b491769-052e-4738-93d6-e0b5f6d83f53",
      "claimInformation": {
        "serviceLines": [
          {
            "providerAttachmentControlNumber": "ATTACH123",
            "attachmentDetails": {
              "attachmentId": "d3b3e3e3-3e3e-3e3e-3e3e-3e3e3e3e3e3e"
            }
          }
        ]
      }
    }'

    If you create X12 EDI files, you can send 275 transactions directly using the Submit Claim Attachment (275) Raw X12 endpoint or through Stedi SFTP instead.

Start sending claims with Stedi

The Claim Submission API lets you send claims with attachments to thousands of payers in the Stedi network. If you’re ready to get started, book a demo or create a free sandbox.

You can now use the Stedi Claim Attachment API to create and submit 275 claim attachments. API endpoints include:

When you need a claim attachment

A claim is a request you send to an insurance company or other payer, asking them to pay for care. You can submit professional (837P), dental (837D), or institutional (837I) claims using our Claim Submission API.

But sometimes, a claim isn't enough.

For some medical and dental procedures, payers want more documentation. Claim attachments show a service occurred or was needed. They can include X-rays, treatment plans, or itemized bills. The type of attachment needed depends on the payer and the service. Without these attachments, the payer may delay (pend) or deny the claim.

Solicited vs. unsolicited attachments

There are two kinds of claim attachments:

  • Solicited attachments: The payer asks you to send more documentation for a claim.

  • Unsolicited attachments: You send documentation for a claim because you expect the payer to need it – even if they didn’t ask for it.

Currently, Stedi only supports unsolicited claim attachments. These are always sent after a claim submission that references the attachment. You then submit the attachment in a separate 275 claim attachment transaction.

Payer support

While uncommon, some payers may require transaction enrollment before accepting 275 transactions.

Other payers don’t accept EDI attachments at all. They may require that attachments be sent by fax, email, or other channels instead.

Submit a claim attachment

Follow these steps to send an unsolicited claim attachment:

  1. Check payer support.
    Check the Stedi Payer Network or the Payers API to see if your payer supports unsolicited 275 claim attachment transactions.

  2. Reference the attachment in your claim.
    Use one of the Claim Submission API endpoints to submit an 837P, 837I, or 837D claim to the payer.

    In the claim payload, include one of the following objects. The object indicates whether the attachment is for the entire claim or a service line in the claim:

    • Entire claim: Include the claimInformation.claimSupplementalInformation.reportInformation object. This object is supported by all claim types.

    • Service line: For 837P and 837I claims, specify service line attachments in the claimInformation.serviceLines.serviceLineSupplementalInformation object. 837D claims don’t support service line attachments.

    Inside the object, include the following properties:

    • attachmentControlNumber: A unique ID that links the claim to a single attachment.​ Use a ULID or UUID of up to 50 characters.

    • attachmentReportTypeCode: Code for the type of attachment, such as an operative report or X-ray. Visit Code lists for a list of valid codes.

    • attachmentTransmissionCode: Set to EL. Indicates the attachment will be sent in a separate 275 transaction.

    For example, for an attachment related to an entire dental claim:

    curl --request POST \
      --url https://healthcare.us.stedi.com/2024-04-01/dental-claims/submission \
      --header 'Authorization: <api-key>' \
      --header 'Content-Type: application/json' \
      --data '{
        ...
        "claimSupplementalInformation": {
          "reportInformation": {
            "attachmentControlNumber": "<YOUR-ATTACHMENT-CONTROL-NUMBER>"
            "attachmentReportTypeCode": "06",
            "attachmentTransmissionCode": "EL",
          }
        },
        ...
      }'


  3. Get an attachment URL.
    Call the Create Claim Attachment endpoint. Specify the attachment’s contentType in the request body. Supported types include application/pdf, image/tiff, and image/jpg.

    Example for a PDF attachment:

    curl --request POST \
      --url https://claims.us.stedi.com/2025-03-07/claim-attachments/file \
      --header 'Authorization: <api-key>' \
      --header 'Content-Type: application/json' \
      --data '{
      "contentType": "application/pdf"
    }'


    The response returns an attachmentId and pre-signed uploadUrl for a Stedi S3 bucket:

    {
      "attachmentId": "d3b3e3e3-3e3e-3e3e-3e3e-3e3e3e3e3e3e",
      "uploadUrl": "https://s3.amazonaws.com/bucket/key"
    }


  4. Upload the attachment.
    Upload the attachment file by making a PUT request to the attachment’s S3 bucket URL.

    curl --request PUT \
      --url "<uploadUrl>" \
      --header "Content-Type: application/pdf" \
      --upload-file /path/to/file.pdf


  5. Submit the claim attachment.
    Call the Submit Claim Attachment (275) JSON endpoint to submit the attachment to the payer. Include the following properties:

    • relatedTransactionId or relatedExecutionId: An identifier for the 837 claim you previously submitted through Stedi. This value tells Stedi which claim is related to the attachment.

    • attachmentId: The attachment ID you received in the Create Claim Attachment JSON response. This value tells Stedi which file to use when generating the 275 transaction for the payer.

    • providerAttachmentControlNumber: The value you set in the claim’s attachmentControlNumber property. It allows the payer to associate the attachment with the claim that’s already in their system.

    • attachmentDetails.attachmentId: The value you set in the claim’s providerControlNumber property. This property is optional. It lets you indicate the attachment should be associated with only a specific service line from the claim. This doesn’t apply to 837D claims.


    Behind the scenes, Stedi sends a 275 claim attachment to the payer.

    curl --request POST \
      --url https://claims.us.stedi.com/2025-03-07/claim-attachments/submission \
      --header 'Authorization: <api-key>' \
      --header 'Content-Type: application/json' \
      --data '{
      "usageIndicator": "T",
      "relatedExecutionId": "9b491769-052e-4738-93d6-e0b5f6d83f53",
      "claimInformation": {
        "serviceLines": [
          {
            "providerAttachmentControlNumber": "ATTACH123",
            "attachmentDetails": {
              "attachmentId": "d3b3e3e3-3e3e-3e3e-3e3e-3e3e3e3e3e3e"
            }
          }
        ]
      }
    }'

    If you create X12 EDI files, you can send 275 transactions directly using the Submit Claim Attachment (275) Raw X12 endpoint or through Stedi SFTP instead.

Start sending claims with Stedi

The Claim Submission API lets you send claims with attachments to thousands of payers in the Stedi network. If you’re ready to get started, book a demo or create a free sandbox.

You can now use the Stedi Claim Attachment API to create and submit 275 claim attachments. API endpoints include:

When you need a claim attachment

A claim is a request you send to an insurance company or other payer, asking them to pay for care. You can submit professional (837P), dental (837D), or institutional (837I) claims using our Claim Submission API.

But sometimes, a claim isn't enough.

For some medical and dental procedures, payers want more documentation. Claim attachments show a service occurred or was needed. They can include X-rays, treatment plans, or itemized bills. The type of attachment needed depends on the payer and the service. Without these attachments, the payer may delay (pend) or deny the claim.

Solicited vs. unsolicited attachments

There are two kinds of claim attachments:

  • Solicited attachments: The payer asks you to send more documentation for a claim.

  • Unsolicited attachments: You send documentation for a claim because you expect the payer to need it – even if they didn’t ask for it.

Currently, Stedi only supports unsolicited claim attachments. These are always sent after a claim submission that references the attachment. You then submit the attachment in a separate 275 claim attachment transaction.

Payer support

While uncommon, some payers may require transaction enrollment before accepting 275 transactions.

Other payers don’t accept EDI attachments at all. They may require that attachments be sent by fax, email, or other channels instead.

Submit a claim attachment

Follow these steps to send an unsolicited claim attachment:

  1. Check payer support.
    Check the Stedi Payer Network or the Payers API to see if your payer supports unsolicited 275 claim attachment transactions.

  2. Reference the attachment in your claim.
    Use one of the Claim Submission API endpoints to submit an 837P, 837I, or 837D claim to the payer.

    In the claim payload, include one of the following objects. The object indicates whether the attachment is for the entire claim or a service line in the claim:

    • Entire claim: Include the claimInformation.claimSupplementalInformation.reportInformation object. This object is supported by all claim types.

    • Service line: For 837P and 837I claims, specify service line attachments in the claimInformation.serviceLines.serviceLineSupplementalInformation object. 837D claims don’t support service line attachments.

    Inside the object, include the following properties:

    • attachmentControlNumber: A unique ID that links the claim to a single attachment.​ Use a ULID or UUID of up to 50 characters.

    • attachmentReportTypeCode: Code for the type of attachment, such as an operative report or X-ray. Visit Code lists for a list of valid codes.

    • attachmentTransmissionCode: Set to EL. Indicates the attachment will be sent in a separate 275 transaction.

    For example, for an attachment related to an entire dental claim:

    curl --request POST \
      --url https://healthcare.us.stedi.com/2024-04-01/dental-claims/submission \
      --header 'Authorization: <api-key>' \
      --header 'Content-Type: application/json' \
      --data '{
        ...
        "claimSupplementalInformation": {
          "reportInformation": {
            "attachmentControlNumber": "<YOUR-ATTACHMENT-CONTROL-NUMBER>"
            "attachmentReportTypeCode": "06",
            "attachmentTransmissionCode": "EL",
          }
        },
        ...
      }'


  3. Get an attachment URL.
    Call the Create Claim Attachment endpoint. Specify the attachment’s contentType in the request body. Supported types include application/pdf, image/tiff, and image/jpg.

    Example for a PDF attachment:

    curl --request POST \
      --url https://claims.us.stedi.com/2025-03-07/claim-attachments/file \
      --header 'Authorization: <api-key>' \
      --header 'Content-Type: application/json' \
      --data '{
      "contentType": "application/pdf"
    }'


    The response returns an attachmentId and pre-signed uploadUrl for a Stedi S3 bucket:

    {
      "attachmentId": "d3b3e3e3-3e3e-3e3e-3e3e-3e3e3e3e3e3e",
      "uploadUrl": "https://s3.amazonaws.com/bucket/key"
    }


  4. Upload the attachment.
    Upload the attachment file by making a PUT request to the attachment’s S3 bucket URL.

    curl --request PUT \
      --url "<uploadUrl>" \
      --header "Content-Type: application/pdf" \
      --upload-file /path/to/file.pdf


  5. Submit the claim attachment.
    Call the Submit Claim Attachment (275) JSON endpoint to submit the attachment to the payer. Include the following properties:

    • relatedTransactionId or relatedExecutionId: An identifier for the 837 claim you previously submitted through Stedi. This value tells Stedi which claim is related to the attachment.

    • attachmentId: The attachment ID you received in the Create Claim Attachment JSON response. This value tells Stedi which file to use when generating the 275 transaction for the payer.

    • providerAttachmentControlNumber: The value you set in the claim’s attachmentControlNumber property. It allows the payer to associate the attachment with the claim that’s already in their system.

    • attachmentDetails.attachmentId: The value you set in the claim’s providerControlNumber property. This property is optional. It lets you indicate the attachment should be associated with only a specific service line from the claim. This doesn’t apply to 837D claims.


    Behind the scenes, Stedi sends a 275 claim attachment to the payer.

    curl --request POST \
      --url https://claims.us.stedi.com/2025-03-07/claim-attachments/submission \
      --header 'Authorization: <api-key>' \
      --header 'Content-Type: application/json' \
      --data '{
      "usageIndicator": "T",
      "relatedExecutionId": "9b491769-052e-4738-93d6-e0b5f6d83f53",
      "claimInformation": {
        "serviceLines": [
          {
            "providerAttachmentControlNumber": "ATTACH123",
            "attachmentDetails": {
              "attachmentId": "d3b3e3e3-3e3e-3e3e-3e3e-3e3e3e3e3e3e"
            }
          }
        ]
      }
    }'

    If you create X12 EDI files, you can send 275 transactions directly using the Submit Claim Attachment (275) Raw X12 endpoint or through Stedi SFTP instead.

Start sending claims with Stedi

The Claim Submission API lets you send claims with attachments to thousands of payers in the Stedi network. If you’re ready to get started, book a demo or create a free sandbox.

Share

Twitter
LinkedIn

Get updates on what’s new at Stedi

Get updates on what’s new at Stedi

Get updates on what’s new at Stedi

Get updates on what’s new at Stedi

Backed by

Stedi is a registered trademark of Stedi, Inc. All names, logos, and brands of third parties listed on our site are trademarks of their respective owners (including “X12”, which is a trademark of X12 Incorporated). Stedi, Inc. and its products and services are not endorsed by, sponsored by, or affiliated with these third parties. Our use of these names, logos, and brands is for identification purposes only, and does not imply any such endorsement, sponsorship, or affiliation.

Get updates on what’s new at Stedi

Backed by

Stedi is a registered trademark of Stedi, Inc. All names, logos, and brands of third parties listed on our site are trademarks of their respective owners (including “X12”, which is a trademark of X12 Incorporated). Stedi, Inc. and its products and services are not endorsed by, sponsored by, or affiliated with these third parties. Our use of these names, logos, and brands is for identification purposes only, and does not imply any such endorsement, sponsorship, or affiliation.

Get updates on what’s new at Stedi

Backed by

Stedi is a registered trademark of Stedi, Inc. All names, logos, and brands of third parties listed on our site are trademarks of their respective owners (including “X12”, which is a trademark of X12 Incorporated). Stedi, Inc. and its products and services are not endorsed by, sponsored by, or affiliated with these third parties. Our use of these names, logos, and brands is for identification purposes only, and does not imply any such endorsement, sponsorship, or affiliation.