Environment base URLs
| Environment | Base URL |
|---|---|
| Production | https://api.yativo.com/api/v1 |
| Sandbox | https://smtp.yativo.com/api/v1 |
| KYC Platform | https://kyc.yativo.com |
Access tokens expire after 600 seconds. Include
Authorization: Bearer {token} in every authenticated request.Idempotency
Include anIdempotency-Key header on all POST, PUT, and PATCH requests to prevent duplicate submissions.
Verification approaches
| Approach | Description | Best for |
|---|---|---|
| API Submission | Programmatically submit all customer data | Full control, native UI |
| Hosted KYC/KYB Links | Redirect customers to https://kyc.yativo.com | Quick integration, iframe embed |
- Individual:
https://kyc.yativo.com/individual/{customer_id} - Business:
https://kyc.yativo.com/business/{customer_id}
Verification flow
- Create Customer —
POST /customer - Submit KYC or KYB —
POST individual-kyc/submitorPOST business-kyc/submit - Check Status —
GET /customer/kyc/{customer_id} - Customer Approved — Endorsements activated, payment rails available
Individual KYC — Submit via API
The KYC submission endpoint is hosted on the KYC platform at
https://kyc.yativo.com, not the main API base URL.| Header | Value |
|---|---|
Content-Type | application/json |
Authorization | Bearer {token} |
Idempotency-Key | A unique key for this request |
Identity fields
The customer UUID from
POST /customer.Must be
"individual".Optional agreement UUID. If omitted, it is auto-generated by Yativo.
Customer’s first name.
Customer’s last name.
Customer’s middle name (optional).
Customer’s email address.
Phone number without country code.
Country calling code, e.g.
"+1", "+44".One of:
"male", "female", "other".Date of birth in
YYYY-MM-DD format.ISO 3166-1 alpha-2 country code (e.g.
"US", "BR", "GB").Tax identification number for the customer.
URL or base64-encoded selfie image of the customer.
Residential address
Customer’s residential address.
Identifying information
At least one government-issued ID document is required.
Financial information
One of:
"Employed", "self_employed", "unemployed", "retired", "student".Occupation code from
GET /auth/occupation-codes. Example: "132011" (Accountant).Expected monthly payment volume:
"LessThan5K", "5KTo50K", or "MoreThan50K".Source of funds:
"Salary", "Business", "Investment", "Savings", or other applicable value.Purpose for the account, e.g.
"ReceiveSalary", "BusinessPayments".Required when
account_purpose is "other".Whether the customer is acting as an intermediary for third parties.
Virtual account preferences
Request a USD virtual account for this customer.
Request a EUR virtual account for this customer.
Request a EUR/DE virtual account. If
true, both usd_virtual_account and eur_virtual_account must be false.Request a GBP virtual account.
Optional fields
Additional supporting documents.
Optional Sumsub token for submissions that include liveness checks.
Business KYB — Submit via API
Business identity fields
The customer UUID from
POST /customer.Must be
"business".Optional agreement UUID. If omitted, it is auto-generated by Yativo.
The official registered legal name of the business.
A description of what the business does.
Business email address.
One of:
"cooperative", "corporation", "llc", "partnership", "sole_prop", "trust", "other".Official government registration or incorporation number.
Date of incorporation in ISO 8601 format (e.g.
"2015-06-15").Trade name or DBA (“doing business as”) name (optional).
Business tax identification number (optional).
How the business name appears on customer statements (optional).
Country calling code for business phone (optional).
Business phone number (optional).
Industry category of the business (optional).
Business website URL (optional).
Whether the business is a DAO (Decentralized Autonomous Organization) (optional).
Whether there is material intermediary ownership structure (optional).
Business addresses
The official registered address of the business.
The physical operating address of the business.
Associated persons
At least one associated person (beneficial owner, director, or signer) is required.
Business financial information
Purpose of the business account, e.g.
"BusinessPayments".Required when
account_purpose is "other".Source of business funds, e.g.
"Business", "Investment".Estimated annual revenue in USD (optional).
Expected monthly payment volume in USD (optional).
Optional value:
"yes" or "no".Ownership percentage threshold used for reporting (optional).
Array of high-risk activity strings the business is involved in (can be empty array).
Explanation of any high-risk activities listed above.
Whether the business conducts money services (optional).
Required when
conducts_money_services is true.Additional compliance context (optional).
Description of regulated activities (optional).
Country of the primary regulatory authority (optional).
Name of the primary regulatory authority (optional).
Regulatory license number (optional).
Business documents
At least one business document is required.
Optional business fields
Business-level identifying documents (optional).
Additional supporting documents (optional).
Additional business information fields (optional).
Collections configuration data (optional).
Payouts configuration data (optional).
Check KYC / KYB status
The UUID of the customer whose verification status you want to check.
Status values
| Status | Description |
|---|---|
not_started | No KYC submission has been made yet |
submitted | Submission received, awaiting review |
manual_review | Under manual review by compliance team |
approved | Customer is fully verified |
rejected | Submission was rejected (see kyc_rejection_reasons) |
under_review | Additional review in progress |
When
is_va_approved is true, the customer can use payment services including virtual accounts.Update KYC submission
To update an existing KYC or KYB submission:customer_id and type are required.
Service endorsements
After KYC/KYB approval, customers receive endorsements that unlock specific payment services.| Service | Description |
|---|---|
base | USD base payments |
sepa | European SEPA transfers |
spei | Mexico SPEI transfers |
brazil | Brazilian payment rails |
eurde | EUR/DE virtual accounts |
usd_latam | USD Latin America transfers |
eur_latam | EUR Latin America transfers |
virtual_card | Virtual card issuance |
asian | Asian region payments |
native | Native payment rails |
cobo_pobo | Collection/Payment-on-behalf-of |
Endorsement statuses
| Status | Description |
|---|---|
not_started | Endorsement process not yet initiated |
pending | Awaiting review |
approved | Service is active for this customer |
rejected | Endorsement was rejected |
declined | Customer declined the endorsement |
under_review | Additional review in progress |
Regenerate endorsement link
If an endorsement verification URL has expired, you can regenerate it:The customer UUID.
The service name (e.g.
"base", "sepa", "spei", "brazil", "eurde").Occupation codes
Retrieve the list of valid occupation codes to use in themost_recent_occupation_code field.
Verification locations
Retrieve the list of supported countries for customer registration and verification.Enums and reference values
Business types
cooperative, corporation, llc, partnership, sole_prop, trust, other
Account purpose values
PurchaseGoodsAndServices, personalOrLivingExpenses, PaymentsToFriendsOrFamilyAbroad, ReceiveSalary, personal_use, business, other
Source of funds values
Salary, CompanyFunds, Business, Investment, Savings, GovernmentBenefits, SaleOfAssetsRealEstate
High-risk activities
adult_entertainment, gambling, hold_client_funds, investment_services, lending_banking, marijuana_or_related_services, money_services, operate_foreign_exchange_virtual_currencies_brokerage_otc, pharmaceuticals, precious_metals_precious_stones_jewelry, safe_deposit_box_rentals, weapons_firearms_and_explosives, none_of_the_above
Employment status values
Employed, self_employed, unemployed, retired, student
Expected monthly payment values (individual)
LessThan5K, 5KTo50K, MoreThan50K
Error handling
Standard error response format:HTTP status codes
| Code | Description |
|---|---|
200 | Success |
201 | Created successfully |
400 | Bad request |
401 | Unauthorized (invalid or expired token) |
404 | Customer not found |
422 | Validation error |
429 | Rate limited |
500 | Internal server error |
Common validation errors
customer_id is requiredcustomer_id does not existtype must be individual or businessbirth_date must be before todayidentifying_information is requiredeurde_virtual_account conflicts
Webhooks
Yativo sends webhook notifications when KYC/KYB status changes. Webhook payload example:Webhook events
| Event | Description |
|---|---|
kyc.status_updated | KYC/KYB status changed |
kyc.endorsement_updated | A specific endorsement status changed |
Implementation notes
- Upload document files as either public URLs or base64-encoded strings.
- Base64 payloads should not include line breaks.
- Use ISO 3166-1 alpha-2 country codes for KYC platform submissions.
- KYC review usually completes within 24 hours.

