Business KYC Requirements
This page is the field-level reference for every attestation that may appear on a business compliance review — both review-level attestations and the per-associated-person attestations uploaded against each UBO / control person. For the end-to-end flow (creating a review, uploading documents, creating associated persons, submitting, polling status) see the Business Compliance Review guide.
Each section below is one attestation. The header states whether the attestation is REQUIRED or CONDITIONALLY REQUIRED, the conditional sections lead with what triggers the requirement, and every section ends with a table describing each field — its JSON name, type, whether it is required or optional, and any input limits enforced by the API.
The
requiredAttestationsarray on the review reflects the same rules described here. If the API response and this guide ever disagree, trust the API.
Tier overview
Business reviews use two tiers: us_standard (USD-only payouts, reduced documentation) and full (full KYB with UBO ownership and proof-of-address documents). The tiers share an identical core; full adds two additional review-level document attestations and one additional per-associated-person attestation.
| Attestation | us_standard | full |
|---|---|---|
| Review-level | ||
businessIdentification | Required | Required |
businessTaxInfo | Required | Required |
businessAddress | Required | Required |
businessContactInfo | Required | Required |
businessDetails | Required | Required |
businessOperations | Required | Required |
businessFinancialInfo | Required | Required |
businessFormationDocuments | Required | Required |
businessAssociatedPersons | Required | Required |
businessUboOwnershipDocuments | Not Required | Required |
businessProofOfAddressDocuments | Not Required | Required |
businessFlowOfFundsDocument (conditional) | Conditionally Required | Conditionally Required |
| Per associated person | ||
associatedPersonPersonalInfo | Required | Required |
associatedPersonContactInfo | Required | Required |
associatedPersonResidentialAddress | Required | Required |
associatedPersonTaxInfo | Required | Required |
associatedPersonIdentityDocument | Required | Required |
associatedPersonProofOfAddress | Not Required | Required |
Review-level attestations
businessIdentification — REQUIRED
businessIdentification — REQUIREDLegal identity of the business.
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "businessIdentification". |
businessName | string | Yes | 1–500 characters. The legal name on file with the business's registration authority. |
registrationNumber | string | Optional | Max 100 characters. Business registration number. |
dbaName | string | Optional | Max 500 characters. Doing-Business-As / trade name. |
businessTaxInfo — REQUIRED
businessTaxInfo — REQUIREDBusiness tax identification number and type.
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "businessTaxInfo". |
taxIdentificationNumber | string | Yes | Max 100 characters. Validated against the country/type-specific format for the chosen taxIdentificationNumberType (e.g. EIN is XX-XXXXXXX). |
taxIdentificationNumberType | enum | Yes | One of the business-applicable BusinessTaxIdentificationNumberType values (e.g. EIN, CUIT, RFC, CNPJ, NIT). |
businessAddress — REQUIRED
businessAddress — REQUIREDRegistered (legal) address, with an optional separate operating address.
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "businessAddress". |
registeredAddress | object | Yes | See Address object. |
operatingAddressSameAsRegistration | boolean | Yes | true or false. When false, operatingAddress becomes required. |
operatingAddress | object | Conditional | Required when operatingAddressSameAsRegistration is false. See Address object. |
businessContactInfo — REQUIRED
businessContactInfo — REQUIREDBusiness phone number and email.
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "businessContactInfo". |
phoneNumber | string | Yes | E.164 format with country code (e.g. +12125551234). |
email | string | Yes | Valid email address. UTF-8 local parts are not accepted. |
businessDetails — REQUIRED
businessDetails — REQUIREDWebsite, legal structure, incorporation date, industry, free-text description, and intended use of Mural.
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "businessDetails". |
businessWebsite | string | Yes | Valid, safe URL (HTTPS recommended). Internal-network / private-IP URLs are rejected. |
legalStructure | enum | Yes | One of the LegalStructure values (e.g. CORPORATION, LLC, SOLE_PROPRIETORSHIP, PARTNERSHIP, NON_PROFIT). |
dateOfIncorporation | string | Yes | YYYY-MM-DD. Must be a valid ISO date. |
industry | enum | Yes | One of the Industry values (e.g. INFORMATION_AND_SOFTWARE, FINANCIAL_SERVICES, MANUFACTURING). |
businessDescription | string | Yes | 100–4000 characters. Must be at least 100 characters so reviewers can assess the nature of the business. |
intendedMuralUsage | string | Yes | 1–4000 characters. A free-text description of how the business intends to use Mural (e.g. "Vendor and supplier payments to Colombia"). |
businessOperations — REQUIRED
businessOperations — REQUIREDMoney-movement profile, geographic reach, and high-risk-activity flags.
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "businessOperations". |
transmittingCustomerFunds | boolean | Yes | true or false. When true, both customerFundsTransmissionDetails and the businessFlowOfFundsDocument attestation become required. |
customerFundsTransmissionDetails | string | Conditional | Required when transmittingCustomerFunds is true. 11–4000 characters. |
primaryTargetMarket | enum | Yes | One of the PrimaryTargetMarket values (e.g. COMMERCIAL, CONSUMER, GOVERNMENT, OTHER). |
primaryTargetMarketOtherDescription | string | Conditional | Required when primaryTargetMarket is OTHER. 3–500 characters. |
expectedCounterpartyCountries | array of string | Yes | 1–50 entries. Each entry is an ISO 3166-1 alpha-2 country code (e.g. ["CO", "MX"]). |
highRiskBusinessActivities | array of enum | Yes | 0–12 entries from the HighRiskBusinessActivities enum. Submit an empty array [] to attest the business is engaged in none of the listed activities. |
businessFinancialInfo — REQUIRED
businessFinancialInfo — REQUIREDPrimary income source, annual revenue band, and estimated monthly transaction volume.
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "businessFinancialInfo". |
primaryIncomeSourceCategory | enum | Yes | One of the PrimaryIncomeSource values (e.g. BUSINESS_REVENUE, INVESTMENT_INCOME, DONATIONS). |
primaryIncomeSourceDescription | string | Yes | 1–4000 characters. Free-text description of the primary income source. |
annualRevenue | enum | Yes | One of the AnnualRevenue ranges (e.g. UNDER_100K, BETWEEN_100K_AND_1M, BETWEEN_1M_AND_10M, OVER_10M). |
estimatedMonthlyVolume | number | Yes | Positive integer USD value. Minimum 1, maximum 100,000,000,000 ($100B). |
businessFormationDocuments — REQUIRED
businessFormationDocuments — REQUIREDOne or more uploaded formation document references (e.g. articles of incorporation). Upload each file via the Generate Upload URL endpoint first and reference the returned documentId here.
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "businessFormationDocuments". |
formationDocuments | array of object | Yes | 1–10 entries. Each entry has documentType (FormationDocumentType enum — e.g. ARTICLES_OF_INCORPORATION, OPERATING_AGREEMENT, BYLAWS) and documentId (UUID returned by the upload endpoint). |
businessUboOwnershipDocuments — REQUIRED (full only)
businessUboOwnershipDocuments — REQUIRED (full only)Required for the
fulltier only. Omit onus_standard.
One or more uploaded UBO ownership document references (e.g. shareholder registry, cap table).
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "businessUboOwnershipDocuments". |
uboOwnershipDocuments | array of object | Yes | 1–10 entries. Each entry has documentType (UboOwnershipDocumentType enum — e.g. SHAREHOLDER_REGISTRY, CAP_TABLE) and documentId (UUID returned by the upload endpoint). |
businessProofOfAddressDocuments — REQUIRED (full only)
businessProofOfAddressDocuments — REQUIRED (full only)Required for the
fulltier only. Omit onus_standard.
One or more uploaded business proof-of-address document references.
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "businessProofOfAddressDocuments". |
proofOfAddressDocuments | array of object | Yes | 1–10 entries. Each entry has documentType (BusinessProofOfAddressDocumentType enum — e.g. UTILITY_BILL, BANK_STATEMENT, LEASE_AGREEMENT) and documentId (UUID returned by the upload endpoint). |
businessFlowOfFundsDocument — CONDITIONALLY REQUIRED
businessFlowOfFundsDocument — CONDITIONALLY REQUIREDRequired when businessOperations.transmittingCustomerFunds is true. Businesses that hold or transmit customer funds must attach a flow-of-funds document describing how money moves through the business. For all other businesses this attestation may be omitted.
A single uploaded flow-of-funds document reference.
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "businessFlowOfFundsDocument". |
document | object | Yes | A single entry with documentType (FlowOfFundsDocumentType enum — e.g. FLOW_OF_FUNDS) and documentId (UUID returned by the upload endpoint). |
businessAssociatedPersons — REQUIRED
businessAssociatedPersons — REQUIREDLinks the review to the organization's previously-created associated persons (UBOs and the control person). Each ID must reference an existing associated person for the organization, and at least one referenced person must have the CONTROL_PERSON relationship.
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "businessAssociatedPersons". |
associatedPersonIds | array of string | Yes | 1–50 entries. Each entry is the UUID of an associated person created via the Create Associated Person endpoint. Duplicate IDs are rejected. |
Associated-person attestations
Uploaded against each associated person via the Upload Associated Person Attestations endpoint. Every associated person referenced from businessAssociatedPersons must have the full required set uploaded before the review can be submitted.
associatedPersonPersonalInfo — REQUIRED
associatedPersonPersonalInfo — REQUIRED| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "associatedPersonPersonalInfo". |
name | object | Yes | See Name object. |
birthDate | string | Yes | YYYY-MM-DD. Must be a valid ISO date and represent an adult (≥ 18 years). |
nationality | string | Yes | ISO 3166-1 alpha-2 country code (e.g. US). |
isPoliticallyExposed | boolean | Optional | When omitted, no PEP status is declared (treated as undisclosed, not false). |
jobTitle | string | Yes | 2–200 characters. Job title or role within the business. |
ownershipPercentage | number | Yes | 0–100, up to 2 decimal places. A BENEFICIAL_OWNER must hold a positive percentage; a CONTROL_PERSON who isn't also a UBO submits 0. |
associatedPersonContactInfo — REQUIRED
associatedPersonContactInfo — REQUIRED| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "associatedPersonContactInfo". |
email | string | Yes | Valid email address. UTF-8 local parts are not accepted. |
phoneNumber | string | Yes | E.164 format with country code (e.g. +14155551234). |
associatedPersonResidentialAddress — REQUIRED
associatedPersonResidentialAddress — REQUIREDThe country supplied here drives whether associatedPersonProofOfAddress becomes required for this person on full.
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "associatedPersonResidentialAddress". |
address | object | Yes | See Address object. |
associatedPersonTaxInfo — REQUIRED
associatedPersonTaxInfo — REQUIRED| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "associatedPersonTaxInfo". |
taxIdentificationNumber | string | Yes | Max 100 characters. Validated against the country/type-specific format for the chosen taxIdentificationNumberType. |
taxIdentificationNumberType | enum | Yes | One of the individual-applicable IndividualTaxIdentificationNumberType values (e.g. SSN, ITIN, CPF, CURP, RFC, CUIT, RUT). |
associatedPersonIdentityDocument — REQUIRED
associatedPersonIdentityDocument — REQUIREDGovernment-issued identity document for the associated person. Same discriminated-union shape as the individual review — see Government ID object.
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "associatedPersonIdentityDocument". |
governmentId | object (union) | Yes | Discriminated by inner type field. See Government ID object. |
associatedPersonProofOfAddress — CONDITIONALLY REQUIRED
associatedPersonProofOfAddress — CONDITIONALLY REQUIREDRequired only on the full tier. On us_standard this attestation may be omitted for every associated person.
One or more uploaded proof-of-address document references for this associated person.
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "associatedPersonProofOfAddress". |
proofOfAddressDocuments | array of object | Yes | 1–10 entries. Each entry has documentType (ProofOfAddressDocumentType enum — e.g. UTILITY_BILL, BANK_STATEMENT, GOVERNMENT_ISSUED_LETTER) and documentId (UUID returned by the upload endpoint). |
Shared objects
Name object
Used wherever a name field appears (on associatedPersonPersonalInfo).
| Field | Type | Required | Limits & format |
|---|---|---|---|
firstName | string | Yes | 1–100 characters. |
lastName | string | Yes | 1–100 characters. |
middleName | string | Optional | Max 100 characters. |
Address object
Used wherever a registeredAddress, operatingAddress, or address field appears.
| Field | Type | Required | Limits & format |
|---|---|---|---|
address1 | string | Yes | 1–200 characters. Primary street address, including building number and street name. |
address2 | string | Optional | Max 200 characters. Secondary line — apartment, suite, unit, floor, etc. |
country | string | Yes | ISO 3166-1 alpha-2 country code (e.g. US). |
subDivision | string | Yes | 1–100 characters. ISO 3166-2 subdivision code without the country prefix (e.g. NY for New York). |
city | string | Yes | 1–100 characters. |
postalCode | string | Yes | 1–20 characters. |
Government ID object
The governmentId field on associatedPersonIdentityDocument is a discriminated union over 28 document variants. Every variant shares the same base shape; only the ID-number field and the document-reference field(s) differ per variant.
Common shape across every variant:
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | The variant discriminator (e.g. "passport", "driversLicense", "nationalId", "stateId", "passportCard", "visa", ...). |
countryCode | string | Yes | ISO 3166-1 alpha-2 of the issuing authority (e.g. US). |
<variant>Number (e.g. passportNumber) | string | Yes | 4–50 characters. |
<variant>DocumentId or front/back document IDs | UUID(s) | Yes | Each is a documentId returned by the Generate Upload URL endpoint. Two-sided documents (driver's license, national ID, state ID, passport card, etc.) require distinct front and back IDs. |
Single-sided variants (one documentId field): passport, internalPassport, travelDocument, citizenshipCertificate, panCard, nbiClearance.
Double-sided variants (front + back documentId fields): driversLicense, nationalId, stateId, passportCard, permanentResidenceCard, visa, residencePermit, voterId, healthInsuranceCard, workPermit, consularId, foreignId, myNumberCard, longTermPass, ofwId, postalId, sssId, umid, municipalId, tribalId, keypassId.
For the complete per-variant schema (exact field names, country examples, etc.) see the AssociatedPersonIdentityDocumentAttestation entry in the API reference.