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": "CA",
"postal_code": "94105",
"country": "US"
},
"operating_address": {
"street1": "123 Main St",
"street2": "Apt 4B",
"street3": "Building C",
"city": "San Francisco",
"region": "CA",
"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": "CA",
"postal_code": "94105",
"country": "US"
},
"email_address": "john.doe@acme.com",
"phone_number": "+14155550123",
"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": "CA",
"postal_code": "94105",
"country": "US"
},
"email_address": "john.doe@acme.com",
"phone_number": "+14155550123",
"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": {
"ready": false,
"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#not-found",
"title": "Customer Not Found",
"status": 404,
"detail": "Customer cst_2abc123 was not found in your organization.",
"instance": "https://api.platform.dakota.xyz/customers/cst_2abc123",
"request_id": "req_7f3a8b2c"
}{
"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.
While the application has an open request for information (rfi_status is
information_requested), submitting hands the application back to the reviewer instead
of verifying it again, and only once that request is answered. Until then it returns 400
and detail lists what is still missing. A request with questions is answered with
POST /applications/{id}/rfi/resubmit; every document the request names must be uploaded
again first.
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": "CA",
"postal_code": "94105",
"country": "US"
},
"operating_address": {
"street1": "123 Main St",
"street2": "Apt 4B",
"street3": "Building C",
"city": "San Francisco",
"region": "CA",
"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": "CA",
"postal_code": "94105",
"country": "US"
},
"email_address": "john.doe@acme.com",
"phone_number": "+14155550123",
"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": "CA",
"postal_code": "94105",
"country": "US"
},
"email_address": "john.doe@acme.com",
"phone_number": "+14155550123",
"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": {
"ready": false,
"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#not-found",
"title": "Customer Not Found",
"status": 404,
"detail": "Customer cst_2abc123 was not found in your organization.",
"instance": "https://api.platform.dakota.xyz/customers/cst_2abc123",
"request_id": "req_7f3a8b2c"
}{
"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 90 days and rate-limited to 250 requests per hour.
Headers
Unique key (UUID) to ensure request idempotency on POST, PUT and PATCH requests.
A key is scoped to your client, the HTTP method and the path, and is remembered for 24 hours after a
successful (below 400) response. Repeating the same request (same JSON body, whatever the key order or
whitespace) with the same key within that window returns the original response with
X-Idempotent-Replayed: true instead of executing the request again. Using the same key on the same
endpoint with a different body returns 422 with problem type idempotency-key-reused; the request is
not executed. Error responses (4xx and 5xx) are not remembered, so a request refused for a fixable reason
can be corrected and retried under the same key. Request bodies that are not JSON (for example file
uploads) are not compared.
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, closed "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"
Reviewer-selected resubmission scope for an RFI.
Show child attributes
Show child attributes
Whether the applicant has already submitted in response to the latest scoped RFI (drives the resubmit page's "already submitted" state).
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"
The category of the decline, when application_decision is
declined and a category was recorded. Omitted otherwise. This is
the one decision detail the applicant-token read returns.
unsupported_region, prohibited_country, prohibited_business_type, other "prohibited_country"
The fixed applicant-facing sentence for decline_reason. Present
exactly when decline_reason is.
"The applicant is located in a country Dakota does not support."
The people/businesses being onboarded. The per-entity
decision_reason and decision_by are compliance-facing and are
omitted for callers without compliance review permission (the
applicant-token read).
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. Only present for compliance reviewers; absent for business applications, for non-primary-individual rows, and on the token-authenticated hosted onboarding flow.
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). Absent when the customer is not currently frozen, when the freeze predates the status-change log, or for callers without compliance review access.
"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
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?

