issueRefund
Note: The Return Management API is no longer recommended. Instead, current users of the Return Management API should make plans to migrate to, and use the Return operations of the Post-Order API. New users interested is programmatically managing return requests, should also make plans to integrate with the Post-Order API. The Return Management API was developed to be used by sellers who had opted in to "Hassle-free Returns". Hassle-free Returns have been replaced by a new Returns Platform, where sellers fully or partially automate the processing of return requests through Return Automation Rules. The Return Management API does not support all features and logic of the new Returns Platform, and this API will be deprecated in the near future.
This call allows a seller to issue a refund to the buyer who has initiated the return through the eBay Return Center. For a standard refund through PayPal, the refund is instantaneous.
Note: Users of this call should start using the POST /post-order/v2/return/{returnId}/issue_refund call of the Post-Order API instead.Request Details
In the issuRefund request, the seller must provide the return ID for the return upon which a refund will be issued. If not already known, the return ID can be retrieved with a call to getUserReturns.
The refundDetail container is used to provide the refund type and amount. An itemizedRefund container is required for each refund type, such as purchase price, original shipping, and restocking fee charge (if set by seller). The total refund amount is passed into the refundDetail.totalAmount field. The aggregate total of refund amounts passed in one or more itemizedRefund.amount fields should match the refundDetail.totalAmount value.
Note: The restocking fee is the only refund type that will be a negative dollar value, as a restocking fee is a charge against the buyer for returning the item. In order to enforce a restocking fee on an item, the seller must include a restocking fee as part of the listing's return policy. In the listing APIs, this field is Item.ReturnPolicy.RestockingFeeValue. |
There is an optional comments field that allows the seller to provide any relevant comments to the buyer.
Working with the Response
In addition to the standard timestamp and version fields and the errorMessage container (if errors and/or warnings exist), the response for issueRefund includes the RefundStatus field. The RefundStatus value indicates whether the refund action failed or succeeded, or is pending. 'PENDING' is always returned for eCheck refunds, since eCheck refunds will generally take a few business days to process.
Output Samples Change History |
Input
See also Samples.
The box below lists all fields that could be included in the call request. To learn more about an individual field or its type, click its name in the box (or scroll down to find it in the table below the box).
See also the Deprecated Objects link above. Fields presented in this color are deprecated, and fields presented in this color are (or soon will be) non-operational.
<?xml version="1.0" encoding="utf-8"?> <issueRefundRequest xmlns="http://www.ebay.com/marketplace/returns/v1/services"> <!-- Call-specific Input Fields --> <comments> string </comments> <refundDetail> RefundDetailType <itemizedRefund> ItemizedRefundDetailType <amount> Amount (double) </amount> <refundFeeType> RefundFeeType </refundFeeType> </itemizedRefund> <!-- ... more itemizedRefund nodes allowed here ... --> <totalAmount> Amount (double) </totalAmount> </refundDetail> <ReturnId> ReturnIdType <id> string </id> </ReturnId> </issueRefundRequest>
Argument | Type | Occurrence | Meaning |
---|
comments | string | Optional | In this optional field, the seller can include a message to the buyer regarding the refund. |
refundDetail | RefundDetailType | Required | Container consisting of details related to the type and amount of the refund to the buyer. |
refundDetail.itemizedRefund | ItemizedRefundDetailType | Required,
repeatable: [1..*] |
Container used to track estimated and actual individual refund amounts by fee type (such as purchase price, original shipping, or restocking fee). At least one itemizedRefund container is required when the seller is issuing a refund to the buyer through the issueRefund call. |
refundDetail.itemizedRefund .amount |
Amount (double) | Required | This dollar amount indicates the amount of the corresponding refund fee type. |
refundDetail.itemizedRefund .refundFeeType |
RefundFeeType | Required |
This value indicates the type of refund fee, such as purchase price or original shipping.
Applicable values: |
refundDetail.totalAmount | Amount (double) | Required | This dollar value indicates the total amount of actual refunds issued by the seller to the buyer. This is a dynamic value while the return is open. The refundDetail.totalAmount value is required in the issueRefund call and it should match the refundDetail.itemizedRefundAmount value (if only one refund type is being issued by the seller) or the composite value of multiple refundDetail.itemizedRefundAmount values (if multiple refund types are being issued by the seller). |
ReturnId | ReturnIdType | Required | Container consisting of the unique identifier for a return. A return ID value is required and the seller should take all precautions to make sure this value is correct before making the call. Return ID values are returned in the ReturnId.id field of each ReturnSummary container returned in the getUserReturns response. |
ReturnId.id | string | Required |
This string value is the unique identifier for a return, and is returned in the responses of getUserReturns and getReturnDetail. For getReturnDetail, getActivityOptions, issueRefund, provideSellerInfo, provideTrackingInfo, and setItemAsReceived, a ReturnId value is a required input field. Max length: 38. |
Input Samples Change History |
Output
See also Samples.
The box below lists all fields that might be returned in the response. To learn more about an individual field or its type, click its name in the box (or scroll down to find it in the table below the box).
See also the Deprecated Objects link above. Fields presented in this color are deprecated, and fields presented in this color are not returned (or soon will not be returned) or are not operational (or soon will be non-operational).
<?xml version="1.0" encoding="utf-8"?> <issueRefundResponse xmlns="http://www.ebay.com/marketplace/returns/v1/services"> <!-- Call-specific Output Fields --> <RefundStatus> RefundStatusType </RefundStatus> <!-- Standard Output Fields --> <ack> AckValue </ack> <errorMessage> ErrorMessage <error> ErrorData <category> ErrorCategory </category> <domain> string </domain> <errorId> long </errorId> <exceptionId> token </exceptionId> <message> string </message> <parameter name="string"> ErrorParameter (string) </parameter> <!-- ... more parameter values allowed here ... --> <severity> ErrorSeverity </severity> <subdomain> string </subdomain> </error> <!-- ... more error nodes allowed here ... --> </errorMessage> <timestamp> dateTime </timestamp> <version> string </version> </issueRefundResponse>
Return Value | Type | Occurrence | Meaning |
---|
Call-specific Output Fields [Jump to standard fields] |
RefundStatus | RefundStatusType | Always |
The returned value indicates the result of the attempted refund. The three possible values are 'SUCCESS', 'FAILED', or 'PENDING'.
Applicable values: Code so that your app gracefully handles any future changes to this list. |
Standard Output Fields |
ack | AckValue | Always |
A token representing the application-level acknowledgement code that indicates the response status, such as "Success". The AckValue enumeration type specifies the possible values for ack.
Applicable values: Code so that your app gracefully handles any future changes to this list. |
errorMessage | ErrorMessage | Conditionally | Information for an error or warning that occurred when eBay processed the request. This field is not returned if the ack value is Success. |
errorMessage.error | ErrorData | Conditionally,
repeatable: [0..*] |
Details about a single error. |
errorMessage.error.category | ErrorCategory | Conditionally |
There are three categories of errors: request errors, application errors, and system errors.
Applicable values: Code so that your app gracefully handles any future changes to this list. |
errorMessage.error.domain | string | Conditionally | Name of the domain in which the error occurred. |
errorMessage.error.errorId | long | Conditionally | A unique code that identifies the particular error condition that occurred. Your application can use error codes as identifiers in your customized error-handling algorithms. |
errorMessage.error.exceptionId | token | Conditionally | Unique identifier for an exception associated with an error. |
errorMessage.error.message | string | Conditionally | A detailed description of the condition that caused the error. |
errorMessage.error.parameter | ErrorParameter (string) | Conditionally,
repeatable: [0..*] |
Various warning and error messages return one or more variables that contain contextual information about the error. This is often the field or value that triggered the error. |
errorMessage.error.parameter [ attribute name ] |
string | Conditionally | Various warning and error messages return one or more variables that contain contextual information about the error. This is often the field or value that triggered the error. |
errorMessage.error.severity | ErrorSeverity | Conditionally |
Indicates whether the reported problem is fatal (an error) or is less severe (a warning). Review the error message details for information on the cause. If the request fails and the application is the source of the error (for example, a required element is missing), update the application before you retry the request. If the problem is due to incorrect user data, alert the end user to the problem and provide the means for them to correct the data. Once the problem in the application or data is resolved, resend the request to eBay. If the source of the problem is on eBay's side, you can retry the request a reasonable number of times (eBay recommends you try the request twice). If the error persists, contact Developer Technical Support. Once the problem has been resolved, you can resend the request in its original form. If a warning occurs, warning information is returned in addition to the business data. Normally, you do not need to resend the request (as the original request was successful). However, depending on the cause of the warning, you might need to contact the end user, or eBay, to effect a long term solution to the problem. Applicable values: Code so that your app gracefully handles any future changes to this list. |
errorMessage.error.subdomain | string | Conditionally | Name of the subdomain in which the error occurred. |
timestamp | dateTime | Always | This value represents the date and time when eBay processed the request. The time zone of this value is GMT and the format is the ISO 8601 date and time format (YYYY-MM-DDTHH:MM:SS.SSSZ). See Time Values in the eBay Features Guide for information about this time format and converting to and from the GMT time zone. |
version | string | Always | The version of the response payload schema. Indicates the version of the schema that eBay used to process the request. |
Input Output Change History |
Samples
New to making API calls? Please see Making a Call.
Note: Some item IDs, user IDs, or other data in these samples might no longer be active on eBay. If necessary, you can substitute current eBay data in your requests.
This call is used by seller to issue a full refund to the buyer for an Item Not Received or Significantly Not As Described case.
Description
This issueRefund call sample issues a full refund to a buyer to satisfy a specific return case. The seller refunds the buyer for the original purchase price plus the return shipping costs.
Input
A seller wants to issue a full refund to buyer to satisfy for eBay return case 5********8.
The seller is refunding the buyer for the purchase price, and for the cost of return shipping. A separate itemizedRefund container is required for each of these refund transactions, and the refundFeeType and amount fields are required. For this call sample, the seller is refunding the buyer $1.01 for the purchase price and $0.15 for return shipping costs, for a total refund of $1.16 (indicated in the refundDetail.totalAmount field).
The seller uses the comments field to describe the refund transaction to the buyer.
SOAP format. Also available is the XML equivalent. <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ser="http://www.ebay.com/marketplace/returns/v1/services"> <soap:Header/> <soap:Body> <ser:issueRefundRequest> <RequesterCredentials> <eBayAuthToken>A********3</ser:eBayAuthToken> </RequesterCredentials> <ser:ReturnId> <ser:id>5********8</ser:id> </ser:ReturnId> <ser:refundDetail> <ser:totalAmount currencyId="USD">1.01</ser:totalAmount> <ser:itemizedRefund> <ser:refundFeeType>PURCHASE_PRICE</ser:refundFeeType> <ser:amount currencyId="USD">1.01</ser:amount> </ser:itemizedRefund> <ser:itemizedOptionalRefund> <ser:refundFeeType>RETURN_SHIPPING</ser:refundFeeType> <ser:amount currencyId="USD">0.15</ser:amount> </ser:itemizedOptionalRefund> </ser:refundDetail> <ser:comments>I am refunding you the full purchase price of the item, plus the cost of return shipping</ser:comments> </ser:issueRefundRequest> </soap:Body> </soap:Envelope>
Output
The call is successful as indicated by the Success value in the ack field. 'SUCCESS' is also returned in the RefundStatus field, which indicates that the refund transaction was successful in the PayPal system. Note that non-PayPal refund transactions cannot be tracked by eBay, so 'PENDING' will always be the refund status value returned in this situation.
SOAP format. Also available is the XML equivalent. <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"> <soapenv:Header/> <soapenv:Body> <ns1:issueRefundResponse xmlns:ns1="http://www.ebay.com/marketplace/returns/v1/services"> <ns1:ack>Success</ns1:ack> <ns1:version>1.0.0</ns1:version> <ns1:timestamp>2012-01-13T17:11:41.702Z</ns1:timestamp> <ns1:RefundStatus>SUCCESS</ns1:RefundStatus> </ns1:issueRefundResponse> </soapenv:Body> </soapenv:Envelope>
Here is the same output in XML format. Note that this does not include standard values.
XML format. Also available is the SOAP equivalent. <?xml version="1.0" encoding="utf-8"?> <issueRefundResponse xmlns:ns1="http://www.ebay.com/marketplace/returns/v1/services"> <ack>Success</ack> <version>1.0.0</version> <timestamp>2012-01-13T17:11:41.702Z</timestamp> <RefundStatus>SUCCESS</RefundStatus> </issueRefundResponse>
Input Output Samples |
Change History
Change Date | Description |
---|---|
1.0.0 2012-04-23 |
|