# Batch Modify or Reverse via API

<a href="https://pxa.impact.com/student/activity/2268418?sid=0c0e3e5c-54c9-4435-9bee-ebcdccb7f292&#x26;sid_i=0?utm_source=app.impact.com&#x26;utm_medium=owned-platform&#x26;utm_content=&#x26;utm_campaign=help-center" class="button primary">Take the PXA course</a>

If anything about an action changes (e.g., an order was canceled, an item was returned, etc.), you can use the API to modify (or reverse) it, changing the commission amount for the action.&#x20;

### Which submission method is right for you?

| If you want to...                             | Use this method...                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Submit a manual, one-time file with no coding | ​[Email](https://help.impact.com/brand/what-would-you-like-to-learn-about/platform-features/submit-conversion-data/submit-conversion-data-via-ftp-or-email#before-you-start) batch processing or [upload file via FTP](https://help.impact.com/brand/what-would-you-like-to-learn-about/platform-features/submit-and-modify-conversion-data/batch-modify-conversion-data/submit-batch-modifications-and-reversals#upload-file-to-system-ftp-server) |
| Set up automated conversion reporting         | ​[Conversions](https://integrations.impact.com/impact-brand/reference/submit-a-conversion) / [Actions](https://integrations.impact.com/impact-brand/reference/actions-overview) API or [pull file via FTP](https://help.impact.com/brand/what-would-you-like-to-learn-about/platform-features/submit-and-modify-conversion-data/batch-modify-conversion-data/submit-batch-modifications-and-reversals#pull-file-from-your-own-ftp-server)           |

### API reversal options:

* [Modify or reverse one or more items in an action via API](https://integrations.impact.com/impact-brand/reference/update-an-action-item)
* [Reverse an entire action via API](https://integrations.impact.com/impact-brand/reference/reverse-an-action)

### Prerequisite: Retrieve the *ActionId* value

To modify action data via API, you'll need its `ActionId` value. You can then use this to find the action you want to modify via API.

* You can specify a date range in your call — otherwise, the endpoint defaults to showing the last 30 days of actions.
* [Rate limits](https://integrations.impact.com/impact-brand/reference/rate-limits) apply.
* View the [List all actions](https://integrations.impact.com/impact-brand/reference/list-all-actions) API endpoint documentation to learn more.

### FAQs

<details>

<summary>How do I reset a modification / reversal made to an action (or action items)?</summary>

If an action has been modified or reversed before its locking date, you can submit `RESET` as a reason to update the action back to its default state:

```programlisting
curl 'https://api.impact.com/Advertisers/{AccountSID}/Actions' \
  -X PUT \
  -u '{AccountSID}:{AuthToken}' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'ActionId={ActionId}' \
  -d 'Reason=RESET'
```

Actions that have been reset via the `RESET` code may not appear correctly in reporting (e.g., revenue values may be calculated incorrectly).

</details>

<details>

<summary>What is the difference between a disposition code &#x26; reason?</summary>

Both *Disposition Codes* and *Reasons* are used in the same context — *Reasons* are predefined codes that the API will accept by default, whereas *Disposition Codes* are custom reasons you can configure. [Learn more about Disposition Codes](https://help.impact.com/brand/what-would-you-like-to-learn-about/platform-features/tracking/set-up-tracking/manage-disposition-codes).

Supported reason codes:

<table><thead><tr><th width="234">Code</th><th>Description</th></tr></thead><tbody><tr><td><code>CONS_FRAUD</code></td><td>Consumer fraud</td></tr><tr><td><code>CONS_ERROR</code></td><td>Consumer error</td></tr><tr><td><code>ITEM_RETURNED</code></td><td>Item was returned</td></tr><tr><td><code>APPROVED</code></td><td><p>Action is approved</p><div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p><strong>Note:</strong> If you’re trying to approve actions, <code>Approve</code> needs to be set up as a <a href="../../tracking/set-up-tracking/manage-disposition-codes">custom disposition code</a>.</p></div></td></tr><tr><td><code>ORDER_ERROR</code></td><td>Order error</td></tr><tr><td><code>ORDER_UPDATE</code></td><td>Order was updated</td></tr><tr><td><code>PUB_ACT_DISPUTE</code></td><td>Partner activity dispute</td></tr><tr><td><code>ADV_ACT_DISPUTE</code></td><td>Brand activity dispute</td></tr><tr><td><code>NOT_COMPLIANCE_TERMS</code></td><td>Not in compliance with terms</td></tr><tr><td><code>ITEM_OUT_OF_STOCK</code></td><td>Item is out of stock</td></tr><tr><td><code>TEST_ACTION</code></td><td>Test action</td></tr><tr><td><code>PARTNER_NOT_ACTIVE</code></td><td>Partner account deactivated</td></tr><tr><td><code>CREDITED_DIFFERENT_MP</code></td><td>Credited to another partner</td></tr><tr><td><code>OTHER</code></td><td>Other reason</td></tr></tbody></table>

</details>

<details>

<summary>How can I see when modifications / reversals are applied to an action?</summary>

You can use the [action updates](https://integrations.impact.com/impact-brand/reference/the-action-update-object) endpoint to see when an action was last updated and what its current state is.

{% hint style="info" %}
**Note:** An `ActionUpdatesID` value is different from an `ActionId` value — you must use the `ActionUpdatesID` value to retrieve updates for an action.
{% endhint %}

</details>
