Skip to main content
POST
/
api
/
v3
/
verifications
/
kyb
/
idn
/
comprehensive
IDN KYB Comprehensive
curl --request POST \
  --url https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/kyb/idn/comprehensive \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "companyName": "<string>",
  "country": "<string>",
  "registrationNumber": "<string>",
  "trustFlowId": 0,
  "trustValidationId": "{your_trust_validation_id}"
}
'
{
  "success": true,
  "message": "IDN KYB Comprehensive Request Received",
  "data": {
    "companyFound": true
  },
  "verificationStatus": "IN_PROGRESS",
  "verificationStatusCode": 5,
  "trustFlowId": 189,
  "trustValidationId": "{your_trust_validation_id}",
  "metadata": null,
  "createdAt": "2026-06-05 06:31:31+0000"
}
Run a comprehensive Know Your Business verification on an Indonesian company by name. This verification uses a two-step asynchronous flow. Initial API request usually take up to 45 seconds to determine whether the company exists, and up to 3 minutes to return the full results due to the slowness of the Indonesian AHU registry. If the API finds a matching company, it proceeds to gather the company information and returns the results to your webhook via resultNotificationURL. If no match is found, the webhook will be sent with no company detail results (empty data.result). The initial API response acknowledges the request with verificationStatus: IN_PROGRESS if the company is found, or REJECTED if no matching company exists. When the company is found, the final result is delivered to the resultNotificationURL you supply. The webhook envelope carries type: "verification.idn_kyb_comprehensive" and a verificationStatus of VERIFIED (records found) or REJECTED (no records matched the supplied name).

Data source

Company information is retrieved from Administrasi Hukum Umum (AHU).

Webhook callback

When the search-and-detail flow completes, IDmeta sends a POST to your resultNotificationURL with the payload below.
{
  "type": "verification.idn_kyb_comprehensive",
  "success": true,
  "message": "IDN KYB Comprehensive Completed",
  "data": {
    "shareholders": {
      "total": 2,
      "data": {
        "individual": [
          {
            "shareholderNameOG": "Example Shareholder One",
            "isTranslated": false,
            "shareholderNameEN": "Example Shareholder One",
            "entityType": "COMPANY",
            "percentageOwned": "50.00%",
            "capital": "17910171500",
            "currency": "IDR",
            "shareholderID": null,
            "shareholderLocation": null,
            "shareType": null,
            "numberOfShares": null,
            "dob": null
          },
          {
            "shareholderNameOG": "Example Shareholder Two",
            "isTranslated": false,
            "shareholderNameEN": "Example Shareholder Two",
            "entityType": "COMPANY",
            "percentageOwned": "50.00%",
            "capital": "17712500",
            "currency": "IDR",
            "shareholderID": null,
            "shareholderLocation": null,
            "shareType": null,
            "numberOfShares": null,
            "dob": null
          }
        ]
      }
    },
    "companyInformation": {
      "total": 1,
      "data": [
        {
          "name": {
            "companyName": "Example Company Indonesia",
            "isTranslated": false,
            "companyNameOG": null
          },
          "companyStatus": "TERTUTUP",
          "entityType": "PMA",
          "industry": [
            {
              "industryCode": "47919",
              "industryName": "Perdagangan Eceran Melalui Media Untuk Berbagai Macam Barang Lainnya"
            },
            {
              "industryCode": "47920",
              "industryName": "Perdagangan Eceran Atas Dasar Balas Jasa (Fee) Atau Kontrak"
            },
            {
              "industryCode": "62019",
              "industryName": "Aktivitas Pemrograman Komputer Lainnya"
            },
            {
              "industryCode": "66413",
              "industryName": "Penyelenggara Penunjang Sistem Pembayaran"
            },
            {
              "industryCode": "77322",
              "industryName": "Aktivitas Penyewaan dan Sewa Guna Tanpa Hak Opsi Alat Alat Bantu Teknologi Digital"
            }
          ],
          "regAddress": {
            "full": "Example Commercial Area, Jl. Contoh Raya RT: 000 RW: 000, Jakarta Selatan"
          },
          "capital": [
            {
              "capitalAmount": "17927884000",
              "currency": "IDR",
              "numberOfShares": "25304",
              "paidUpCapital": "17927884000"
            }
          ],
          "companyIDOther1": null,
          "companyID": null,
          "incorpDate": null
        }
      ]
    },
    "majorPerson": {
      "total": 5,
      "data": [
        {
          "enName": "Example Person One",
          "ogName": "Example Person One",
          "isTranslated": false,
          "role": "DIREKTUR",
          "address": null,
          "identity": null
        },
        {
          "enName": "Example Person Two",
          "ogName": "Example Person Two",
          "isTranslated": false,
          "role": "KOMISARIS",
          "address": "Jl. Contoh Raya No. 1, Jakarta Selatan",
          "identity": null
        }
      ]
    }
  },
  "verificationStatus": "VERIFIED",
  "verificationStatusCode": 3,
  "trustFlowId": 189,
"trustValidationId": "{your_trust_validation_id}",
  "metadata": null
}

Authorizations

Authorization
string
header
required

Use Bearer {your_api_token} in the Authorization header.

Headers

Accept
string
default:application/json
Content-Type
string
default:application/json

Body

application/json
companyName
string
required

Name of the company to be verified.

country
string
required

Country where the company is registered.

registrationNumber
string
required

Official company registration number.

trustFlowId
integer
required

Trust flow identifier used to categorize or group requests for tracking or reporting.

trustValidationId
string
required

Trust validation identifier for the verification request.

Response

200 - application/json

Verification accepted (async). Final result is delivered via webhook.