Skip to main content

Refunding an Order

Last updated: 08-Dec-2020
Rate this article:

Overview

Reimbursing customers by issuing Total or Partial refunds for their orders is available via API. 

Issuing refunds can be done on the REST protocol via a POST request to /orders/{RefNo}/refund/ and on SOAP and JSON-RPC protocols via the issueRefund method.

Availability

Refunding an order via API is available for all accounts.

Requirements

  • Order must be in status COMPLETE
  • Order must not be older than 3 months
  • The refunded amount must not be higher than the total amount of the order

Request Object

Field name

Type

Required/Optional

Description

RefNo

String

Required (only on SOAP and JSON-RPC)

2Checkout generates unique reference numbers for the refunded order.

Amount

Double

Required

The amount refunded for that order. Can be equal to the order amount (for full order refund) or smaller (for partial refunds).

The currency of the amount is the same as the currency the order was paid in.

Items

Array of RefundItem

Required

The details of the refunded items.

Comment

String

Required

Free text comment for the refund.

Reason

String

Required

The refund reason; must be one of the default refund reasons or a custom reason defined in the 2Checkout Merchant Control Panel.

RefundItem Object

Field name

Type

Required/Optional

Description

LineItemReference

String

Optional

2Checkout product code for the refunded product.

Quantity

Integer

Optional

Quantity of product refunded.

Amount

Double

Optional

Amount refunded.

Request example

REST

{
  "amount": 23,
  "items": [
    {
      "LineItemReference": "my_product_1",
      "Quantity": 1
    }
  ],
  "comment": "requested by shopper",
  "reason": "CUSTOM_REASON"
}

SOAP and JSON-RPC Example

For the SOAP and JSON-RPC protocols, the issueRefund method needs to be called with the components of the requests in the parameter list. 

More information about issuing refunds can be found here (for JSON-RPC) and here (for SOAP).

The JSON-RPC object that needs to be sent would look like

{
   "jsonrpc":"2.0",
   "method":"issueRefund",
   "params":[
      "om7sb5uob2p2g9r321iif2v3hd7p5gkn", //session id
      "11370513",                         //orderRef
      "25.39",                           //amount 
      {
         "Quantity":1,                   //quantity of product refunded
         "Amount":25.39                  //amount of product refunded
      },
      "This is a comment",               //comment
      "Duplicate purchase"               //reason
   ],
   "id":2
}

 For SOAP requests, the following parameters need to be added to the SOAP request:


$refundedOrder = $client->issueRefund($sessionID, $orderReference, $amount, $items, $comment, $reason);

Response

The API will return a Boolean when issuing refunds. A true response means that the refund was registered successfully.

Error handling

A full list of errors returned by the issueRefund API method can be found here.

 

Rate this article:

Need help?

Do you have a question? If you didn’t find the answer you are looking for in our documentation, you can contact our Support teams for more information. If you have a technical issue or question, please contact us. We are happy to help.

Not yet a Verifone customer?

We’ll help you choose the right payment solution for your business, wherever you want to sell, in-person or online. Our team of experts will happily discuss your needs.

Verifone logo