Akulaku

DOKU has partenered with various Paylater Providers and one of them is Akulaku to provide Buy Now Pay Later. Learn more about how DOKU can help you integrate with Akulaku here.


Integration steps

Here is the overview of how to integrate with Akulaku:

  1. Obtain payment.url by generating order

  2. Display Akulaku payment page to customer

  3. Acknowledge payment result


1. Obtain payment.url by generating order

To generate order, you will need to hit this API through your Backend:

API Request

Here is the sample of request header to generate order:

Client-Id: MCH-0001-10791114622547
Request-Id: baec7d95-f30a-4b78-b711-6ebe0ccdf50b
Request-Timestamp: 2021-07-07T08:45:42Z
Signature: HMACSHA256=vl9DBTX5KhEiXmnpOD0TSm8PYQknuHPdyHSTSc3W6Ps=

Request Header Explanation

Here is the sample request body to generate order:

{
    "order": {
        "invoice_number": "INV-20210707-0001",
        "amount": 90000,
        "line_items": [
            {
                "name": "T-Shirt Red",
                "price": 30000,
                "quantity": 2,
                "sku": "1002",
                "category": "Shirt"
            },
            {
                "name": "Polo Navy",
                "price": 30000,
                "quantity": 1,
                "sku": "1001",
                "category": "Shirt"
            }
        ],
        "callback_url": "https://merchant.com/return-url"
    },
    "payment": {
        "merchant_unique_reference": "MUR-20210707-0001"
    },
    "customer": {
        "id": "CUST-0001",
        "name": "Anton Budiman",
        "phone": "6285694566147",
        "address": "Menara Mulia Lantai 8",
        "city": "Jakarta Selatan",
        "state": "DKI Jakarta",
        "postcode": "120129"
    }
}

Request Body Explanation

API Response

After hitting the above API request, DOKU will give the response.

Client-Id: MCH-0001-10791114622547
Request-Id: baec7d95-f30a-4b78-b711-6ebe0ccdf50b
Response-Timestamp: 2021-07-07T08:45:42Z
Signature: HMACSHA256=9UPUFzOqJc47aJzD9ESOTcWg6TMsg3mqSP+DnUO8ENE=

Response Header Explanation

Here is the sample of response body:

{
    "order": {
        "invoice_number": "INV-20210707-0001",
        "amount": 90000
    },
    "payment": {
        "merchant_unique_reference": "MUR-20210707-0001",
        "url": "https://test-mall.akulaku.com/v2/openPay.html?appId=15006801&refNo=MCH%2D0022%2D2599139268305MUR%2D20210712%2D0010&sign=Gd4XpzDEaxse6aoMQzpFNIGCSednnBT5X2iF5P%2DkLswSJGFCndyCER8IfeWI7n3t4XrwNAEevO2x2wuwkN5sjw",
        "status": "PENDING",
        "identifier": [
            {
                "name": "ORDER_ID",
                "value": "1000035148"
            },
            {
                "name": "AKULAKU_UNIQUE_REFERENCE",
                "value": "MCH-0001-10791114622547MUR-20210707-0001"
            }
        ]
    }
}

Response Body Explanation

2. Display Akulaku payment page to customer

Once you have the payment.url, you can now display the payment page by redirecting your customer to the Akulaku payment page.

After the customer completed the payment, they will be redirected to the defined order.callback_url that you set on the API request.


3. Acknowledge payment result

After the payment is being made by your customer, DOKU will send HTTP Notification to your defined Notification URL. Learn how to handle the notification from DOKU:


Additional features

We provide various additional features to suited your needs. Learn more here.

Cancel Order

If you wish to cancel your order request, you can do that by hitting the API with POST method:

API Request

Here is the sample of request header to Cancel Order:

Client-Id: MCH-0001-10791114622547
Request-Id: 2dc5985e-adaa-4f82-b126-b09e9006da14
Request-Timestamp: 2020-08-11T08:45:42Z
Signature: HMACSHA256=vl9DBTX5KhEiXmnpOD0TSm8PYQknuHPdyHSTSc3W6Ps=

Request Header Explanation

Here is the sample of request body to Cancel Order:

{
    "order": {
        "invoice_number": "MINV20201231468"
    },
    "payment": {
        "merchant_unique_reference": "ABC0001",
        "identifier": [
        {
             "name": "AKULAKU_UNIQUE_REFERENCE",
             "value": "MCH-12345678ABC0001"
        },
        {
             "name": "ORDER_ID",
             "value": "893102"
        }
        ]
    }
}

Request Body Explanation

API Response

After hitting the above API request, DOKU will give the response.

Client-Id: MCH-0001-10791114622547
Request-Id: 09e0defe-a071-45b3-9feb-ac134374628c
Response-Timestamp: 2020-08-11T08:45:42Z
Signature: HMACSHA256=9UPUFzOqJc47aJzD9ESOTcWg6TMsg3mqSP+DnUO8ENE=

Response Header Explanation

Here is the sample of response body:

{
    "order": {
        "invoice_number": "MINV20201231468",
        "amount": 100000
    },
    "payment": {
        "status": "CANCELLED",
        "date": "2020-08-11T08:50:02Z",
        "merchant_unique_reference": "ABC0001",
        "identifier": [
        {
             "name": "AKULAKU_UNIQUE_REFERENCE",
             "value": "MCH-12345678ABC0001"
        },
        {
             "name": "ORDER_ID",
             "value": "893102"
        }
        ]
    },
    "cancel": {
        "status": "SUCCESS",
        "date": "2020-08-11T08:50:02Z"
    },
    "error":{
        "message": "Order Not Found"
    }
}

Response Body Explanation

Refund Order

You can request refund using this API.

To request a refund, you will need to hit this API through your backend:

API Request

Here is the sample of request header to generate payment URL:

Client-Id: MCH-0001-10791114622547
Request-Id: 6cc9f8b1-d83d-4c24-b853-a3223f43a744
Request-Timestamp: 2020-08-12T09:45:42Z
Signature: HMACSHA256=9UPUFzOqJc47aJzD9ESOTcWg6TMsg3mqSP+DnUO8ENE=

Request Header Explanation

Here is the sample request body to request a refund:

{
   "order":{
      "invoice_number":"invoice-00000101123"
   },
   "payment":{
      "merchant_unique_reference":"REFUND-ABC-0001045",
      "identifier":[
         {
                "name": "ORDER_ID",
                "value": "1000043205"
            },
            {
                "name": "AKULAKU_UNIQUE_REFERENCE",
                "value": "MCH-0001-10791114622547REFUND-ABC-0001045"
            }
      ]
   },
   "refund":{
      "merchant_unique_reference":"XYZ-006456"
   }
}

Request Body Explanation

API Response

After hitting the above API request, DOKU will give the response.

Here is the sample response header:

Client-Id: MCH-0001-10791114622547
Request-Id: 6cc9f8b1-d83d-4c24-b853-a3223f43a744
Response-Timestamp: 2020-08-11T08:45:42Z
Signature: HMACSHA256=1jap2tpgvWt83tG4J7IhEwUrwmMt71OaIk0oL0e6sPM=

Response Header Explanation

Here is the sample of response body:

{
    "order": {
        "invoice_number": "invoice-00000101123",
        "amount": 110000
    },
    "payment": {
        "date": "2021-12-27T05:47:39Z",
        "status": "REFUNDED",
        "merchant_unique_reference": "REFUND-ABC-0001045",
        "identifier": [
            {
                "name": "AKULAKU_UNIQUE_REFERENCE",
                "value": "MCH-0001-10791114622547REFUND-ABC-0001045"
            },
            {
                "name": "ORDER_ID",
                "value": "1000043205"
            }
        ]
    },
    "refund": {
        "date": "2021-12-27T05:57:06Z",
        "status": "SUCCESS",
        "merchant_unique_reference": "XYZ-006456",
        "identifier": [
            {
                "name": "AKULAKU_UNIQUE_REFERENCE",
                "value": "REF-MCH-0001-10791114622547XYZ-006456"
            }
        ]
    }
}

Response Body Explanation

Refund Type

Currently, Akulaku only accepts refund requests with Full Amount type.


Split Settlement

If you are a platform or a marketplace, you can use this feature to settle the funds to your sellers or partners programmatically, save many operational efforts.

Last updated