curl --request POST \
--url https://api.platform.dakota.xyz/applications/{application_id}/submissions \
--header 'X-Application-Token: <api-key>' \
--header 'x-idempotency-key: <x-idempotency-key>'const options = {
method: 'POST',
headers: {'x-idempotency-key': '<x-idempotency-key>', 'X-Application-Token': '<api-key>'}
};
fetch('https://api.platform.dakota.xyz/applications/{application_id}/submissions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.platform.dakota.xyz/applications/{application_id}/submissions"
headers = {
"x-idempotency-key": "<x-idempotency-key>",
"X-Application-Token": "<api-key>"
}
response = requests.post(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.platform.dakota.xyz/applications/{application_id}/submissions"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-idempotency-key", "<x-idempotency-key>")
req.Header.Add("X-Application-Token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"application_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3a",
"application_type": "business",
"application_status": "pending",
"application_created_at": "2024-01-15T10:30:00Z",
"application_updated_at": "2024-01-16T14:45:00Z",
"application_submitted_at": "2024-01-17T16:00:00Z",
"application_decision": "approved",
"entities": {
"business": {
"id": "2hCjxJzUAW6JVRkZqaF9E0KpM3a",
"legal_name": "Acme Corporation",
"country_of_incorporation": "US",
"date_of_incorporation": "2020-01-15",
"legal_structure": "llc",
"registration_number": "123456789",
"tax_id_number": "12-3456789",
"dba": "Acme Inc",
"registered_address": {
"street1": "123 Main St",
"street2": "Apt 4B",
"street3": "Building C",
"city": "San Francisco",
"region": "California",
"postal_code": "94105",
"country": "US"
},
"operating_address": {
"street1": "123 Main St",
"street2": "Apt 4B",
"street3": "Building C",
"city": "San Francisco",
"region": "California",
"postal_code": "94105",
"country": "US"
},
"industry_code": "541511",
"business_description": "Software development and technology consulting services",
"purpose_of_account": [
"first_party_payments",
"business_expenses"
],
"average_monthly_revenue": "1_to_10m",
"expected_monthly_deposit": "100k_to_500k",
"expected_monthly_transaction_volume": "0_to_10",
"source_of_funds": [
"proprietary_funds",
"customer_funds"
],
"has_bearer_shares": false,
"transact_on_behalf_of_third_parties": false,
"website": "https://www.acme.com",
"decision": "approved",
"decision_reason": "All verification checks passed",
"decision_by": "admin@dakota.xyz",
"decision_at": 1705315800,
"sumsub_verification": {
"applicant_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3b",
"provider_applicant_id": "65a1b2c3d4e5f6g7h8i9j0k1",
"entity_type": "individual",
"type": "individual",
"decision": "approved",
"decision_reason": "All verification checks passed",
"decision_by": "admin@dakota.xyz",
"decision_at": 1705315800,
"review": {
"review_id": "65a1b2c3d4e5f6g7h8i9j0k1",
"attempt_id": "65a1b2c3d4e5f6g7h8i9j0k2",
"attempt_cnt": 1,
"level_name": "basic-kyc-level",
"create_date": "2024-01-15T10:30:00Z",
"review_date": "2024-01-15T14:45:00Z",
"review_status": "completed",
"review_result": {
"review_answer": "GREEN",
"reject_labels": [
"DOCUMENT_TEMPLATE",
"FRAUDULENT_PATTERNS"
],
"reject_type": "FINAL",
"button_ids": [
"approve"
],
"moderation_comment": "All documents verified successfully",
"client_comment": "Approved for onboarding"
}
},
"risk_labels": {
"device": [
"EMULATOR",
"VPN"
],
"cross_check": [
"FAKE_ID",
"BLACKLIST"
],
"attempt_id": "65a1b2c3d4e5f6g7h8i9j0k2",
"created_at": "2024-01-15T10:30:00Z"
}
}
},
"primary_individual": {
"id": "2hCjxJzUAW6JVRkZqaF9E0KpM3b",
"first_name": "John",
"last_name": "Doe",
"date_of_birth": "1985-06-15",
"nationalities": [
"US"
],
"address": {
"street1": "123 Main St",
"street2": "Apt 4B",
"street3": "Building C",
"city": "San Francisco",
"region": "California",
"postal_code": "94105",
"country": "US"
},
"email_address": "john.doe@example.com",
"phone_number": "+1-555-123-4567",
"employment_status": "employed",
"purpose_of_account": [
"investing",
"storage_of_funds_or_digital_assets"
],
"source_of_wealth": [
"employment",
"savings"
],
"decision": "approved",
"decision_reason": "All verification checks passed",
"decision_by": "admin@dakota.xyz",
"decision_at": 1705315800,
"sumsub_verification": {
"applicant_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3b",
"provider_applicant_id": "65a1b2c3d4e5f6g7h8i9j0k1",
"entity_type": "individual",
"type": "individual",
"decision": "approved",
"decision_reason": "All verification checks passed",
"decision_by": "admin@dakota.xyz",
"decision_at": 1705315800,
"review": {
"review_id": "65a1b2c3d4e5f6g7h8i9j0k1",
"attempt_id": "65a1b2c3d4e5f6g7h8i9j0k2",
"attempt_cnt": 1,
"level_name": "basic-kyc-level",
"create_date": "2024-01-15T10:30:00Z",
"review_date": "2024-01-15T14:45:00Z",
"review_status": "completed",
"review_result": {
"review_answer": "GREEN",
"reject_labels": [
"DOCUMENT_TEMPLATE",
"FRAUDULENT_PATTERNS"
],
"reject_type": "FINAL",
"button_ids": [
"approve"
],
"moderation_comment": "All documents verified successfully",
"client_comment": "Approved for onboarding"
}
},
"risk_labels": {
"device": [
"EMULATOR",
"VPN"
],
"cross_check": [
"FAKE_ID",
"BLACKLIST"
],
"attempt_id": "65a1b2c3d4e5f6g7h8i9j0k2",
"created_at": "2024-01-15T10:30:00Z"
}
}
},
"associated_individuals": [
{
"id": "2hCjxJzUAW6JVRkZqaF9E0KpM3b",
"first_name": "John",
"last_name": "Doe",
"date_of_birth": "1985-06-15",
"nationalities": [
"US"
],
"address": {
"street1": "123 Main St",
"street2": "Apt 4B",
"street3": "Building C",
"city": "San Francisco",
"region": "California",
"postal_code": "94105",
"country": "US"
},
"email_address": "john.doe@example.com",
"phone_number": "+1-555-123-4567",
"employment_status": "employed",
"purpose_of_account": [
"investing",
"storage_of_funds_or_digital_assets"
],
"source_of_wealth": [
"employment",
"savings"
],
"decision": "approved",
"decision_reason": "All verification checks passed",
"decision_by": "admin@dakota.xyz",
"decision_at": 1705315800,
"sumsub_verification": {
"applicant_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3b",
"provider_applicant_id": "65a1b2c3d4e5f6g7h8i9j0k1",
"entity_type": "individual",
"type": "individual",
"decision": "approved",
"decision_reason": "All verification checks passed",
"decision_by": "admin@dakota.xyz",
"decision_at": 1705315800,
"review": {
"review_id": "65a1b2c3d4e5f6g7h8i9j0k1",
"attempt_id": "65a1b2c3d4e5f6g7h8i9j0k2",
"attempt_cnt": 1,
"level_name": "basic-kyc-level",
"create_date": "2024-01-15T10:30:00Z",
"review_date": "2024-01-15T14:45:00Z",
"review_status": "completed",
"review_result": {
"review_answer": "GREEN",
"reject_labels": [
"DOCUMENT_TEMPLATE",
"FRAUDULENT_PATTERNS"
],
"reject_type": "FINAL",
"button_ids": [
"approve"
],
"moderation_comment": "All documents verified successfully",
"client_comment": "Approved for onboarding"
}
},
"risk_labels": {
"device": [
"EMULATOR",
"VPN"
],
"cross_check": [
"FAKE_ID",
"BLACKLIST"
],
"attempt_id": "65a1b2c3d4e5f6g7h8i9j0k2",
"created_at": "2024-01-15T10:30:00Z"
}
},
"roles": [
"ubo",
"control_person"
],
"ownership_percentage": 25.5,
"title": "CEO"
}
]
},
"edd": {
"account_usage_description": "Processing payments for e-commerce transactions",
"top_customer_countries": [
"US",
"GB",
"CA"
],
"is_token_issuer": false,
"will_conduct_token_sale": false,
"token_sale_amount_usd": 1000000,
"token_sale_availability": "Public sale to accredited investors",
"token_sale_registration_status": "Registered with SEC",
"is_regulated": true,
"unregulated_justification": "Operating in exempt category under local regulations",
"country_of_regulation": "US",
"regulatory_license_type": "Money Services Business (MSB)",
"verifies_customer_identity": true,
"has_transaction_monitoring": true,
"subject_to_aml_audits": true,
"last_audit_date": "2024-06-30",
"id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"business_id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"document_info": {
"uploaded_documents": [
{
"document_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3a",
"document_type": "passport",
"status": "uploaded",
"uploaded_at": "2025-01-15T10:30:00Z"
}
],
"missing_documents": [
{
"purpose": "business_formation",
"accepted_types": [
"articles_of_incorporation"
],
"description": "Articles of Incorporation or equivalent formation document"
}
]
},
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-01-15T14:45:00Z"
},
"attestations": {
"information_accuracy": {
"attested_at": "2024-01-17T15:30:00Z",
"attested_by": "John Doe"
},
"terms_of_service": {
"attested_at": "2024-01-17T15:30:00Z",
"attested_by": "John Doe"
},
"privacy_policy": {
"attested_at": "2024-01-17T15:30:00Z",
"attested_by": "John Doe"
},
"funds_transfer_agreement": {
"attested_at": "2024-01-17T15:30:00Z",
"attested_by": "John Doe"
},
"lead_bank_privacy_policy": {
"attested_at": "2024-01-17T15:30:00Z",
"attested_by": "John Doe"
},
"e_sign": {
"attested_at": "2024-01-17T15:30:00Z",
"attested_by": "John Doe"
}
},
"validation": {
"ready": false,
"status_message": "Waiting on: business documents, 2 individuals' documents, and attestations",
"business": {
"id": "2hCjxJzUAW6JVRkZqaF9E0KpM3b",
"ready": false,
"details": {
"ready": false,
"missing_fields": [
"legal_structure",
"date_of_incorporation",
"business_description"
]
},
"documents": {
"uploaded_documents": [
{
"document_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3a",
"document_type": "passport",
"status": "uploaded",
"uploaded_at": "2025-01-15T10:30:00Z"
}
],
"missing_documents": [
{
"purpose": "business_formation",
"accepted_types": [
"articles_of_incorporation"
],
"description": "Articles of Incorporation or equivalent formation document"
}
],
"ready": false
}
},
"primary_individual": {
"id": "2hCjxJzUAW6JVRkZqaF9E0KpM3b",
"ready": false,
"details": {
"ready": false,
"missing_fields": [
"email_address",
"date_of_birth"
]
},
"documents": {
"uploaded_documents": [
{
"document_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3a",
"document_type": "passport",
"status": "uploaded",
"uploaded_at": "2025-01-15T10:30:00Z"
}
],
"missing_documents": [
{
"purpose": "individual_identity",
"accepted_types": [
"passport",
"drivers_license_front"
],
"description": "Government-issued photo ID"
}
],
"ready": false
},
"individual_name": "John Doe"
},
"associated_individuals": [
{
"id": "2hCjxJzUAW6JVRkZqaF9E0KpM3b",
"ready": false,
"details": {
"ready": false,
"missing_fields": [
"email_address",
"date_of_birth"
]
},
"documents": {
"uploaded_documents": [
{
"document_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3a",
"document_type": "passport",
"status": "uploaded",
"uploaded_at": "2025-01-15T10:30:00Z"
}
],
"missing_documents": [
{
"purpose": "individual_identity",
"accepted_types": [
"passport",
"drivers_license_front"
],
"description": "Government-issued photo ID"
}
],
"ready": false
},
"individual_name": "John Doe"
}
],
"edd": {
"id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"required": true,
"ready": false,
"details": {
"ready": false,
"missing_fields": [
"legal_structure",
"date_of_incorporation",
"business_description"
]
},
"documents": {
"uploaded_documents": [
{
"document_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3a",
"document_type": "passport",
"status": "uploaded",
"uploaded_at": "2025-01-15T10:30:00Z"
}
],
"missing_documents": [
{
"purpose": "business_formation",
"accepted_types": [
"articles_of_incorporation"
],
"description": "Articles of Incorporation or equivalent formation document"
}
],
"ready": false
}
},
"attestations": {
"completed": [
{
"type": "information_accuracy",
"attested_at": "2024-01-17T15:30:00Z",
"attested_by": "John Doe"
}
],
"missing": [
"terms_of_service",
"privacy_policy"
]
}
},
"risk_rating": {
"score": 7,
"num_factors": 4,
"percentage": 62.5,
"level": "high",
"factors": [
{
"name": "country_risk",
"value": 3,
"level": "high",
"input": "US",
"description": "Country risk based on incorporation country",
"reason": "United States is a low-risk jurisdiction",
"prohibited": false
}
],
"edd_required": true,
"prohibited": false,
"prohibited_reason": "Sanctioned country",
"version": "v1",
"data_version": "2026-01-07",
"config": {
"threshold_low": 25,
"threshold_high": 50
},
"calculated_at": "2024-01-15T10:30:00Z"
}
}{
"code": "application_not_ready",
"application_id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"status_message": "Application cannot be submitted because some or all applicants haven't uploaded documents.",
"edd": {
"required": true,
"edd_id": "2KPQgUCj09jSdGSdYMqaS3Z3C8r",
"ready": false,
"document_info": {
"uploaded_documents": [
{
"document_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3a",
"document_type": "passport",
"status": "uploaded",
"uploaded_at": "2025-01-15T10:30:00Z"
}
],
"missing_documents": [
{
"purpose": "business_formation",
"accepted_types": [
"articles_of_incorporation"
],
"description": "Articles of Incorporation or equivalent formation document"
}
]
}
},
"incomplete_applicants": [
{
"applicant_type": "individual",
"applicant_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3a",
"legal_name": "Acme Corporation",
"first_name": "John",
"last_name": "Doe",
"ready": true,
"document_info": {
"uploaded_documents": [
{
"document_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3a",
"document_type": "passport",
"status": "uploaded",
"uploaded_at": "2025-01-15T10:30:00Z"
}
],
"missing_documents": [
{
"purpose": "business_formation",
"accepted_types": [
"articles_of_incorporation"
],
"description": "Articles of Incorporation or equivalent formation document"
}
]
}
}
],
"missing_attestations": [
"information_accuracy",
"terms_of_service"
]
}{
"type": "https://docs.dakota.xyz/api-reference/errors#authentication-error",
"title": "Unauthorized",
"status": 401,
"detail": "Unauthorized",
"instance": "https://api.platform.dakota.xyz/applications/example-id/submissions",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"error": "insufficient_credits",
"message": "Insufficient credits to submit this application. Required 2500 cents, balance 500 cents.",
"required_cents": 2500,
"balance_cents": 500
}{
"type": "https://docs.dakota.xyz/api-reference/errors#forbidden",
"title": "Forbidden - application not owned by client",
"status": 403,
"detail": "Forbidden - application not owned by client",
"instance": "https://api.platform.dakota.xyz/applications/example-id/submissions",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Application not found",
"status": 404,
"detail": "Application not found",
"instance": "https://api.platform.dakota.xyz/applications/example-id/submissions",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#internal-error",
"title": "Unexpected error",
"status": 500,
"detail": "Unexpected error",
"instance": "https://api.platform.dakota.xyz/applications/example-id/submissions",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}Submit an application for verification
Submits an application for verification. The application must be complete with all required information and documents before it can be submitted. If the application is not ready, returns detailed error information about what is missing.
Authentication: Accepts Application Token (X-Application-Token header).
curl --request POST \
--url https://api.platform.dakota.xyz/applications/{application_id}/submissions \
--header 'X-Application-Token: <api-key>' \
--header 'x-idempotency-key: <x-idempotency-key>'const options = {
method: 'POST',
headers: {'x-idempotency-key': '<x-idempotency-key>', 'X-Application-Token': '<api-key>'}
};
fetch('https://api.platform.dakota.xyz/applications/{application_id}/submissions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.platform.dakota.xyz/applications/{application_id}/submissions"
headers = {
"x-idempotency-key": "<x-idempotency-key>",
"X-Application-Token": "<api-key>"
}
response = requests.post(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.platform.dakota.xyz/applications/{application_id}/submissions"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-idempotency-key", "<x-idempotency-key>")
req.Header.Add("X-Application-Token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"application_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3a",
"application_type": "business",
"application_status": "pending",
"application_created_at": "2024-01-15T10:30:00Z",
"application_updated_at": "2024-01-16T14:45:00Z",
"application_submitted_at": "2024-01-17T16:00:00Z",
"application_decision": "approved",
"entities": {
"business": {
"id": "2hCjxJzUAW6JVRkZqaF9E0KpM3a",
"legal_name": "Acme Corporation",
"country_of_incorporation": "US",
"date_of_incorporation": "2020-01-15",
"legal_structure": "llc",
"registration_number": "123456789",
"tax_id_number": "12-3456789",
"dba": "Acme Inc",
"registered_address": {
"street1": "123 Main St",
"street2": "Apt 4B",
"street3": "Building C",
"city": "San Francisco",
"region": "California",
"postal_code": "94105",
"country": "US"
},
"operating_address": {
"street1": "123 Main St",
"street2": "Apt 4B",
"street3": "Building C",
"city": "San Francisco",
"region": "California",
"postal_code": "94105",
"country": "US"
},
"industry_code": "541511",
"business_description": "Software development and technology consulting services",
"purpose_of_account": [
"first_party_payments",
"business_expenses"
],
"average_monthly_revenue": "1_to_10m",
"expected_monthly_deposit": "100k_to_500k",
"expected_monthly_transaction_volume": "0_to_10",
"source_of_funds": [
"proprietary_funds",
"customer_funds"
],
"has_bearer_shares": false,
"transact_on_behalf_of_third_parties": false,
"website": "https://www.acme.com",
"decision": "approved",
"decision_reason": "All verification checks passed",
"decision_by": "admin@dakota.xyz",
"decision_at": 1705315800,
"sumsub_verification": {
"applicant_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3b",
"provider_applicant_id": "65a1b2c3d4e5f6g7h8i9j0k1",
"entity_type": "individual",
"type": "individual",
"decision": "approved",
"decision_reason": "All verification checks passed",
"decision_by": "admin@dakota.xyz",
"decision_at": 1705315800,
"review": {
"review_id": "65a1b2c3d4e5f6g7h8i9j0k1",
"attempt_id": "65a1b2c3d4e5f6g7h8i9j0k2",
"attempt_cnt": 1,
"level_name": "basic-kyc-level",
"create_date": "2024-01-15T10:30:00Z",
"review_date": "2024-01-15T14:45:00Z",
"review_status": "completed",
"review_result": {
"review_answer": "GREEN",
"reject_labels": [
"DOCUMENT_TEMPLATE",
"FRAUDULENT_PATTERNS"
],
"reject_type": "FINAL",
"button_ids": [
"approve"
],
"moderation_comment": "All documents verified successfully",
"client_comment": "Approved for onboarding"
}
},
"risk_labels": {
"device": [
"EMULATOR",
"VPN"
],
"cross_check": [
"FAKE_ID",
"BLACKLIST"
],
"attempt_id": "65a1b2c3d4e5f6g7h8i9j0k2",
"created_at": "2024-01-15T10:30:00Z"
}
}
},
"primary_individual": {
"id": "2hCjxJzUAW6JVRkZqaF9E0KpM3b",
"first_name": "John",
"last_name": "Doe",
"date_of_birth": "1985-06-15",
"nationalities": [
"US"
],
"address": {
"street1": "123 Main St",
"street2": "Apt 4B",
"street3": "Building C",
"city": "San Francisco",
"region": "California",
"postal_code": "94105",
"country": "US"
},
"email_address": "john.doe@example.com",
"phone_number": "+1-555-123-4567",
"employment_status": "employed",
"purpose_of_account": [
"investing",
"storage_of_funds_or_digital_assets"
],
"source_of_wealth": [
"employment",
"savings"
],
"decision": "approved",
"decision_reason": "All verification checks passed",
"decision_by": "admin@dakota.xyz",
"decision_at": 1705315800,
"sumsub_verification": {
"applicant_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3b",
"provider_applicant_id": "65a1b2c3d4e5f6g7h8i9j0k1",
"entity_type": "individual",
"type": "individual",
"decision": "approved",
"decision_reason": "All verification checks passed",
"decision_by": "admin@dakota.xyz",
"decision_at": 1705315800,
"review": {
"review_id": "65a1b2c3d4e5f6g7h8i9j0k1",
"attempt_id": "65a1b2c3d4e5f6g7h8i9j0k2",
"attempt_cnt": 1,
"level_name": "basic-kyc-level",
"create_date": "2024-01-15T10:30:00Z",
"review_date": "2024-01-15T14:45:00Z",
"review_status": "completed",
"review_result": {
"review_answer": "GREEN",
"reject_labels": [
"DOCUMENT_TEMPLATE",
"FRAUDULENT_PATTERNS"
],
"reject_type": "FINAL",
"button_ids": [
"approve"
],
"moderation_comment": "All documents verified successfully",
"client_comment": "Approved for onboarding"
}
},
"risk_labels": {
"device": [
"EMULATOR",
"VPN"
],
"cross_check": [
"FAKE_ID",
"BLACKLIST"
],
"attempt_id": "65a1b2c3d4e5f6g7h8i9j0k2",
"created_at": "2024-01-15T10:30:00Z"
}
}
},
"associated_individuals": [
{
"id": "2hCjxJzUAW6JVRkZqaF9E0KpM3b",
"first_name": "John",
"last_name": "Doe",
"date_of_birth": "1985-06-15",
"nationalities": [
"US"
],
"address": {
"street1": "123 Main St",
"street2": "Apt 4B",
"street3": "Building C",
"city": "San Francisco",
"region": "California",
"postal_code": "94105",
"country": "US"
},
"email_address": "john.doe@example.com",
"phone_number": "+1-555-123-4567",
"employment_status": "employed",
"purpose_of_account": [
"investing",
"storage_of_funds_or_digital_assets"
],
"source_of_wealth": [
"employment",
"savings"
],
"decision": "approved",
"decision_reason": "All verification checks passed",
"decision_by": "admin@dakota.xyz",
"decision_at": 1705315800,
"sumsub_verification": {
"applicant_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3b",
"provider_applicant_id": "65a1b2c3d4e5f6g7h8i9j0k1",
"entity_type": "individual",
"type": "individual",
"decision": "approved",
"decision_reason": "All verification checks passed",
"decision_by": "admin@dakota.xyz",
"decision_at": 1705315800,
"review": {
"review_id": "65a1b2c3d4e5f6g7h8i9j0k1",
"attempt_id": "65a1b2c3d4e5f6g7h8i9j0k2",
"attempt_cnt": 1,
"level_name": "basic-kyc-level",
"create_date": "2024-01-15T10:30:00Z",
"review_date": "2024-01-15T14:45:00Z",
"review_status": "completed",
"review_result": {
"review_answer": "GREEN",
"reject_labels": [
"DOCUMENT_TEMPLATE",
"FRAUDULENT_PATTERNS"
],
"reject_type": "FINAL",
"button_ids": [
"approve"
],
"moderation_comment": "All documents verified successfully",
"client_comment": "Approved for onboarding"
}
},
"risk_labels": {
"device": [
"EMULATOR",
"VPN"
],
"cross_check": [
"FAKE_ID",
"BLACKLIST"
],
"attempt_id": "65a1b2c3d4e5f6g7h8i9j0k2",
"created_at": "2024-01-15T10:30:00Z"
}
},
"roles": [
"ubo",
"control_person"
],
"ownership_percentage": 25.5,
"title": "CEO"
}
]
},
"edd": {
"account_usage_description": "Processing payments for e-commerce transactions",
"top_customer_countries": [
"US",
"GB",
"CA"
],
"is_token_issuer": false,
"will_conduct_token_sale": false,
"token_sale_amount_usd": 1000000,
"token_sale_availability": "Public sale to accredited investors",
"token_sale_registration_status": "Registered with SEC",
"is_regulated": true,
"unregulated_justification": "Operating in exempt category under local regulations",
"country_of_regulation": "US",
"regulatory_license_type": "Money Services Business (MSB)",
"verifies_customer_identity": true,
"has_transaction_monitoring": true,
"subject_to_aml_audits": true,
"last_audit_date": "2024-06-30",
"id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"business_id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"document_info": {
"uploaded_documents": [
{
"document_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3a",
"document_type": "passport",
"status": "uploaded",
"uploaded_at": "2025-01-15T10:30:00Z"
}
],
"missing_documents": [
{
"purpose": "business_formation",
"accepted_types": [
"articles_of_incorporation"
],
"description": "Articles of Incorporation or equivalent formation document"
}
]
},
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-01-15T14:45:00Z"
},
"attestations": {
"information_accuracy": {
"attested_at": "2024-01-17T15:30:00Z",
"attested_by": "John Doe"
},
"terms_of_service": {
"attested_at": "2024-01-17T15:30:00Z",
"attested_by": "John Doe"
},
"privacy_policy": {
"attested_at": "2024-01-17T15:30:00Z",
"attested_by": "John Doe"
},
"funds_transfer_agreement": {
"attested_at": "2024-01-17T15:30:00Z",
"attested_by": "John Doe"
},
"lead_bank_privacy_policy": {
"attested_at": "2024-01-17T15:30:00Z",
"attested_by": "John Doe"
},
"e_sign": {
"attested_at": "2024-01-17T15:30:00Z",
"attested_by": "John Doe"
}
},
"validation": {
"ready": false,
"status_message": "Waiting on: business documents, 2 individuals' documents, and attestations",
"business": {
"id": "2hCjxJzUAW6JVRkZqaF9E0KpM3b",
"ready": false,
"details": {
"ready": false,
"missing_fields": [
"legal_structure",
"date_of_incorporation",
"business_description"
]
},
"documents": {
"uploaded_documents": [
{
"document_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3a",
"document_type": "passport",
"status": "uploaded",
"uploaded_at": "2025-01-15T10:30:00Z"
}
],
"missing_documents": [
{
"purpose": "business_formation",
"accepted_types": [
"articles_of_incorporation"
],
"description": "Articles of Incorporation or equivalent formation document"
}
],
"ready": false
}
},
"primary_individual": {
"id": "2hCjxJzUAW6JVRkZqaF9E0KpM3b",
"ready": false,
"details": {
"ready": false,
"missing_fields": [
"email_address",
"date_of_birth"
]
},
"documents": {
"uploaded_documents": [
{
"document_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3a",
"document_type": "passport",
"status": "uploaded",
"uploaded_at": "2025-01-15T10:30:00Z"
}
],
"missing_documents": [
{
"purpose": "individual_identity",
"accepted_types": [
"passport",
"drivers_license_front"
],
"description": "Government-issued photo ID"
}
],
"ready": false
},
"individual_name": "John Doe"
},
"associated_individuals": [
{
"id": "2hCjxJzUAW6JVRkZqaF9E0KpM3b",
"ready": false,
"details": {
"ready": false,
"missing_fields": [
"email_address",
"date_of_birth"
]
},
"documents": {
"uploaded_documents": [
{
"document_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3a",
"document_type": "passport",
"status": "uploaded",
"uploaded_at": "2025-01-15T10:30:00Z"
}
],
"missing_documents": [
{
"purpose": "individual_identity",
"accepted_types": [
"passport",
"drivers_license_front"
],
"description": "Government-issued photo ID"
}
],
"ready": false
},
"individual_name": "John Doe"
}
],
"edd": {
"id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"required": true,
"ready": false,
"details": {
"ready": false,
"missing_fields": [
"legal_structure",
"date_of_incorporation",
"business_description"
]
},
"documents": {
"uploaded_documents": [
{
"document_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3a",
"document_type": "passport",
"status": "uploaded",
"uploaded_at": "2025-01-15T10:30:00Z"
}
],
"missing_documents": [
{
"purpose": "business_formation",
"accepted_types": [
"articles_of_incorporation"
],
"description": "Articles of Incorporation or equivalent formation document"
}
],
"ready": false
}
},
"attestations": {
"completed": [
{
"type": "information_accuracy",
"attested_at": "2024-01-17T15:30:00Z",
"attested_by": "John Doe"
}
],
"missing": [
"terms_of_service",
"privacy_policy"
]
}
},
"risk_rating": {
"score": 7,
"num_factors": 4,
"percentage": 62.5,
"level": "high",
"factors": [
{
"name": "country_risk",
"value": 3,
"level": "high",
"input": "US",
"description": "Country risk based on incorporation country",
"reason": "United States is a low-risk jurisdiction",
"prohibited": false
}
],
"edd_required": true,
"prohibited": false,
"prohibited_reason": "Sanctioned country",
"version": "v1",
"data_version": "2026-01-07",
"config": {
"threshold_low": 25,
"threshold_high": 50
},
"calculated_at": "2024-01-15T10:30:00Z"
}
}{
"code": "application_not_ready",
"application_id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"status_message": "Application cannot be submitted because some or all applicants haven't uploaded documents.",
"edd": {
"required": true,
"edd_id": "2KPQgUCj09jSdGSdYMqaS3Z3C8r",
"ready": false,
"document_info": {
"uploaded_documents": [
{
"document_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3a",
"document_type": "passport",
"status": "uploaded",
"uploaded_at": "2025-01-15T10:30:00Z"
}
],
"missing_documents": [
{
"purpose": "business_formation",
"accepted_types": [
"articles_of_incorporation"
],
"description": "Articles of Incorporation or equivalent formation document"
}
]
}
},
"incomplete_applicants": [
{
"applicant_type": "individual",
"applicant_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3a",
"legal_name": "Acme Corporation",
"first_name": "John",
"last_name": "Doe",
"ready": true,
"document_info": {
"uploaded_documents": [
{
"document_id": "2hCjxJzUAW6JVRkZqaF9E0KpM3a",
"document_type": "passport",
"status": "uploaded",
"uploaded_at": "2025-01-15T10:30:00Z"
}
],
"missing_documents": [
{
"purpose": "business_formation",
"accepted_types": [
"articles_of_incorporation"
],
"description": "Articles of Incorporation or equivalent formation document"
}
]
}
}
],
"missing_attestations": [
"information_accuracy",
"terms_of_service"
]
}{
"type": "https://docs.dakota.xyz/api-reference/errors#authentication-error",
"title": "Unauthorized",
"status": 401,
"detail": "Unauthorized",
"instance": "https://api.platform.dakota.xyz/applications/example-id/submissions",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"error": "insufficient_credits",
"message": "Insufficient credits to submit this application. Required 2500 cents, balance 500 cents.",
"required_cents": 2500,
"balance_cents": 500
}{
"type": "https://docs.dakota.xyz/api-reference/errors#forbidden",
"title": "Forbidden - application not owned by client",
"status": 403,
"detail": "Forbidden - application not owned by client",
"instance": "https://api.platform.dakota.xyz/applications/example-id/submissions",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Application not found",
"status": 404,
"detail": "Application not found",
"instance": "https://api.platform.dakota.xyz/applications/example-id/submissions",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#internal-error",
"title": "Unexpected error",
"status": 500,
"detail": "Unexpected error",
"instance": "https://api.platform.dakota.xyz/applications/example-id/submissions",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}Authorizations
Application-specific token for public URL access. Generated when a customer is created. Provides access to a single application without requiring an API key. Token is valid for 30 days and rate-limited to 250 requests per hour.
Headers
Unique key to ensure request idempotency. If the same key is used within a certain time window, the original response will be returned instead of executing the request again.
Path Parameters
The unique identifier for the application KSUID is a 27-character globally unique ID that combines a timestamp with a random component. Used for all entity identifiers in the Dakota platform.
27^[0-9A-Za-z]{27}$"1NFHrqBHb3cTfLVkFSGmHZqdDPi"
Response
Application submitted successfully
Application response with separated entity data and validation state
Unique application identifier
"2hCjxJzUAW6JVRkZqaF9E0KpM3a"
Type of application
business, individual "business"
Current status of the application
pending, submitted, under_review, request_for_information, admin_revision, approved, declined, completed, compliance_review "submitted"
When the application was created
"2024-01-15T10:30:00Z"
When the application was last updated
"2024-01-16T14:45:00Z"
When the application was submitted (null if not yet submitted)
"2024-01-17T16:00:00Z"
Decision outcome for the application (only present after decision is made). Note: auto_declined is mapped to declined in the API response.
approved, declined, withdrawn "approved"
How the decision was reached: 'manual' for operator-driven decisions, 'auto' for automated approvals, 'override' reserved for future escalation. Null if no decision has been made.
manual, auto, override "manual"
Version identifier of the rule set that produced an automated decision. Null for manual decisions or when no decision has been made.
"v1.2"
The people/businesses being onboarded
Show child attributes
Show child attributes
Enhanced Due Diligence data (if provided)
Show child attributes
Show child attributes
Attestations submitted for this application
Show child attributes
Show child attributes
Validation state computed at retrieval time
Show child attributes
Show child attributes
Risk rating. Present for users with compliance review-data access (compliance, compliance_admin, superadmin).
Show child attributes
Show child attributes
Tracks the review state of the Proof of Address for individual applications. Null for business applications and for non-primary-individual rows.
missing— No Proof of Address has been submitted. The individual is subject to the $3,000 USD-equivalent rolling 7-day transaction limit.submitted_pending_review— A PoA-equivalent document (proof_of_address, bank_statement, or utility_bill) has been uploaded and is awaiting compliance review. The individual remains subject to the transaction limit until the review concludes.approved— The Proof of Address has been reviewed and approved. The individual is exempt from the $3,000 / 7-day rolling transaction threshold.rejected— The submitted Proof of Address was rejected. The individual remains subject to the transaction limit and may re-upload a new document.
missing, submitted_pending_review, approved, rejected "missing"
Whether the customer's KYB is currently frozen (transactions held pending proof-of-address review). The authoritative source for the reviewer freeze badge. Present (true/false) only for individual applications; absent for business applications.
true
When the customer entered the current frozen state, from the KYB status-change log. Drives the days-frozen counter accurately (unlike application_updated_at, which unrelated edits bump). Null when the customer is not currently frozen, or when the freeze predates the status-change log.
"2024-01-16T14:45:00Z"
Whether the customer has an approved Proof of Address on file (and is therefore exempt from the transaction-volume limit). Present only for individual applications; absent for business applications.
false
The compliance reviewer this application is assigned to (its owner). Absent when unassigned.
Show child attributes
Show child attributes
Epoch seconds when the application was assigned to its current owner. Absent/null when unassigned.
1717423200
Outstanding partner disclosure attestations the customer must accept to unlock a partner-gated capability (e.g. international wires), surfaced so the hosted onboarding flow can present them in the same attestations UI used for first-party attestations. Partner-agnostic: each item is keyed by an opaque terms key + version, never a partner identifier. Only present (and only computed) for an already-decided (approved) application that has outstanding partner onboarding — this is the re-engagement surface for an existing customer who lands on the hosted flow via their application_url. Empty/absent when nothing is outstanding or the partner declaration is unavailable. Accept each by POSTing to /applications/{id}/attestations with disclosure_id = key and disclosure_version = version.
Show child attributes
Show child attributes
Was this page helpful?

