Create a Refund

When you are initiating a refund you need to provide the Refund Amount and the Merchant Transaction ID, that is automatically generated. You can change this ID by introducing your ID value.

Definition: POST /v1/payments/{id}/refunds

Where:
  • {id} – GlobalPay Payment ID

A 201 HTTP response (Created) is returned if the refund was correctly initialized.

Request:

POST https://paytest.smart2pay.com/v1/payments/3005389/refunds
Authorization: Basic MzAyMDE6aEo1Um9iWXg5cjdGZk53Q3ZIWTlMWEhxcXIrRkV6cmM3YUp2UVFrNEdhejFtZzdSeXk=
{
  "Refund": {
    "MerchantTransactionID": "s2ptest_g28",
    "Amount": 100
   }
}

Response:

HTTP/1.1 201 Created
Content-Type: application/json; charset=utf-8
{
  "Refund": {
    "ID": 16405,
    "Created": "20170803095139",
    "MerchantTransactionID": "s2ptest_g28",
    "OriginatorTransactionID": null,
    "InitialPaymentID": 3005389,
    "Amount": 100,
    "Currency": "EUR",
    "Description": null,
    "TypeID": 5,
    "SiteID": 30201,
    "Details": null,
    "Customer": null,
    "BillingAddress": null,
    "BankAddress": null,
    "Articles": null,
    "Status": {
      "ID": 1,
      "Info": "Open",
      "Reasons": null
    }
  }
}

For some payment methods to be processed correctly, depending on the type of refund, we require additional parameters, specific details, such as customer IBAN.

Please check Get information for a refund for more information on what parameters you need to send in order to initiate a specific refund.

A particular case is for Klarna Invoice payment method where in order to initiate a refund you will need to provide Merchant Article ID and Quantity parameters, like in the below example:

Request:

POST https://paytest.smart2pay.com/v1/payments/3006154/refunds
Authorization: Basic MzAyMDE6aEo1Um9iWXg5cjdGZk53Q3ZIWTlMWEhxcXIrRkV6cmM3YUp2UVFrNEdhejFtZzdSeXk=
{
  "Refund": {
    "MerchantTransactionID": "s2ptest_g30",
    "Amount": 980,
    "Articles": [
      {
        "MerchantArticleID": "1231",
        "Quantity": 1
      }
    ]
  }
}

Response:

HTTP/1.1 201 Created
Content-Type: application/json; charset=utf-8
{
  "Refund": {
    "ID": 0,
    "Created": null,
    "MerchantTransactionID": "s2ptest_g30",
    "OriginatorTransactionID": null,
    "InitialPaymentID": 0,
    "Amount": "980",
    "Currency": null,
    "Description": null,
    "TypeID": 0,
    "SiteID": 30201,
    "Details": null,
    "Customer": null,
    "BillingAddress": null,
    "BankAddress": null,
    "Articles": [
      {
        "MerchantArticleID": "1231",
        "Name": null,
        "Quantity": 1,
        "Price": 0,
        "VAT": 0,
        "Discount": 0,
        "Type": null,
        "DiscountValue": 0
      }
    ],
    "Status": {
      "ID": 1,
      "Info": "Open",
      "Reasons": null
    }
  }
}

For Direct Card transactions you can initiate refunds only for those with a Captured payment status. When you are initiating a refund you need to provide the Refund Amount and the Merchant Transaction ID, that is automatically generated. You can change this ID by introducing your ID value.

Request:

POST https://securetest.smart2pay.com/v1/payments/202246/refunds
Authorization: Basic MTAxMDpnYWJp

{
 "Refund": {
   "MerchantTransactionID": "s2ptest_h19",
   "OriginatorTransactionID": "108_a",
   "Amount": 2000,   
   "Description": "refund reason"
  }
}

Response:

HTTP/1.1 201 Created
Content-Type: application/json; charset=utf-8
{
  "Refund": {
    "ID": 263,
    "SiteID": 1010,
    "Created": "20161205095348",
    "MerchantTransactionID": "s2ptest_h19",
    "OriginatorTransactionID": "108_a",
    "InitialPaymentID": 0,
    "Amount": 2000,
    "Currency": "EUR",
    "Description": "refund reason",
    "StatementDescriptor": null,
    "Customer": null,
    "BillingAddress": null,
    "BankAddress": null,
    "Articles": null,
    "Status": {
      "ID": 2,
      "Info": "Success",
      "Reasons": []
    }
  }
}

In case of an API error, an HTTP 4xx (you did something wrong) or HTTP 5xx (we did something wrong) response is returned.

For more information about the reasons of a wrong request response see our section GlobalPay Return Codes.

Request: 

POST https://paytest.smart2pay.com/v1/payments/3006285/refunds
Authorization: Basic MzAyMDE6aEo1Um9iWXg5cjdGZk53Q3ZIWTlMWEhxcXIrRkV6cmM3YUp2UVFrNEdhejFtZzdSeXk=

{
  "Refund": {
    "MerchantTransactionID": "s2ptest_g102",
    "Amount": 120
   }
}

Response:

HTTP/1.1 400 Bad Request
Content-Type: application/json; charset=utf-8
{
  "Refund": {
    "ID": 0,
    "Created": null,
    "MerchantTransactionID": "s2ptest_g102",
    "OriginatorTransactionID": null,
    "InitialPaymentID": 0,
    "Amount": 120,
    "Currency": null,
    "Description": null,
    "TypeID": 0,
    "SiteID": 30201,
    "Details": null,
    "Customer": null,
    "BillingAddress": null,
    "BankAddress": null,
    "Articles": null,
    "Status": {
      "ID": null,
      "Info": null,
      "Reasons": [
        {
          "Code": 118,
          "Info": "Amount invalid"
        }
      ]
    }
  }
}