Skip to main content
POST
Creates a KYB record with status 1 (Pending). The record id is generated by Holdstation Pay and returned as id — do not send one. For subject_type = 1 a partner holds at most one record. For subject_type = 2 the same rule applies per reference_id. While a record is Pending or Approved, another POST for that subject fails with 409 Conflict. Once a record is Rejected, POST again to replace it — the status resets to Pending, the record keeps its original id, and the files attached to the rejected submission are deleted. There is no update endpoint. See the Partner Business KYB guide for the lifecycle, the Field Reference for every field, Submission Rules for the cross-field checks, and Submitting Documents for file rules.

Authentication

string
required
Your partner app key.
string
required
Base64-encoded Ed25519 signature of the sign data.
string
required
Unix timestamp (seconds) of the request. Must be within 60 seconds of server time.

Body Parameters

integer
required
1 = partner (self), 2 = sub-merchant.
string
Your own id for the subject, e.g. your merchant id. Max 128 bytes, stored trimmed. One subject_type = 2 record per reference_id; generated by Holdstation Pay and returned if omitted. Not used for subject_type = 1.
Company name exactly as on the incorporation document.
string
required
Business registration / incorporation number.
string
required
ISO 3166-1 alpha-2 preferred. Alpha-3 (VNM) and full names (Vietnam) are accepted and normalized to alpha-2.
string
required
Incorporation date in ISO YYYY-MM-DD format.
string
required
Registered company address.
string
Business email.
string
Business phone number.
string
Business website.
string
required
What the company does: industry, products, services, customers, business model.
string[]
required
Where the business operates and serves customers. ISO 3166-1 alpha-2 preferred, but values are not format-checked — region labels such as EU or SEA are accepted.
object[]
required
Legal representative and directors. Exactly one person must have role = 1. Each entry requires role (1 = Legal representative, 2 = Director), name, date_of_birth, address, id_number, id_type (1 = Citizen ID, 2 = Passport), sex (1 = Male, 2 = Female, 3 = Other), nationality, and exactly one documents entry of type 10 or 11. email, phone, date_of_issue, and date_of_expiry are optional.
object[]
required
Company documents, types 19 only. Must include type 1 and type 3. Each entry requires type and files (max 10 per document); document_number is required for type 4, and date_of_issue and date_of_expiry are optional.

Document Types

Key Rules

  • Exactly one person must have role = 1, or the submission is rejected with MISSING_LEGAL_REPRESENTATIVE.
  • A person whose nationality differs from incorporation_country must use id_type: 2 with a type 10 document.
  • Each person carries exactly one identity document; multiple files (ID front and back) go inside that one document.
  • Files are sent inline as base64 in data — a path or URL is rejected with FILE_CORRUPT. Each file is capped at 10 MB decoded, the body at 40 MB, and a submission at 30 documents and 20 persons.