curl --request GET \
--url https://api.platform.sandbox.dakota.xyz/cardholders/{cardholder_id}/application \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.platform.sandbox.dakota.xyz/cardholders/{cardholder_id}/application', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.platform.sandbox.dakota.xyz/cardholders/{cardholder_id}/application"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.platform.sandbox.dakota.xyz/cardholders/{cardholder_id}/application"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"cardholder_id": "31TgvufZK3gDXBcA3BnSeLWiSn7",
"status": "request_for_information",
"requested_information": [
{
"id": "req_01HQ8XZ2M4N5P6R7S8T9V0W1X3",
"type": "document",
"description": "A government-issued photo ID for the cardholder.",
"status": "missing"
}
],
"created_at": 1758211200,
"updated_at": 1758211260
}{
"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#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#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"
}Get a cardholder's application
Get the enrollment application behind a cardholder: its review state, and anything a reviewer is currently waiting on.
Most enrollments are approved automatically within seconds and never need this endpoint. Read it when a cardholder is in under_review or request_for_information, or when you receive a cardholder.information_requested webhook.
curl --request GET \
--url https://api.platform.sandbox.dakota.xyz/cardholders/{cardholder_id}/application \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.platform.sandbox.dakota.xyz/cardholders/{cardholder_id}/application', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.platform.sandbox.dakota.xyz/cardholders/{cardholder_id}/application"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.platform.sandbox.dakota.xyz/cardholders/{cardholder_id}/application"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"cardholder_id": "31TgvufZK3gDXBcA3BnSeLWiSn7",
"status": "request_for_information",
"requested_information": [
{
"id": "req_01HQ8XZ2M4N5P6R7S8T9V0W1X3",
"type": "document",
"description": "A government-issued photo ID for the cardholder.",
"status": "missing"
}
],
"created_at": 1758211200,
"updated_at": 1758211260
}{
"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#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#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"
}Authorizations
Path Parameters
The cardholder's ID. 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
The cardholder's application.
The enrollment application behind a cardholder: its review state and anything a reviewer is currently waiting on.
The application status is narrower than the cardholder status — it describes only the review outcome, so it never carries lifecycle states like suspended or closed.
A suspended cardholder reads submitted, not approved: a cardholder may be suspended while still mid-onboarding, so suspension is not evidence that the enrollment was ever approved. Treat submitted there as "no decision is being asserted" rather than as proof the review is still running.
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"
State of the enrollment review. submitted means screening is in progress, which on the clean path lasts seconds. under_review means a reviewer holds it, request_for_information means a reviewer needs something from you, and approved and declined are terminal.
submitted, under_review, request_for_information, approved, declined "approved"
Everything a reviewer is currently waiting on. Empty unless the application is in request_for_information.
Note: the cardholder review pipeline is not yet enabled, so this array is currently always empty. Treat an empty array as "nothing is being requested through this channel", not as proof that a review has completed — read status for that.
Show child attributes
Show child attributes
[]
Unix timestamp (seconds). Mirrors the cardholder record while the review pipeline is not yet enabled — there is no separate application record to date yet.
Unix timestamp (seconds). Mirrors the cardholder record, so it moves on any cardholder change (a contact edit, for example) and is not a reliable signal that the review state changed. Read status for review progress.
Was this page helpful?

