# 通过 API（Web 服务）批量处理撤销 概述

<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">参加 PXA 课程</a>

如果某项操作的任何内容发生变化（例如，订单被取消、商品被退回等），您可以使用 API 对其进行修改（或撤销），更改该操作的佣金金额。在本文中，我们将展示如何使用 cURL 调用 impact.com 品牌 API 来修改和撤销操作。

**批量处理撤销选项：**

* 通过 API 修改或撤销操作中的一个或多个项目
* 通过 API 撤销整个操作

#### 先决条件：检索 *ActionId* 值

要撤销某项操作，您需要其 `ActionId` 值。以下调用将检索指定 *计划* （即， *Campaign*）的所有操作——您可以使用此方法找到要修改的操作。

* 您可以在调用中指定日期范围——否则，该端点默认显示最近 30 天的操作。
* [速率限制](https://integrations.impact.com/impact-brand/reference/rate-limits) 适用。
* 查看 [列出所有操作](https://integrations.impact.com/impact-brand/reference/list-all-actions) API 端点文档以了解更多信息。

<details>

<summary>参数参考</summary>

| 参数           | 说明                                                                                                                                                                                                                                                                                                                                   |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `AccountId`  | 您在 impact.com 帐户的 API 帐户 ID 值。 [了解如何查找此值](https://help.impact.com/brand/zh/nin-xiang-liao-jie-shen-me/account-administration/account-settings/api-tokens/manage-api-access-tokens-as-a-brand).                                                                                                                                       |
| `AuthToken`  | 您在 impact.com 帐户的 API 授权令牌值。 [了解如何查找此值](https://help.impact.com/brand/zh/nin-xiang-liao-jie-shen-me/account-administration/account-settings/api-tokens/manage-api-access-tokens-as-a-brand).                                                                                                                                         |
| `CampaignId` | <p>操作被跟踪所属计划（活动）的 ID 值。</p><p><img src="https://1186853034-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMLlMoFBtKJa8ptd3zaw%2Fuploads%2Fgit-blob-31394f285a15896ee35415220c2ee33641e1e8db%2F6cdb04166abb32ded5995d58f18ef3e6462d01cddcf81cd387abb3cac22e3389.png?alt=media" alt="" data-size="original"></p> |

</details>

{% tabs %}
{% tab title="示例调用" %}

```programlisting
curl 'https://api.impact.com/Advertisers/{AccountSID}/Actions' \\
  -X GET \
  -u '{AccountSID}:{AuthToken}' \\
  -H 'Accept: application/json' \\
  -d 'CampaignId={CampaignId}'
```

{% endtab %}

{% tab title="示例响应" %}

```programlisting
{
  "@page": "1",
  ...,
  "Actions": [
    {
      "Id": "1000.4636.158133",
      ...,
    }
  ]
}
```

{% endtab %}
{% endtabs %}

#### 常见问题

<details>

<summary>如何重置对某项操作（或操作项）所做的修改/撤销？</summary>

如果在操作的锁定日期之前对其进行了修改或撤销，您可以提交 `RESET` 作为将操作更新回默认状态的原因：

```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'
```

已通过 `RESET` 代码重置的操作在报告中可能无法正确显示（例如，收入值可能被错误计算）。

</details>

<details>

<summary>处置代码与原因之间有什么区别？</summary>

处置代码和原因在相同的上下文中使用—— *原因* 是 API 默认接受的预定义代码，而 *处置代码* 是您可以配置的自定义原因。 [了解有关处置代码的更多信息](https://help.impact.com/brand/zh/nin-xiang-liao-jie-shen-me/platform-features/tracking/set-up-tracking/manage-disposition-codes).

将下列任一值作为原因提交将撤销该项目（或操作）：

| 代码                      | 说明         |
| ----------------------- | ---------- |
| `CONS_FRAUD`            | 消费者欺诈      |
| `CONS_ERROR`            | 消费者错误      |
| `ITEM_RETURNED`         | 商品已退回      |
| `ORDER_ERROR`           | 订单错误       |
| `ORDER_UPDATE`          | 订单已更新      |
| `PUB_ACT_DISPUTE`       | 合作伙伴活动争议   |
| `ADV_ACT_DISPUTE`       | 广告主活动争议    |
| `NOT_COMPLIANCE_TERMS`  | 不符合条款      |
| `ITEM_OUT_OF_STOCK`     | 商品缺货       |
| `TEST_ACTION`           | 测试操作       |
| `PARTNER_NOT_ACTIVE`    | 合作伙伴帐户已停用  |
| `CREDITED_DIFFERENT_MP` | 记入了另一个合作伙伴 |
| `其他`                    | 其他原因       |
| `ITEM_CANCELLED`        | 订单中的商品已取消  |

</details>

<details>

<summary>如何查看何时将修改/撤销应用于某项操作？</summary>

您可以使用 [操作更新](https://integrations.impact.com/impact-brand/reference/the-action-update-object) 端点以查看某项操作上次何时更新以及其当前状态是什么。

```programlisting
curl 'https://api.impact.com/Advertisers/{AccountSID}/ActionUpdates/{ActionUpdatesId}' \
  -X GET \
  -u '{AccountSID}:{AuthToken}' \\
  -H 'Accept: application/json' \\
```

{% hint style="info" %}
**注意：** 一个 `ActionUpdatesID` 值不同于 `ActionId` 值——您必须使用 `ActionUpdatesID` 值来检索某项操作的更新。
{% endhint %}

</details>
