Doku.com Payment Integration

This integration shows you how connect store to global payment systems. We built this integration for Oceaninside.com, a Bali-based jewelry store selling handmade silver pieces.

International Payment Integration

Connecting your store to international payment systems lets you accept payments in multiple currencies without restrictions. We built this integration for Oceaninside.com, a Bali-based jewelry store selling handmade silver pieces.

This setup works for any business that needs to process payments in different currencies.

What We Built

The integration connects InSales directly to Doku.com's payment gateway. When customers check out, they're sent to a secure Doku payment page. After payment, the order status updates automatically in InSales.

No manual processing required. The system handles everything from payment collection to order confirmation.

Key Features

Automatic Payment Pages

Each order gets its own payment page on Doku. This reduces errors and makes checkout simpler for customers. The page includes order details, amount, and available payment methods.

Complete InSales Setup

We installed and configured the app so InSales talks to Doku.com properly. Orders sync automatically. Payment confirmations update order status in real time.

Payment Security

We validate all responses from Doku to prevent fake transactions. The system uses signature verification to ensure payment data hasn't been tampered with.

Flexible Hosting

You can use our hosting or install the app on your own server. This matters if you have specific infrastructure requirements or security policies.

How It Works

1

Customer Places Order

Customer completes checkout in your InSales store and clicks the payment button.

2

Order Sent to Doku

InSales sends order details to Doku.com via API. This includes invoice number, amount, currency, and callback URL.

3

Payment Page Opens

Customer is redirected to Doku's secure payment page. They choose a payment method and enter their details.

4

Payment Processed

Doku processes the payment and sends a notification back to InSales with the transaction status.

5

Order Status Updates

InSales marks the order as paid. Customer gets confirmation. Store admin sees the payment in the dashboard.

Technical Implementation

API Integration

We use Doku's REST API to create payment sessions. Here's what gets sent:

{
  "order": {
    "amount": 80000,
    "invoice_number": "INV-12345",
    "currency": "IDR",
    "callback_url": "https://yourstore.com/payment/callback"
  },
  "payment": {
    "payment_due_date": 60
  }
}
        

Payment Callback

After payment, Doku sends a POST request to your callback URL with these parameters:

Parameter Description
TXNDATE Transaction timestamp (yyyyMMddHHmmss)
TXNSTATUS S for success, F for failed
ACQUIRER Payment processor name
AMOUNT Transaction amount

Security Verification

All callbacks from Doku include a signature. We validate this signature using your secret key to confirm the request is legitimate and hasn't been modified.

Testing and Validation

We tested every payment scenario:

  • Successful payments with different payment methods
  • Failed payments and timeout handling
  • Callback processing and order status updates
  • Notification delivery to customers
  • Edge cases like duplicate payments and network errors

All tests ran in Doku's sandbox environment before going live. This ensures no real money is at risk during testing.

Recurring Payments Support

If you sell subscription products like regular deliveries of food, books, or office supplies we have a separate solution.

Our PayOnline app for InSales handles recurring payments. It charges customers automatically on schedule without requiring manual processing each time.

Why This Integration Works

International payment processing doesn't have to be complicated. This integration shows you can connect InSales to global payment systems without sacrificing speed or usability.

The result: you accept payments in the currencies you need, automate the entire process, and give customers a smooth checkout experience.