# Introducing 999 acknowledgment settings for SFTP users

> Stedi SFTP users now receive negative 999 acknowledgments. Learn what 999s are, how to read them, and how to opt in to positive acknowledgments for every claim.

Published Mar 25, 2026

Product: Claims

If you use [Stedi’s SFTP server](https://www.stedi.com/docs/healthcare/submit-claims-sftp-connection), you’ll now receive negative [999 Implementation Acknowledgments](https://www.stedi.com/docs/healthcare/submit-claims-sftp-retrieve-responses#monitor-for-999-rejections-strongly-recommended) from Stedi for claims with invalid X12 syntax or implementation guide errors.

You can also opt in to receive positive 999 acknowledgments, which are returned for claims with valid X12 syntax.

You’ll receive 999 acknowledgments in the `from-stedi` directory for claims submitted through SFTP, the [Claim Submission API](https://www.stedi.com/docs/healthcare/intro-to-claim-submission#api-claim-submission), or the [Stedi portal](https://www.stedi.com/docs/healthcare/submit-professional-claims-ui#cms-1500-claim-form). The acknowledgments arrive within minutes of submission.

## What is a 999 acknowledgment?

A [999 Implementation Acknowledgment](https://portal.stedi.com/app/guides/view/hipaa/implementation-acknowledgment-x231a1/01HMRQV0N8SPHG58M4ZG1CRHH0) is a standard X12 transaction set. It confirms whether a submitted functional group and its transaction sets use valid X12 syntax. It is not used for application-level validation.

### Negative 999 acknowledgments

A negative 999 acknowledgment means Stedi rejected at least one transaction in the X12 file due to a structural error, such as a malformed segment or a missing required element. Rejected transactions are not further processed by Stedi or forwarded to the payer.

The [`AK9`](https://portal.stedi.com/app/guides/view/hipaa/implementation-acknowledgment-x231a1/01HMRQV0N8SPHG58M4ZG1CRHH0#properties.heading.properties.functional_group_response_trailer_AK9) (Functional Group Response) segment summarizes the result for the functional group. [`AK9-01`](https://portal.stedi.com/app/guides/view/hipaa/implementation-acknowledgment-x231a1/01HMRQV0N8SPHG58M4ZG1CRHH0#properties.heading.properties.functional_group_response_trailer_AK9.properties.functional_group_acknowledge_code_01) (Functional Group Acknowledge Code) is set to `R` if all transactions were rejected, or `P` if the group was partially accepted:

```jsx
AK9*P*3*3*1~    ← Partially accepted: 3 transactions submitted, 3 received, 1 accepted (2 rejected)
```

For each rejected transaction, [`IK5-01`](https://portal.stedi.com/app/guides/view/hipaa/implementation-acknowledgment-x231a1/01HMRQV0N8SPHG58M4ZG1CRHH0#properties.heading.properties.transaction_set_response_header_AK2_loop.items.properties.transaction_set_response_trailer_IK5.properties.transaction_set_acknowledgment_code_01) (Transaction Set Acknowledgment Code) is set to `R`. The [`IK3`](https://portal.stedi.com/app/guides/view/hipaa/implementation-acknowledgment-x231a1/01HMRQV0N8SPHG58M4ZG1CRHH0#properties.heading.properties.transaction_set_response_header_AK2_loop.items.properties.error_identification_IK3_loop.items.properties.error_identification_IK3) (Error Identification) and [`IK4`](https://portal.stedi.com/app/guides/view/hipaa/implementation-acknowledgment-x231a1/01HMRQV0N8SPHG58M4ZG1CRHH0#properties.heading.properties.transaction_set_response_header_AK2_loop.items.properties.error_identification_IK3_loop.items.properties.implementation_data_element_note_IK4_loop.items.properties.implementation_data_element_note_IK4) (Implementation Data Element Note) segments identify where the error occurred. For example:

```jsx
AK2*837*0002~      ← Responding to transaction 0002
IK3*CLM*22**8~     ← CLM segment at position 22 has element errors
IK4*2*782*1~       ← Element 2 is missing a mandatory value
IK5*R*5~           ← Transaction rejected
```

If you receive a negative 999, you must correct the errors and resubmit the claim.

### Positive 999 acknowledgments

A positive 999 acknowledgment confirms that all transactions in a functional group were accepted for further processing. [`IK5-01`](https://portal.stedi.com/app/guides/view/hipaa/implementation-acknowledgment-x231a1/01HMRQV0N8SPHG58M4ZG1CRHH0#properties.heading.properties.transaction_set_response_header_AK2_loop.items.properties.transaction_set_response_trailer_IK5.properties.transaction_set_acknowledgment_code_01) returns `A` (Accepted), and [`AK9`](https://portal.stedi.com/app/guides/view/hipaa/implementation-acknowledgment-x231a1/01HMRQV0N8SPHG58M4ZG1CRHH0#properties.heading.properties.functional_group_response_trailer_AK9) returns `A` (Accepted). For example:

```jsx
AK2*837*0001~
IK5*A~           ← Transaction accepted
AK9*A*1*1*1~     ← All accepted: 1 transaction submitted, 1 received, 1 accepted
```

### Interpreting 999 acknowledgments

For more tips on interpreting 999 acknowledgments, see our [SFTP docs](https://www.stedi.com/docs/healthcare/submit-claims-sftp-retrieve-responses#interpret-999s).

## How to update your 999 acknowledgment settings

You can opt in to receive positive 999 acknowledgments using the Stedi portal:

1.  Go to the SFTP setup page in your account settings.

2.  Under **999 settings**, select **All 999s** to receive 999 acknowledgments for every transaction. Leave the default to receive negative acknowledgments.

For more information, see our [SFTP docs](https://www.stedi.com/docs/healthcare/submit-claims-sftp-connection).
