跳到主要内容

退款 API 函数

创建退款

为已创建但尚未退款的扣款创建退款。 您可以指定退款金额,或者不指定金额以退还全部交易金额。退款将使用与交易相同的货币,并通过与交易相同的支付方式进行。

同一笔交易不能被多次退款。 如果您尝试对已退款的交易再次退款,系统将返回错误。 若尝试退款金额超过原始收费金额,也会出现此情况。

端点:https://api.stripe.com/v1/refunds

操作:POST

示例

cURL 示例:

curl -X POST https://api.stripe.com/v1/refunds \
-u <YOUR_SECRET_KEY>: \
-d "charge=ch_1NirD82eZvKYlo2CIvbtLWuY"

响应

响应将返回标准状态码。

200: OK

{
"id": "re_1Nispe2eZvKYlo2Cd31jOCgZ",
"object": "refund",
"amount": 212,
"balance_transaction": "txn_1Nispe2eZvKYlo2CYezqFhEx",
"charge": "ch_1NirD82eZvKYlo2CIvbtLWuY",
"created": 1692942318,
"currency": "usd",
"destination_details": {
"card": {
"reference": "123456789012",
"reference_status": "available",
"reference_type": "acquirer_reference_number",
"type": "refund"
},
"type": "card"
},
"metadata": {},
"payment_intent": "pi_1GszsK2eZvKYlo2CfhZyoZLp",
"reason": null,
"receipt_number": null,
"source_transfer_reversal": null,
"status": "succeeded",
"transfer_reversal": null
}

400: Bad Request

{
"error": {
"code": "parameter_invalid_integer",
"doc_url": "https://stripe.com/docs/error-codes/parameter-invalid-integer",
"message": "Invalid integer: <integer>",
"param": "amount",
"request_log_url": "https://dashboard.stripe.com/test/logs/req_UQf6XBwBl9yk66?t=1734829676",
"type": "invalid_request_error"
}
}

401: Unauthorized

{
"error": {
"type": "invalid_request_error",
"message": "Invalid API Key provided: sk_test_********************1234"
}
}

参数

请求体参数
参数类型描述
amount整数退款金额(单位为美分)。若未指定,将退还全部收费金额。
charge字符串(必填) 待退款的收费 ID。
currency字符串三字母 ISO 货币代码,小写。必须是受支持的货币。如果未指定,将使用扣款时的货币。
expand[]字符串数组指定响应中应展开的字段。
customer字符串扣款所属客户的 ID。
reason字符串退款原因。若设置此字段,可能的取值为 duplicatefraudulentrequested_by_customer。若设置为 fraudulent,与该交易关联的卡片和邮箱将被添加到您的屏蔽列表中,并有助于改善 Stripe 的欺诈检测。
payment_intent字符串待退款的 PaymentIntent ID。
refund_application_fee布尔型指示是否应退还申请费。若全额退款,申请费也将一并退还。否则,申请费将按退款比例退还。申请费仅适用于生成该扣款的申请。
origin字符串退款的来源。
reverse_transfer布尔值指示是否应逆转转账。转账将按退款金额(全额或部分退款)的比例进行逆转。
instructions_email字符串当使用不支持退款的支付方式时,使用客户的电子邮件地址发送退款说明。

更新退款

通过设置传入参数的值来更新指定的退款。 未提供的参数将保持不变。这有助于存储有关退款的附加信息。

端点:https://api.stripe.com/v1/refunds/{id}

操作:POST

示例

cURL 示例:

curl -X POST `https://api.stripe.com/v1/refunds/{id}` \
-u <YOUR_SECRET_KEY>: \
-d "metadata[order_id]=6735"

响应

响应将返回标准状态码。

200: OK

{
"id": "re_1Nispe2eZvKYlo2Cd31jOCgZ",
"object": "refund",
"amount": 1000,
"balance_transaction": "txn_1Nispe2eZvKYlo2CYezqFhEx",
"charge": "ch_1NirD82eZvKYlo2CIvbtLWuY",
"created": 1692942318,
"currency": "usd",
"destination_details": {
"card": {
"reference": "123456789012",
"reference_status": "available",
"reference_type": "acquirer_reference_number",
"type": "refund"
},
"type": "card"
},
"metadata": {
"order_id": "6735"
},
"payment_intent": "pi_1GszsK2eZvKYlo2CfhZyoZLp",
"reason": null,
"receipt_number": null,
"source_transfer_reversal": null,
"status": "succeeded",
"transfer_reversal": null
}

400: Bad Request

{
"error": {
"code": "parameter_invalid_integer",
"doc_url": "https://stripe.com/docs/error-codes/parameter-invalid-integer",
"message": "Invalid integer: <integer>",
"param": "amount",
"request_log_url": "https://dashboard.stripe.com/test/logs/req_UQf6XBwBl9yk66?t=1734829676",
"type": "invalid_request_error"
}
}

401: Unauthorized

{
"error": {
"type": "invalid_request_error",
"message": "Invalid API Key provided: sk_test_********************1234"
}
}

参数

请求体参数
参数类型描述
metadata对象可附加到对象上的键值对集合。这有助于以结构化格式存储有关该对象的附加信息。
expand[]字符串数组指定响应中应展开的字段。
路径变量
名称类型必填描述
id字符串必填要更新的退款 ID。

检索退款

检索特定退款的详细信息。

端点:https://api.stripe.com/v1/refunds/{id}

操作:GET

示例

cURL 示例:

curl -X GET https://api.stripe.com/v1/refunds/re_1Nispe2eZvKYlo2Cd31jOCgZ \
-u <YOUR_SECRET_KEY>:

响应

响应将返回标准状态码。

200: OK

{
"id": "re_1Nispe2eZvKYlo2Cd31jOCgZ",
"object": "refund",
"amount": 212,
"balance_transaction": "txn_1Nispe2eZvKYlo2CYezqFhEx",
"charge": "ch_1NirD82eZvKYlo2CIvbtLWuY",
"created": 1692942318,
"currency": "usd",
"destination_details": {
"card": {
"reference": "123456789012",
"reference_status": "available",
"reference_type": "acquirer_reference_number",
"type": "refund"
},
"type": "card"
},
"metadata": {},
"payment_intent": "pi_1GszsK2eZvKYlo2CfhZyoZLp",
"reason": null,
"receipt_number": null,
"source_transfer_reversal": null,
"status": "succeeded",
"transfer_reversal": null
}

400: Bad Request

{
"error": {
"code": "parameter_invalid_integer",
"doc_url": "https://stripe.com/docs/error-codes/parameter-invalid-integer",
"message": "Invalid integer: <integer>",
"param": "amount",
"request_log_url": "https://dashboard.stripe.com/test/logs/req_UQf6XBwBl9yk66?t=1734829676",
"type": "invalid_request_error"
}
}

401: Unauthorized

{
"error": {
"type": "invalid_request_error",
"message": "Invalid API Key provided: sk_test_********************1234"
}
}

参数

查询参数
参数类型描述
expand[]字符串数组指定响应中应展开的字段。
路径变量
名称类型必填描述
id字符串必填要检索的退款 ID。

列出所有退款

返回现有退款的列表。退款按排序顺序返回,最近的退款排在最前面。默认返回最近的 10 笔退款。

接口地址:https://api.stripe.com/v1/refunds

操作:GET

示例

cURL 示例:

curl -X GET https://api.stripe.com/v1/refunds \
-u <YOUR_SECRET_KEY>:

响应

响应将返回标准状态码。

200: OK

{
"object": "list",
"url": "/v1/refunds",
"has_more": false,
"data": [
{
"id": "re_1Nispe2eZvKYlo2Cd31jOCgZ",
"object": "refund",
"amount": 212,
"balance_transaction": "txn_1Nispe2eZvKYlo2CYezqFhEx",
"charge": "ch_1NirD82eZvKYlo2CIvbtLWuY",
"created": 1692942318,
"currency": "usd",
"destination_details": {
"card": {
"reference": "123456789012",
"reference_status": "available",
"reference_type": "acquirer_reference_number",
"type": "refund"
},
"type": "card"
},
"metadata": {},
"payment_intent": "pi_1GszsK2eZvKYlo2CfhZyoZLp",
"reason": null,
"receipt_number": null,
"source_transfer_reversal": null,
"status": "succeeded",
"transfer_reversal": null
}
]
}

400: Bad Request

{
"error": {
"code": "resource_missing",
"doc_url": "https://stripe.com/docs/error-codes/resource-missing",
"message": "No such charge: 'ch_1NirD82eZvKYlo2CIvbtLWuY'",
"param": "charge",
"request_log_url": "https://dashboard.stripe.com/test/logs/req_HIH2jWkJGecwCk?t=1754504399",
"type": "invalid_request_error"
}
}

401: Unauthorized

{
"error": {
"type": "invalid_request_error",
"message": "Invalid API Key provided: sk_test_********************1234"
}
}

参数

参数类型说明
charge字符串需查询退款的费用 ID。若未指定,将返回所有退款。
created字典仅返回在指定日期区间内创建的退款。该字典可包含以下键:gtgteltlte
ending_before字符串分页用的光标。使用对象 ID ending_before 来定义您在列表中的位置。如果您发起列表请求并收到 100 条结果,从 obj_bar 开始,后续调用可包含 ending_before=obj_bar 来获取列表的前一页。
limit整数返回对象数量的限制。限制范围为 1 到 100。默认值为 10。
payment_intent字符串用于检索退款的 PaymentIntent ID。如果未指定,将返回所有退款。
starting_after字符串分页中使用的游标。 使用对象 ID starting_after 来定义您在列表中的位置。如果您发起列表请求并收到 100 条结果,最后一条为 obj_foo,则后续调用可包含 starting_after=obj_foo 来获取列表的下一页。
expand[]字符串数组指定响应中应展开的字段。