Integration Steps

Steps Overview

  • Step 1: Create refund
  • Step 2: Handling Create Refund API Response

Step 1: Create Refund

Use the following endpoint to submit your refund request

Endpoint


The following are the sample request body for creating a refund:

curl -X POST \
  https://api.durianpay.id/v1/refunds \
  -H 'authorization: [Base64({Your_Server_Key}:)]' \
  -H 'content-type: application/json' \
  -d '{
    "ref_id": "abc",
    "payment_id": "pay_IsL5nOCW4M2790",
    "amount": "10000",
    "use_refund_link": "true"
    "notes": "rejected product"
}'

import http.client
import json

conn = http.client.HTTPSConnection("api.durianpay.id")

payload = json.dumps(
    {
        "ref_id": "abc",
        "payment_id": "pay_IsL5nOCW4M2790",
        "amount": "10000",
        "use_refund_link": "true",
        "notes": "rejected product",
    }
)

headers = {
    "content-type": "application/json",
    "authorization": "[Base64({Your_Server_Key}:)]",
}

conn.request("POST", "/v1/refunds", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var request = require('request');

var options = {
  method: 'POST',
  url: 'https://api.durianpay.id/v1/refunds',
  headers: {
    authorization: '[Base64({Your_Server_Key}:)]',
    'content-type': 'application/json'
  },

  body: JSON.stringify({
    ref_id: 'abc',
    payment_id: 'pay_IsL5nOCW4M2790',
    amount: '10000',
    use_refund_link: 'true',
    notes: 'rejected product'
  })
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});



Step 2: Handle create refund API Process

📘

Refund process happened synchronously. Hence, you'll be able to identify the full status of the refund from the Create Refund API's Response

The following are the API Response example of a refund creation:

{
  "data": {
    "id": "rfn_qfrsL0tlnT0308",
    "ref_id": "reference_1",
    "amount": "20000.00",
    "refund_type": "partial",
    "status": "completed",
    "created_at": "2021-07-20T10:43:42.201587Z",
    "updated_at": "2021-07-20T10:43:42.401256Z",
    "approved_at": "2021-07-20T10:43:42.401256Z",
    "source": "api",
    "customer_name": "joe",
    "customer_email": "[email protected]",
    "customer_phone": ""
  }
}


Based on the API Response, there are some parameters of the API Response which you need to handle. Mainly, statuswhich signifies the status of the refund. If the status is completed, then the transaction has been successfully refunded and your customer should already be able to see that the funds is already refunded to their account.