---
title: "Register Sub Account"
method: POST
path: "/sub-account/v2.0/register"
tags: ["Account Management"]
---

# Register Sub Account

`POST /sub-account/v2.0/register`

Creates a new sub-account for each party that will receive payments on your platform.

Once created, the sub-account receives:
- A unique **Profile ID**
- One or more **Account Numbers** (IDR, Pending IDR, Points)

A webhook notification is sent to your callback URL when registration is complete (see Webhook: Register Sub Account below).

## Headers

- `X-PARTNER-ID` string, required
- `X-TIMESTAMP` string, date-time, required
- `X-SIGNATURE` string, required
- `X-EXTERNAL-ID` string, required

## Request body

- object
  - `partnerReferenceNo` string, required — Your merchant-assigned reference number
  - `parentProfileId` string — Parent Profile ID for hierarchical accounts
  - `referralCode` string — Referral code. DOKU auto-generates if omitted
  - `type` string, required — Sub-account type. Use DEFAULT for standard sub-accounts.
  - `email` string, email, required — Email address of the account holder. Email address of the account holder.
  - `name` string, required — Name of the account holder
  - `phoneNo` string — Phone number of the account holder (e.g., 081234567890)
  - `countryCode` string — ISO 3166-1 alpha-2 country code (e.g., ID for Indonesia)

## Response `200`

Sub-account registered successfully

- object
  - `responseCode` string
  - `responseMessage` string
  - `parentProfileId` string
  - `profileId` string — Newly created Profile ID. Use this to reference the sub-account in future API calls (e.g., Balance Inquiries).
  - `accounts` AccountInfo[] — List of accounts created for this sub-account. Each sub-account can have up to 3 account types: DOKU_MERCHANT_IDR (withdrawable), DOKU_PENDING_IDR (held), DOKU_MERCHANT_POINT (non-cash).
    - `type` string — Account type: DOKU_MERCHANT_IDR (withdrawable IDR), DOKU_PENDING_IDR (held/reserved), DOKU_MERCHANT_POINT (non-cash points)
    - `currency` string — ISO 4217 currency code (IDR) or POINT for non-cash accounts
    - `accountNo` string — Unique account number assigned by DOKU. Use this in transaction APIs (transfers, debits, balance inquiries).

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `409` — Duplicate partnerReferenceNo

---

[API](https://skmtc.net/doku/apis/direct-debit-core-system-notify-binding-to-merchant-emoney-o.md) · [All operations](https://skmtc.net/doku/apis/direct-debit-core-system-notify-binding-to-merchant-emoney-o/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/doku/direct-debit-core-system-notify-binding-to-merchant-emoney-o/revisions/7887174f57bc/schema)
