Skip to main content
POST
Submit KYB data for a business customer. The customer must already exist with customer_type: "business" (created with POST /customer), or the request returns 404 Business with the provided Customer_ID not found. A successful response means the data passed validation and was accepted. Verification runs afterwards, so the customer stays pending until their status changes. Every problem is reported in one 422 response. See KYC / KYB Verification for the error shape.
This endpoint is on the KYC platform at https://kyc.yativo.com, not the main API base URL. Every file field accepts a hosted URL, a base64 data URI or a multipart/form-data upload. Files must be PDF, JPG, JPEG, PNG, HEIC or TIF, between 5 KB and 30 MB.

Business profile fields

Optional business profile fields, such as monthly_volume_usd, sender_geographies and primary_payout_method, are listed in KYC / KYB Verification.

Headers

Idempotency-Key
string
required

A unique string per request to ensure idempotent processing.

Body

application/json
customer_id
string
required

The customer ID returned by POST /customer.

Registered legal name. Max 255 characters.

Maximum string length: 255
business_trade_name
string
required

Trade or DBA name. Max 255 characters.

Maximum string length: 255
business_description
string
required

What the business does. 140–5000 characters.

Required string length: 140 - 5000
email
string<email>
required

Business contact email.

business_type
enum<string>
required

cooperative, corporation, llc, partnership, sole_prop, trust or other.

Available options:
cooperative,
corporation,
llc,
partnership,
sole_prop,
trust,
other
registration_number
string
required

Government registration or incorporation number. Max 100 characters.

Maximum string length: 100
incorporation_date
string<date>
required

YYYY-MM-DD, before today.

primary_website
string<uri>
required

Website URL including the scheme, for example https://acme.com.

registered_address
object
required

The registered address. physical_address has the same fields and is also required.

physical_address
object
required

The operating address. Same fields as registered_address.

associated_persons
object[]
required

Owners, directors and authorized signers. At least one person must own at least ownership_threshold percent (default 25). People below the threshold are dropped from the submission, unless is_director, is_signer or has_control is true. The role flags accept true/false, 1/0 and "1"/"0". The combined ownership_percentage of people with has_ownership: true can't exceed 100.

Minimum array length: 1
account_purpose
enum<string>
required

One of charitable_donations, ecommerce_retail_payments, investment_purposes, other, payments_to_friends_or_family_abroad, payroll, personal_or_living_expenses, protect_wealth, purchase_goods_and_services, receive_payments_for_goods_and_services, tax_optimization, third_party_money_transmission or treasury_management.

Available options:
charitable_donations,
ecommerce_retail_payments,
investment_purposes,
other,
payments_to_friends_or_family_abroad,
payroll,
personal_or_living_expenses,
protect_wealth,
purchase_goods_and_services,
receive_payments_for_goods_and_services,
tax_optimization,
third_party_money_transmission,
treasury_management
source_of_funds
enum<string>
required

PascalCase. One of BusinessLoans, Grants, InterCompanyFunds, InvestmentProceeds, LegalSettlement, OwnersCapital, PensionRetirement, SaleOfAssets, SalesOfGoodsAndServices, ThirdPartyFunds or TreasuryReserves.

Available options:
BusinessLoans,
Grants,
InterCompanyFunds,
InvestmentProceeds,
LegalSettlement,
OwnersCapital,
PensionRetirement,
SaleOfAssets,
SalesOfGoodsAndServices,
ThirdPartyFunds,
TreasuryReserves
expected_monthly_payments_usd
integer
required

Expected monthly volume in USD. At least 1.

Required range: x >= 1
high_risk_activities
enum<string>[]
required

Any of adult_entertainment, gambling, hold_client_funds, investment_services, lending_banking, marijuana_or_related_services, money_services, nicotine_tobacco_or_related_services, operate_foreign_exchange_virtual_currencies_brokerage_otc, pharmaceuticals, precious_metals_precious_stones_jewelry, safe_deposit_box_rentals, third_party_payment_processing, weapons_firearms_and_explosives. Send ["none_of_the_above"] if none apply.

Available options:
adult_entertainment,
gambling,
hold_client_funds,
investment_services,
lending_banking,
marijuana_or_related_services,
money_services,
nicotine_tobacco_or_related_services,
operate_foreign_exchange_virtual_currencies_brokerage_otc,
pharmaceuticals,
precious_metals_precious_stones_jewelry,
safe_deposit_box_rentals,
third_party_payment_processing,
weapons_firearms_and_explosives,
none_of_the_above
pep_status
boolean
required

Whether any associated person is a politically exposed person.

third_party_msb_payments
boolean
required

Whether the business makes payments for third-party money services businesses.

documents
object[]
required

At least one document.

Minimum array length: 1
extra_documents
object[]
required

Items of { "type": "...", "file": ... }. Must include shareholding_structure, and board_resolution when an authorized signer isn't a director.

incorporation_country
string

ISO 3166-1 alpha-2 country code.

tax_id
string

Business tax ID. Required unless you send identifying_information. Letters and digits only, up to 255 characters.

Maximum string length: 255
Pattern: ^[A-Za-z0-9]+$
phone_calling_code
string

Must match ^\+[1-9]\d{0,3}$, for example "+1".

Pattern: ^\+[1-9]\d{0,3}$
phone_number
string

Digits only, 7–15 characters.

Pattern: ^\d{7,15}$
business_industry
string

Industry, from GET /business-industries.

is_dao
boolean

Whether the business is a decentralized autonomous organization.

statement_descriptor
string

How the name appears on statements. Max 22 characters.

Maximum string length: 22
account_purpose_other
string

Required when account_purpose is other.

high_risk_activities_explanation
string

Required if any high-risk activity is listed. Max 5000 characters.

Maximum string length: 5000
conducts_money_services
boolean

When true, conducts_money_services_description and compliance_screening_explanation are required.

conducts_money_services_description
string
compliance_screening_explanation
string
estimated_annual_revenue_usd
string

Estimated annual revenue in USD.

operates_in_prohibited_countries
enum<string>

yes or no.

Available options:
yes,
no
ownership_threshold
integer
default:25

5–100. Default 25.

Required range: 5 <= x <= 100
has_material_intermediary_ownership
boolean

Whether the ownership includes material intermediary entities.

regulated_activity
object

regulated_activities_description, primary_regulatory_authority_country, primary_regulatory_authority_name and license_number, if the business is regulated.

identifying_information
object[]

Business-level documents with type, issuing_country, number, description, expiration, image_front and image_back. image_front is required when type is tax_id.

usd_virtual_account
boolean

Also eur_virtual_account, gbp_virtual_account and native_endorsement. See Virtual account flags.

eur_virtual_account
boolean
gbp_virtual_account
boolean
native_endorsement
boolean
extra_business_info
object

Optional business profile. Values outside the allowed lists come back in warnings.

collections_data
object
payouts_data
object

Response

KYB data accepted. Verification runs afterwards.

success
boolean
Example:

true

message
string
Example:

"All data submitted successfully."

business_data
object