Refunding a Payment

This API is used to refund a sale transaction after the sale has been completed.

This API depends on the Token API and the Charge Object

POST v1/payment/{mid}/refund

Request Parameters

The merchant id that the authorization

Request Body

Include a RefundRequest object as the body of the request.

Sample Request



Returns an RefundResponse object.


RefundRequest Object

saleIdstringThe Sale Id that you are refundingRequired

Charge Object

The charge object for the refund.  The amount being refunded on the order is required.  It cannot be more than is remaining on the order or token if one is providedRequired

RefundResponse Object

refundIdstringThe id of the refund 
saleIdstringThe Sale Id that you are refunding
chargeCharge ObjectThe charge object associated with the refund. The amount refunded will match the input amount as we will error if there is insufficient funds on the order to be refunded to this token otherwise.
cardCard Object
The details of the credit card

Sample Request Body

  "saleId" : "sale_34de74b9-e409-4931-8a49-9982f986bd3a",
  "charge": {
    "amount" : 50.00

Sample Response Body

Successful Refund Transaction

    "refundId" : "refund_edc589c7-b510-42d8-b70a-a3b78f888b6c",
    "saleId" : "sale_34de74b9-e409-4931-8a49-9982f986bd3a",
    "charge": {
       "amount" : 50.00
    "card": {
        "lastFour": "4242",
        "expirationDate": {
            "month": "12",
            "year": "2023"
        "postalCode": "T1X 0V6",
        "brand": "Visa",
        "firstName": "VISA",
        "lastName": "CARDHOLDER"

Failed Refund Transaction

If the error happens at ACME there will not be a processor or issuing error code.  If the error happens at the issuing bank then both of those should be available.  If it happens at the payment processor, then there will probably not be an issuing error but there will be a processor error.

    "message": "Refund amount must be positive",
    "errorCode": 10026,
    "requestId": "6e360f6a-5d31-11ec-9ceb-064a412857e4"