curl --request PUT \
--url https://api.platform.dakota.xyz/applications/{application_id}/edd \
--header 'Content-Type: application/json' \
--header 'X-Application-Token: <api-key>' \
--header 'x-idempotency-key: <x-idempotency-key>' \
--data '
{
"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"
}
'const options = {
method: 'PUT',
headers: {
'x-idempotency-key': '<x-idempotency-key>',
'X-Application-Token': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
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'
})
};
fetch('https://api.platform.dakota.xyz/applications/{application_id}/edd', 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}/edd"
payload = {
"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"
}
headers = {
"x-idempotency-key": "<x-idempotency-key>",
"X-Application-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.platform.dakota.xyz/applications/{application_id}/edd"
payload := strings.NewReader("{\n \"account_usage_description\": \"Processing payments for e-commerce transactions\",\n \"top_customer_countries\": [\n \"US\",\n \"GB\",\n \"CA\"\n ],\n \"is_token_issuer\": false,\n \"will_conduct_token_sale\": false,\n \"token_sale_amount_usd\": 1000000,\n \"token_sale_availability\": \"Public sale to accredited investors\",\n \"token_sale_registration_status\": \"Registered with SEC\",\n \"is_regulated\": true,\n \"unregulated_justification\": \"Operating in exempt category under local regulations\",\n \"country_of_regulation\": \"US\",\n \"regulatory_license_type\": \"Money Services Business (MSB)\",\n \"verifies_customer_identity\": true,\n \"has_transaction_monitoring\": true,\n \"subject_to_aml_audits\": true,\n \"last_audit_date\": \"2024-06-30\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-idempotency-key", "<x-idempotency-key>")
req.Header.Add("X-Application-Token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"application_id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"application_status": "pending",
"application_decision": "approved",
"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"
}
}{
"type": "https://docs.dakota.xyz/api-reference/errors#invalid-request",
"title": "Invalid request or validation failed",
"status": 400,
"detail": "Invalid request or validation failed",
"instance": "https://api.platform.dakota.xyz/applications/example-id/edd",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"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/edd",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#forbidden",
"title": "Forbidden",
"status": 403,
"detail": "Forbidden",
"instance": "https://api.platform.dakota.xyz/applications/example-id/edd",
"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/edd",
"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/edd",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}Create or update EDD record
Creates or updates the Enhanced Due Diligence (EDD) record for an application. This endpoint is idempotent and should be used when EDD is required for the application.
Authentication: Accepts Application Token (X-Application-Token header).
curl --request PUT \
--url https://api.platform.dakota.xyz/applications/{application_id}/edd \
--header 'Content-Type: application/json' \
--header 'X-Application-Token: <api-key>' \
--header 'x-idempotency-key: <x-idempotency-key>' \
--data '
{
"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"
}
'const options = {
method: 'PUT',
headers: {
'x-idempotency-key': '<x-idempotency-key>',
'X-Application-Token': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
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'
})
};
fetch('https://api.platform.dakota.xyz/applications/{application_id}/edd', 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}/edd"
payload = {
"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"
}
headers = {
"x-idempotency-key": "<x-idempotency-key>",
"X-Application-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.platform.dakota.xyz/applications/{application_id}/edd"
payload := strings.NewReader("{\n \"account_usage_description\": \"Processing payments for e-commerce transactions\",\n \"top_customer_countries\": [\n \"US\",\n \"GB\",\n \"CA\"\n ],\n \"is_token_issuer\": false,\n \"will_conduct_token_sale\": false,\n \"token_sale_amount_usd\": 1000000,\n \"token_sale_availability\": \"Public sale to accredited investors\",\n \"token_sale_registration_status\": \"Registered with SEC\",\n \"is_regulated\": true,\n \"unregulated_justification\": \"Operating in exempt category under local regulations\",\n \"country_of_regulation\": \"US\",\n \"regulatory_license_type\": \"Money Services Business (MSB)\",\n \"verifies_customer_identity\": true,\n \"has_transaction_monitoring\": true,\n \"subject_to_aml_audits\": true,\n \"last_audit_date\": \"2024-06-30\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-idempotency-key", "<x-idempotency-key>")
req.Header.Add("X-Application-Token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"application_id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"application_status": "pending",
"application_decision": "approved",
"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"
}
}{
"type": "https://docs.dakota.xyz/api-reference/errors#invalid-request",
"title": "Invalid request or validation failed",
"status": 400,
"detail": "Invalid request or validation failed",
"instance": "https://api.platform.dakota.xyz/applications/example-id/edd",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"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/edd",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#forbidden",
"title": "Forbidden",
"status": 403,
"detail": "Forbidden",
"instance": "https://api.platform.dakota.xyz/applications/example-id/edd",
"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/edd",
"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/edd",
"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"
Body
Request to create or update an Enhanced Due Diligence (EDD) record
Required description of how the account will be used
"Processing payments for e-commerce transactions"
List of countries where the majority of customers are located
ISO 3166-1 alpha-2 country code
2["US", "GB", "CA"]
Whether the business issues tokens
false
Whether the business will conduct a token sale
false
Amount to be raised in token sale (USD)
1000000
Description of token sale availability
"Public sale to accredited investors"
Registration status with relevant authorities
"Registered with SEC"
Whether the business is regulated by financial authorities
true
Justification for why the business is not regulated (required if is_regulated=false)
"Operating in exempt category under local regulations"
ISO 3166-1 alpha-2 country code where the business is regulated
2"US"
Type of regulatory license held (required if is_regulated=true)
"Money Services Business (MSB)"
Whether the business verifies customer identity (KYC)
true
Whether the business has transaction monitoring in place
true
Whether the business is subject to AML audits
true
Date of the last AML audit in YYYY-MM-DD format
"2024-06-30"
Response
EDD record created or updated successfully
Response containing EDD data with application context
The application ID
27^[0-9A-Za-z]{27}$"1NFHrqBHb3cTfLVkFSGmHZqdDPi"
Current status of the application
pending, submitted, under_review, request_for_information, admin_revision, approved, declined, completed, compliance_review, closed "submitted"
Decision outcome (if any)
approved, declined, withdrawn The EDD data
Show child attributes
Show child attributes
Was this page helpful?

