# 创建退款批次

<a id="submit"></a>

<a id="提交退款申请"></a>

## 提交退款申请

单个账号或批量提交

<a id="endpoint-submit"></a>

<a id="创建退款批次"></a>

### 创建退款批次

POST `/v1/apps/chatgpt-refund/batches` API Key

同一个接口支持单账号与批量退款申请，每个受理账号对应一个独立任务。

<a id="请求字段"></a>

#### 请求字段

 **Idempotency-Key**  · header · string · 必填

必填。8–80 位字母、数字、下划线或短横线；一次逻辑提交使用一个唯一标识，重试保留原标识。

 **version**  · integer · 必填

用户确认服务费时读取的 catalog.version。版本已变更返回 409，重新读取并确认。

 **consent**  · boolean · 必填

用户已确认账号归属并授权本次退款处理时传 true。

 **accounts**  · array · 必填

1–200 项。每项包含 type 与 value，可混用支持的账号类型。单次 JSON 请求上限 16 MiB，单账号 value 上限 1 MiB。

 **accounts\[\].type**  · string · 必填

session、access\_token、microsoft 或 icloud。

 **accounts\[\].value**  · object | string · 必填

Session 推荐传完整 JSON 对象；其他类型传字符串。格式说明见下方。

<a id="四种账号输入格式"></a>

### 四种账号输入格式

 **session · 完整 Session JSON 对象** 

用户登录 ChatGPT 后打开下方会话接口，复制全部返回内容，至少包含 user.email 与 accessToken。也兼容 JSON 字符串。

 **access\_token · 字符串** 

完整 Access Token，长度 10–65536 字节，不能包含空白字符。

 **microsoft · 字符串** 

邮箱----密码----client\_id----refresh\_token，四段均不能为空。

 **icloud · 字符串** 

邮箱----HTTPS 接码地址，地址不能包含用户名或密码段。

[获取完整 ChatGPT Session](https://chatgpt.com/api/auth/session)

<a id="响应字段说明-2"></a>

### 响应字段说明

 **batch**  · object

id：批次编号；count：本地去重后的账号数；accepted：已受理数量，结果未确认时为 null；created\_at：创建时间。

 **tasks**  · array

本批次任务，字段与任务详情一致。HTTP 200 不代表退款成功，必须继续查询 status 和 settled。

相同本站账户、相同幂等标识、相同账号身份集合和版本返回原批次，不重复预留积分。改变身份集合或版本返回 409；重试仍应保留原请求。提交超时后先查任务历史，不要换标识重新提交。

调用示例请求与响应分开查看

<a id="curl-请求-2"></a>

### cURL 请求

```bash
curl -X POST 'https://y.junlistudio.com/v1/apps/chatgpt-refund/batches' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: refund_UNIQUE_REQUEST_ID' \
  --data-binary @refund.json
```

<a id="请求-json"></a>

### 请求 JSON

```json
{
  "version": 2,
  "consent": true,
  "accounts": [
    {
      "type": "session",
      "value": {
        "user": {
          "email": "alice@example.com"
        },
        "accessToken": "REPLACE_WITH_COMPLETE_SESSION",
        "expires": "REPLACE_WITH_ACTUAL_EXPIRY"
      }
    }
  ]
}
```

<a id="响应-json-2"></a>

### 响应 JSON

```json
{
  "batch": {
    "id": "BATCH_ID",
    "count": 1,
    "accepted": 1,
    "created_at": "2026-10-12T08:00:00Z"
  },
  "tasks": [
    {
      "id": "TASK_ID",
      "batch_id": "BATCH_ID",
      "key_id": "KEY_ID",
      "account": "al***@example.com",
      "fee": "7.12345678",
      "status": "queued",
      "progress": 0,
      "requires_otp": false,
      "failure_code": "",
      "settled": false,
      "created_at": "2026-10-12T08:00:00Z",
      "updated_at": "2026-10-12T08:01:00Z"
    }
  ]
}
```

将占位值替换为你的数据 · 示例不发起真实请求

金额、时间与版本均为结构示例，以真实接口返回为准。

将请求 JSON 保存为仅自己可读的 refund.json。Session 示例须替换成完整返回内容。请从自己的服务端提交，避免凭据和验证码进入日志。
