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 Compliance Reviews.

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 supporting-document attestations (businessFormationDocuments, businessUboOwnershipDocuments, businessProofOfAddressDocuments, businessFlowOfFundsDocument, businessSourceOfFundsDocuments, associatedPersonProofOfAddress and associatedPersonProofOfSignatoryAuthority) also accept an optional additionalInformation string, which the tables below leave out: a note to the reviewer about that upload, such as where the requested detail sits in a document, or what the document is called locally. It holds up to 200 characters and cannot be blank. Don't put sensitive identifiers in it.

The requiredAttestations array 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. On both tiers, EEA-registered businesses and associated persons who live in the EEA need extra per-person attestations.

AttestationUS_STANDARDFULL
Review-level
businessIdentificationRequiredRequired
businessTaxInfoRequiredRequired
businessAddressRequiredRequired
businessContactInfoRequiredRequired
businessDetailsRequiredRequired
businessOperationsRequiredRequired
businessFinancialInfoRequiredRequired
businessFormationDocumentsRequiredRequired
businessAssociatedPersonsRequiredRequired
businessUboOwnershipDocumentsNot RequiredRequired
businessProofOfAddressDocumentsNot RequiredRequired
businessFlowOfFundsDocument (conditional)Conditionally RequiredConditionally Required
Per associated person
associatedPersonPersonalInfoRequiredRequired
associatedPersonContactInfoRequiredRequired
associatedPersonResidentialAddressRequiredRequired
associatedPersonTaxInfoRequiredRequired
associatedPersonIdentityDocumentRequiredRequired
associatedPersonProofOfAddressNot RequiredRequired
associatedPersonEeaInfo (conditional)Conditionally RequiredConditionally Required
associatedPersonProofOfSignatoryAuthority (conditional)Conditionally RequiredConditionally Required

Review-level attestations

businessIdentification — REQUIRED

Legal identity of the business.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "businessIdentification".
businessNamestringYes1–500 characters. The legal name on file with the business's registration authority.
registrationNumberstringOptionalMax 100 characters. Business registration number.
dbaNamestringOptionalMax 500 characters. Doing-Business-As / trade name.

businessTaxInfo — REQUIRED

Business tax identification number and type.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "businessTaxInfo".
taxIdentificationNumberstringYesMax 100 characters. Validated against the country/type-specific format for the chosen taxIdentificationNumberType (e.g. EIN is XX-XXXXXXX).
taxIdentificationNumberTypeenumYesOne of the business-applicable BusinessTaxIdentificationNumberType values (e.g. EIN, CUIT, RFC, CNPJ, NIT).

businessAddress — REQUIRED

Registered (legal) address, with an optional separate operating address.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "businessAddress".
registeredAddressobjectYesSee Address object.
operatingAddressSameAsRegistrationbooleanYestrue or false. When false, operatingAddress becomes required.
operatingAddressobjectConditionalRequired when operatingAddressSameAsRegistration is false. If sent when true, it must match registeredAddress exactly. See Address object.

businessContactInfo — REQUIRED

Business phone number and email.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "businessContactInfo".
phoneNumberstringYesE.164 format with country code (e.g. +12125551234).
emailstringYesValid email address. UTF-8 local parts are not accepted.

businessDetails — REQUIRED

Website, legal structure, incorporation date, industry, free-text description, and intended use of Mural.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "businessDetails".
businessWebsitestringOptionalValid, safe URL (HTTPS recommended). Internal-network / private-IP URLs are rejected.
legalStructureenumYesOne of the LegalStructure values (e.g. CORPORATION, LLC, SOLE_PROPRIETORSHIP, PARTNERSHIP, NON_PROFIT_ORGANIZATION).
dateOfIncorporationstringYesYYYY-MM-DD. Must be a valid ISO date, not in the future, and no earlier than 1800-01-01.
industryenumYesOne of the Industry values (e.g. INFORMATION_AND_SOFTWARE, FINANCE_AND_INSURANCE, MANUFACTURING).
businessDescriptionstringYes100–4000 characters. Must be at least 100 characters so reviewers can assess the nature of the business.
intendedMuralUsagestringYes1–4000 characters. A free-text description of how the business intends to use Mural (e.g. "Vendor and supplier payments to Colombia").

businessOperations — REQUIRED

Money-movement profile, geographic reach, and high-risk-activity flags.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "businessOperations".
transmittingCustomerFundsbooleanYestrue or false. When true, both customerFundsTransmissionDetails and the businessFlowOfFundsDocument attestation become required.
customerFundsTransmissionDetailsstringConditionalRequired when transmittingCustomerFunds is true; omit it otherwise. 11–4000 characters.
primaryTargetMarketenumYesOne of the PrimaryTargetMarket values (e.g. COMMERCIAL, RETAIL, GOVERNMENT, OTHER).
primaryTargetMarketOtherDescriptionstringConditionalRequired when primaryTargetMarket is OTHER; omit it otherwise. 3–500 characters.
expectedCounterpartyCountriesarray of stringYes1–50 unique entries. Each entry is an ISO 3166-1 alpha-2 country code (e.g. ["CO", "MX"]).
highRiskBusinessActivitiesarray of enumYes0–12 entries from the HighRiskBusinessActivities enum. Submit an empty array [] to attest the business is engaged in none of the listed activities.

businessFinancialInfo — REQUIRED

Primary income source, annual revenue band, and estimated monthly transaction volume.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "businessFinancialInfo".
primaryIncomeSourceCategoryenumYesOne of the PrimaryIncomeSource values (e.g. BUSINESS_REVENUE, EQUITY_FUNDING, INVESTMENT_PROCEEDS, GRANTS).
primaryIncomeSourceDescriptionstringYes1–4000 characters. Free-text description of the primary income source.
annualRevenueenumYesOne of LESS_THAN_100K, BETWEEN_100K_AND_1M, BETWEEN_1M_AND_10M, BETWEEN_10M_AND_50M, BETWEEN_50M_AND_250M, MORE_THAN_250M.
estimatedMonthlyVolumenumberYesPositive USD amount. Minimum 1, maximum 100,000,000,000 ($100B).

businessFormationDocuments — REQUIRED

One 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.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "businessFormationDocuments".
formationDocumentsarray of objectYes1–10 entries, each with a distinct documentId. Each entry has documentType (one of ARTICLES_OF_INCORPORATION, BUSINESS_LICENSE, OTHER) and documentId (UUID returned by the upload endpoint).

businessUboOwnershipDocuments — REQUIRED (FULL only)

Required for the FULL tier only. Omit on US_STANDARD.

One or more uploaded UBO ownership document references (e.g. shareholder registry, cap table).

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "businessUboOwnershipDocuments".
uboOwnershipDocumentsarray of objectYes1–10 entries, each with a distinct documentId. Each entry has documentType (one of SHAREHOLDER_REGISTRY, OWNERSHIP_STRUCTURE, OTHER) and documentId (UUID returned by the upload endpoint).

businessProofOfAddressDocuments — REQUIRED (FULL only)

Required for the FULL tier only. Omit on US_STANDARD.

One or more uploaded business proof-of-address document references.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "businessProofOfAddressDocuments".
proofOfAddressDocumentsarray of objectYes1–10 entries, each with a distinct documentId. Each entry has documentType (one of UTILITY_BILL, BANK_STATEMENT, GOVERNMENT_ISSUED_LETTER) and documentId (UUID returned by the upload endpoint).

businessFlowOfFundsDocument — CONDITIONALLY REQUIRED

Required 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.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "businessFlowOfFundsDocument".
documentobjectYesA single entry with documentType (FLOW_OF_FUNDS or BANK_STATEMENT) and documentId (UUID returned by the upload endpoint).

businessAssociatedPersons — REQUIRED

Links 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 the referenced persons must include exactly one CONTROL_PERSON and at least one BENEFICIAL_OWNER.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "businessAssociatedPersons".
associatedPersonIdsarray of stringYes1–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.

Residential address, identity document, proof of address, and proof of signatory authority are checked automatically and return a pending validationStatus until the check finishes; poll the associated person for the result. The review cannot be submitted while any of them is pending, or failed with a BLOCKING failure. Re-upload to resolve a failure, or submit with acknowledgeWarnings: true to accept WARNING-only failures. Once no business or associated person attestation is pending, a failed check blocks submit with one 412 that lists every failure. When a business attestation also failed, the error is AttestationValidationsRejectedException and the associated person failures are in params.associatedPersonAttestations; otherwise it is AssociatedPersonAttestationValidationsRejectedException. Each associated person failure carries its associatedPersonId. When every failure is a WARNING, the 412 also lists submissionValidationFailures, the submission validation failures found on the same attempt. If there are any, the review moves to submissionValidationsFailed, and one submit with acknowledgeWarnings: true accepts the attestation and submission warnings together.

associatedPersonPersonalInfo — REQUIRED

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "associatedPersonPersonalInfo".
nameobjectYesSee Name object.
birthDatestringYesYYYY-MM-DD. Must be a valid ISO date and represent an adult (≥ 18 years).
nationalitystringYesISO 3166-1 alpha-2 country code (e.g. US).
isPoliticallyExposedbooleanOptionalWhen omitted, no PEP status is declared (treated as undisclosed, not false).
jobTitlestringYes2–200 characters. Job title or role within the business.
ownershipPercentagenumberYes0–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

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "associatedPersonContactInfo".
emailstringYesValid email address. UTF-8 local parts are not accepted.
phoneNumberstringYesE.164 format with country code (e.g. +14155551234).

associatedPersonResidentialAddress — REQUIRED

P.O. boxes are not accepted. If this address is in the EEA, associatedPersonEeaInfo becomes required for this person.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "associatedPersonResidentialAddress".
addressobjectYesSee Address object.

associatedPersonTaxInfo — REQUIRED

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "associatedPersonTaxInfo".
taxIdentificationNumberstringYesMax 100 characters. Validated against the country/type-specific format for the chosen taxIdentificationNumberType.
taxIdentificationNumberTypeenumYesOne of the individual-applicable IndividualTaxIdentificationNumberType values (e.g. SSN, ITIN, CPF, CURP, RFC, CUIT, RUT).

associatedPersonIdentityDocument — REQUIRED

Government-issued identity document for the associated person. Same shape as the individual review — see Government ID object.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "associatedPersonIdentityDocument".
governmentIdobjectYesSet its type to the document type. See Government ID object.

associatedPersonProofOfAddress — CONDITIONALLY REQUIRED

Required on the FULL tier. Omit on US_STANDARD.

One or more uploaded proof-of-address document references for this associated person.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "associatedPersonProofOfAddress".
proofOfAddressDocumentsarray of objectYes1–10 entries, each with a distinct documentId. Each entry has documentType (one of UTILITY_BILL, BANK_STATEMENT, GOVERNMENT_ISSUED_LETTER) and documentId (UUID returned by the upload endpoint).

associatedPersonEeaInfo — CONDITIONALLY REQUIRED

Required for an associated person when the business's registered address is in the EEA, or the person's residential address is in the EEA. The EEA is the EU member states plus Iceland, Liechtenstein, and Norway. It does not include the UK.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "associatedPersonEeaInfo".
isDirectorbooleanYesWhether the person is a director of the business.
placeOfBirthCountrystringYesISO 3166-1 alpha-2 country code (e.g. DE).
placeOfBirthCitystringYes1–200 characters.

associatedPersonProofOfSignatoryAuthority — CONDITIONALLY REQUIRED

Required for each associated person of an EEA-registered business whose associatedPersonEeaInfo.isDirector is false.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "associatedPersonProofOfSignatoryAuthority".
signatoryAuthorityDocumentsarray of objectYes1–10 entries, each with a distinct documentId. Each entry has documentType (one of LETTER_OF_AUTHORITY, BOARD_RESOLUTION, POWER_OF_ATTORNEY) and documentId (UUID returned by the upload endpoint).

Shared objects

Name object

Used wherever a name field appears (on associatedPersonPersonalInfo).

FieldTypeRequiredLimits & format
firstNamestringYes1–100 characters.
lastNamestringYes1–100 characters.
middleNamestringOptionalMax 100 characters.

Address object

Used wherever a registeredAddress, operatingAddress, or address field appears.

FieldTypeRequiredLimits & format
address1stringYes1–200 characters. Primary street address, including building number and street name.
address2stringOptionalMax 200 characters. Secondary line — apartment, suite, unit, floor, etc.
countrystringYesISO 3166-1 alpha-2 country code (e.g. US).
subDivisionstringYes1–100 characters. ISO 3166-2 subdivision code without the country prefix (e.g. NY for New York).
citystringYes1–100 characters.
postalCodestringYes1–20 characters.

Government ID object

The governmentId field on associatedPersonIdentityDocument accepts 28 document types. Every document type shares the same base shape; only the ID-number field and the document-reference field(s) differ by document type.

Common shape across every document type:

FieldTypeRequiredLimits & format
typestring (constant)YesThe document type (e.g. "passport", "driverLicense", "nationalId", "stateId", "passportCard", "visa", ...).
countryCodestringYesISO 3166-1 alpha-2 of the issuing authority (e.g. US). Government IDs issued by a prohibited country are rejected with 400 GovernmentIdFromProhibitedCountryException.
<variant>Number (e.g. passportNumber)stringYes4–50 characters.
<variant>DocumentId or front/back document IDsUUID(s)YesEach 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): driverLicense, nationalId, stateId, passportCard, permanentResidenceCard, visa, residencePermit, voterId, healthInsuranceCard, workPermit, consularId, foreignId, myNumberCard, longTermPass, ofwId, postalId, sssId, umid, municipalId, tribalId, keypassId.

cnh (Brazil): cnhFrontDocumentId is required; cnhBackDocumentId is optional.

For the complete per-variant schema (exact field names, country examples, etc.) see the AssociatedPersonIdentityDocumentAttestation entry in the API reference.


Did this page help you?