For the complete documentation index, see llms.txt. This page is also available as Markdown.

Supplement Virtual Account Material

Endpoint: POST /v2/gc/virtual-accounts/supplement

Description: Submit additional KYC material requested for a virtual account application, as indicated by the materialCode/materialInfoJson on the VA_SUPPLEMENT_REQUIRED webhook or the materialCode/materialInfoJson fields on Get Detail Virtual Account.

The material payload is a JSON string (materialInfo) whose actual required keys vary per virtual account, per the materialInfoJson you were told to supplement (see Get Detail Virtual Account and the Webhook page).

Request

Request Body Field Descriptions (JSON)

Field Name
Type
Required
Description

id

string

Yes

The virtual account's NeoX id, as returned by Create Virtual Account.

materialInfo

string

No

A JSON-encoded string containing the supplementary material key/value pairs. Parsed and validated against the required fields declared in this VA's own materialInfoJson, unless draft=true.

materialId

string

No

Identifier of a specific material submission, if resubmitting/referencing a prior one.

requestId

string

No

Merchant-generated request ID for this supplement submission.

draft

boolean

No

If true, skips required-field validation and saves the submission with status DRAFT instead of submitting it for review.

Commonly-seen materialInfo keys

The exact set of required keys is defined per-VA by its own materialInfoJson (returned on creation / on Get Detail) — there is no fixed global schema. The following keys are known to appear (from the Merchant Portal's field catalog) and are documented here as a reference, not an exhaustive or guaranteed list:

Key
Type / Enum

enterpriseSubjectType

MAINLAND_CHINA_JOINT_VENTURE | MAINLAND_CHINA_INDIVIDUAL | MAINLAND_CHINA_ENTERPRISE | HONGKONG_CHINA | OVERSEAS_COUNTRIES

listed, stateOwnedEnterprised, foreignOwnedEnterprised

boolean-as-string: '1' (yes) / '0' (no)

independentWebsiteMonthlyTurnover

TURNOVER_10000 | TURNOVER_50000 | TURNOVER_100000 | TURNOVER_MAX

independentWebsiteSellCount

COUNT_20 | COUNT_50 | COUNT_MAX

independentWebsitePayInterface

USA_LOCAL_TRANSFER | PAYPAL | OTHER

independentWebsitePayType

CREDIT_CARD | DEBIT_CARD | PAYPAL | OTHER

independentWebsiteSetUpType

INDEPENDENT_DEVELOPMENT | SIGN_IN | PLATFORM_CONSTRUCTION_STATION | OTHER

independentWebsitePayInterfaceOther

free text — required only when independentWebsitePayInterface=OTHER

independentWebsiteSetUpTypeOther

free text — required only when independentWebsiteSetUpType=OTHER

independentWebsiteSetUpDate

date — cannot be a future date (UI-enforced)

platformOrApplicationAccountRegisterName

free text, 1–60 chars, English only (seen in a real M003 material request — see Webhook)

platformOrApplicationUrl

URL, 1–200 chars, must start with http:// or https://

Request sample

Real captured example (material code M003):

Response

Response Field Descriptions

Field Name
Type
Description

code

number

Response code.

data

object

Material submission result.

message

string

Response message.

neoResponseId

string

Unique NeoX response identifier.

data object fields:

Field Name
Type
Description

id

string

The virtual account's NeoX id.

requestId

string

Echoes the requestId from the request, if provided.

status

string

Status after this submission. Real captured example shows APPROVED once the material is reviewed and accepted — see Get Detail Virtual Account's supplementData for the full per-submission status lifecycle (submittedAt → review → approvedAt).

Response sample

Notes

  • Requires Bearer token in the Authorization header.

  • The Accept-Language header can be used to specify the response language (Support: "vi", "en").

  • Call this endpoint when a VA_SUPPLEMENT_REQUIRED webhook is received, or when Get Detail Virtual Account shows a non-empty materialCode/materialInfoJson.

  • materialInfo must be a JSON string (not a raw JSON object) whose keys match what materialInfoJson asked for.

  • Set draft=true to save progress without submitting for review (skips required-field validation).

  • The review outcome is delivered via the VA_MATERIAL_SUPPLEMENT webhook and reflected in supplementData on Get Detail Virtual Account. There is no separate "get supplement material status" endpoint — see the notice on that page.

Last updated

Was this helpful?