API Reference (NEW)
ID - Indonesia
  • ID - Indonesia
  • GL - Global
DashboardProduct Docs
Resources
  • Github
  • Demo Site
  • Simulator
DashboardProduct Docs
Resources
  • Github
  • Demo Site
  • Simulator
ID - Indonesia
  • ID - Indonesia
  • GL - Global
  1. Getting Started
  • Introduction
  • Getting Started
    • Create Account
    • Authentication & API Keys
    • Make your first API call
    • Postman Collection
  • Checkout API
    • Build a Checkout Page
      • Checkout Page
      • Initiate Payment
  • Direct API
    • Cards
      • Payment Form
        • Step 1 - Generate Payment Page
      • Host-to-host Payment
    • Bank Transfer
      • BCA Virtual Account
        • DOKU Generate Payment Code
          • Step 1 - Get Token
          • Step 2 - Create VA (DGPC)
          • Additional - Payment Notification
          • Additional - Delete Payment Code
          • Additional - Update Payment Code
        • Merchant Generate Payment Code
          • Step 1 - Get Token
          • Step 2 - Create VA (MGPC)
          • Additional - Payment Notification
          • Additional - Delete Payment Code
          • Additional - Update Payment Code
        • Direct Inquiry
          • Inquiry Payment
          • Additional - Payment Notification
          • Additional - Delete Payment Code
          • Additional - Update Payment Code
      • BNC Virtual Account
        • Merchant Generated Payment Code
          • Step 2 - Create VA (DGPC)
        • DOKU Generated Payment Code
          • Step 1 - Get Token
          • Step 2 - Create VA (DGPC)
        • Direct Inquiry
          • Step 1 - Get Token
          • Step 2 - Create VA (DGPC)
      • BNI Virtual Account
        • Merchant Generated Payment Code
          • Step 1 - Get Token
          • Step 2 - Create VA (DGPC)
        • DOKU Generated Payment Code
          • Step 1 - Get Token
          • Step 2 - Create VA (DGPC)
        • Direct Inquiry
          • Step 1 - Get Token
          • Step 2 - Create VA (DGPC)
      • BRI Virtual Account
        • Step 1 - Init KJUR
        • Step 2 - Get Token
        • Step 3 - Create VA (DGPC)
      • BSI Virtual Account
        • Step 1 - Init KJUR
        • Step 2 - Get Token
        • Step 3 - Create VA (DGPC)
      • BTN Virtual Account
        • Step 1 - Init KJUR
        • Step 2 - Get Token
        • Step 3 - Create VA (DGPC)
      • DANAMON Virtual Account
        • Step 1 - Init KJUR
        • Step 2 - Get Token
        • Step 3 - Create VA (DGPC)
      • MANDIRI Virtual Account
        • Merchant Generated Payment Code
          • Step 1 - Get Token
          • Step 2 - Create VA (DGPC)
        • DOKU Generated Payment Code
        • Direct Inquiry
      • MAYBANK Virtual Account
        • Step 1 - Init KJUR
        • Step 2 - Get Token
        • Step 3 - Create VA (DGPC)
      • PERMATA Virtual Account
        • Step 1 - Init KJUR
        • Step 2 - Get Token
        • Step 3 - Create VA (DGPC)
      • SINARMAS Virtual Account
        • Step 1 - Init KJUR
        • Step 2 - Get Token
        • Step 3 - Create VA (DGPC)
      • CIMB SNAP Virtual Account
        • Step 1 - Init KJUR
        • Step 2 - Get Token
        • Step 3 - Create VA (DGPC)
    • Convenience Store
      • Alfa Group
        • Alfa - Generate Payment Code
      • Indomaret
        • Indomaret - Generate Payment Code
    • e-Wallet
      • OVO
        • One Time Payment
          • OVO - Payment
          • OVO - Void
        • Account Binding
          • Step 1 - Account Binding
          • Step 2 - Balance Inquiry
          • Step 3 - Payment
          • Additional - Refund
          • Additional - Account Unbinding
      • Shopee Pay
        • Shopee Pay - Create Order
    • Direct Debit
      • BRI Direct Debit
        • Register Card - Create Token
        • Register Card - Validate OTP
        • Register Card - Resend OTP
        • Get Card List
        • Payment - Create Payment
        • Payment - Validate OTP
        • Payment - Resend OTP
        • Payment - Create Recurring Payment
        • Delete Card
      • CIMB Snap Direct Debit
        • Get Token B2B
        • Account Binding
        • Get Token B2B2C
        • Payment
        • Verify OTP Payment
        • Refund
        • Account Unbinding
        • Verify OTP Unbinding
      • ALLO Snap Direct Debit
        • Step 1 - Account Binding
        • Step 2 - Balance Inquiry
        • Step 3 - Payment
        • Additional - Refund
        • Additional - Account Unbinding
      • BRI Snap Direct Debit
        • Get Token B2B
        • Card Binding
        • Verify OTP Binding
        • Get Token B2B2C
        • Payment
        • Verify OTP Payment
        • Refund
        • Card Unbinding
      • Mandiri Snap Direct Debit
        • Get Token B2B
        • Card Binding
        • Request OTP Binding
        • Verify OTP Binding
        • Get Token B2B2C
        • Payment
        • Request OTP Payment
        • Verify OTP Payment
        • Cancel
        • Card Unbinding
      • Dana Snap Direct Debit
        • Get Token B2B
        • Payment
        • Refund
      • ShopeePay Snap Direct Debit
        • Get Token B2B
        • Payment
        • Refund
    • PayLater
      • Generate Order
      • Cancellation
      • Refund
    • Kartu Kredit Indonesia
      • Get Token B2B
      • Binding Only
      • Payment AFP with Binding
      • Payment AFP
      • Payment with token
      • Payment without AFP
      • Refund
      • Unbinding
    • Online Refund
      POST
  • Payout API
  • Check Status API
    • Payment
      GET
  • Partner API
  • Biller API
  • Wallet Service API
  • Webhooks
    • Sub Account API
      • Money In
        • Accept Payment
      • Money Out
      • Balance
  • Use Case Guides
  • Error Handling
    • Error Codes Glossary
  • FAQ / Troubleshooting
  • Change Log
    • ID - Indonesia Version
  • Archive
    • Get Token B2B
    • Get Token B2B2C
    • Step 1 - Account Binding
    • Step 2 - Balance Inquiry
    • Step 3 - Payment
    • Additional - Refund
    • Additional - Account Unbinding
    • Get Token B2B
    • Get Token B2B2C
    • Account Binding
    • Balance Inquiry
    • Payment
    • Refund
    • Account Unbinding
  1. Getting Started

Make your first API call

Overview#

This example helps you generate a hosted payment page using DOKU’s Checkout API, so your customer can pay via Virtual Account (VA) or other methods.
No complexity. Just follow these 3 steps. Are you ready? let's start.
What You Need Before Starting
✅ Your Client ID
✅ Your Secret Key
✅ A tool like Postman or cURL
No OAuth token needed — this API uses HMAC-SHA256 Signature in the headers to protect each request.

Use Case#

Accepting a Payment with Checkout Page (Virtual Account)
You want to send an invoice of Rp10.000 to a customer, and let them pay via VA or QRIS on a secure DOKU page.

Step 1: Prepare the Payload#

Step 2: Generate Signature Header#

To make the request secure, you must generate a Signature header like this:
Convert the JSON body to string (no spaces)
Use secret_key as secret
Hash with HMAC-SHA256
Send the hex digest result

Example code (Node.js):

Step 3: Send the Request#

On success, you’ll get this:

Final Step: Redirect Your Customer#

Send the customer to the checkout_url.
They’ll see a secure page where they can pay via:
Virtual Account (BCA, BNI, Mandiri)
QRIS
e-Wallets (OVO, Dana, ShopeePay)
Cards
etc.
✅ Done!
You just created your first DOKU Checkout payment.
No tokens. No complexity. No problem.

What’s Next?#

1.
Setup your callback_url to get notified when payment is completed.
2.
Try other amounts and invoice numbers.
3.
Test different payment methods.
4.
Ready to go live? Just swap to Production credentials.
Modified at 2025-07-14 16:13:42
Previous
Authentication & API Keys
Next
Postman Collection
Built with