REFUND_COMPLETED
Buy with Prime API is now available for early access
Sign up for early access to the Buy with Prime API using the 'Sign Up' button below. The API may change as Amazon receives feedback and iterates on it.
The REFUND_COMPLETED event is published when a refund is successfully processed. This event is generated after funds are returned to the customer and all related accounting adjustments are completed.
The following examples are ways that you might use this event:
- To serve as final notification that a refund is processed and complete.
- To let merchants communicate with shoppers that their refund is complete.
Required permission
To subscribe to this event, your API credentials must have at least Read Order permission. You choose permissions when you generate your API credentials. For details, see Authenticate to the Buy with Prime API.
Schema
Schema for webhook destinations
{
"idempotencyKey":"example-idempotency-key",
"eventDescriptor": "REFUND_COMPLETED",
"resources": [
"businessProduct/business-product-id/order/order-id/refund/refund-id"
],
"eventId":"example-event-id",
"apiVersion": "2024-11-01",
"subscriptionId": "example-subscription-id",
"eventTime":"2025-01-20T12:34:56Z",
"data": {
"order": {
"id": "example-order-id",
"aliases": [
{
"aliasId": "example-alias-id",
"aliasType": "example-alias-type"
}
],
"refunds": [
{
"details": {
"id": "example-refund-id",
"createdAt": "example-created-at-datetime-string",
"updatedAt": "example-updated-at-datetime-string",
"state": "example-refund-state-string",
"refundRequestReason": "example-refund-request-reason-string",
"refundStatusReason": "example-refund-status-reason-string",
"refundTotal": {
"totalAmount": {
"amount": 20.0,
"currencyCode": "example-currency-code-string"
}
},
"refundFor": {
"orderLineItems": [
{
"lineItem": {
"id": "a7a2458ebd-7975599522"
}
}
]
}
}
}
]
}
},
}
Schema for Amazon EventBridge destinations
{
"version": "0",
"id": "example-event-id",
"detail-type": "REFUND_COMPLETED",
"source": "aws.partner/buywithprime/partner-event-source-name",
"account": "example-aws-account-id",
"time": "2025-01-20T12:34:56Z",
"region": "us-east-1",
"resources": [
"businessProduct/business-product-id/order/order-id/refund/refund-id"
],
"detail": {
"idempotencyKey":"example-idempotency-key",
"eventDescriptor": "REFUND_COMPLETED",
"resources": [
"businessProduct/business-product-id/order/order-id/refund/refund-id"
],
"eventId":"example-event-id",
"apiVersion": "2024-11-01",
"subscriptionId": "example-subscription-id",
"eventTime":"2025-01-20T12:34:56Z",
"data": {
"order": {
"id": "example-order-id",
"aliases": [
{
"aliasId": "example-alias-id",
"aliasType": "example-alias-type"
}
],
"refunds": [
{
"details": {
"id": "example-refund-id",
"createdAt": "example-created-at-datetime-string",
"updatedAt": "example-updated-at-datetime-string",
"state": "example-refund-state-string",
"refundRequestReason": "example-refund-request-reason-string",
"refundStatusReason": "example-refund-status-reason-string",
"refundTotal": {
"totalAmount": {
"amount": 20.0,
"currencyCode": "example-currency-code-string"
}
},
"refundFor": {
"orderLineItems": [
{
"lineItem": {
"id": "a7a2458ebd-7975599522"
}
}
]
}
}
}
]
}
},
}
}
Fields
| Key | Data type | Description |
|---|---|---|
version | String | Amazon EventBridge event version. |
id | String | Amazon EventBridge-generated UUID for an event. |
detail-type | String | Type schema for the detail of the event, which in this case is REFUND_COMPLETED. |
source | String | Name of the partner event source in Amazon EventBridge. For details, see Subscribe to Events. |
account | String | AWS account ID that hosts the partner event source. |
time | String | ISO 8601 timestamp that indicates when the event was published. |
region | String | AWS region from which the event was published. |
resources | Array of strings | Array of identifiers for the resources that triggered the event, in key-value pair format. Each resource identifier is a string that starts with businessProduct/{businessProductId}/, followed by resource types (keys) and resource IDs (values) separated by forward slashes. For details about how to interpret resources, see Subscribe to Events. |
detail | Object | JSON object that contains details about the event. You can call the Buy with Prime API to find further information about the resource(s) specified in the resources array. For details, see detail fields. |
Detail fields
| Key | Data type | Description |
|---|---|---|
idempotencyKey | String | Unique identifier to detect duplicate events. |
eventDescriptor | String | Event type that determines the default query. |
resources | Array of strings | Array of identifiers for the resources that triggered the event, in key-value pair format. Each resource identifier is a string that starts with businessProduct/{businessProductId}/, followed by resource types (keys) and resource IDs (values) separated by forward slashes. This field is the same value as resources at the top level. |
eventId | String | Unique identifier for this event. This field is the same value as id at the top level. |
apiVersion | String | Buy with Prime API version associated with this event. |
subscriptionId | String | Unique identifier for an event subscription. |
eventTime | String | ISO 8601 timestamp that indicates when the event was published. This field is the same value as time at the top level. |
data | Object | JSON object that can contain API response data. The REFUND_COMPLETED event's data payload contains the refund's associated order object. |
Handling the event
When you receive this event, you typically parse the included order information found in the data object to determine which products were refunded and the refund amount. Take the following steps:
- Parse the
resourcesarray of the event to get the refund ID. - In the
dataobject, navigate to therefunds.detailsarray and find the element with the refund ID that you found in theresourcesarray of the event. The element with the refund ID contains the IDs of the line items being refunded. - Find information on the refunded amount in the
refunds.details.refundTotalarray.
If you require information not found in the data object, query the order using the order ID found in the resources array.
Related topics
Updated 1 day ago
