Deprecated: use new /flow api instead. Creates a new checkout config for the specified environment.
POST
/
environments
/
{environmentId}
/
checkouts
Create a checkout
curl --request POST \
--url https://app.dynamicauth.com/api/v0/environments/{environmentId}/checkouts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"settlementConfig": {
"settlements": [
{
"tokenAddress": "An example name",
"chainId": "An example name",
"symbol": "An example name",
"tokenDecimals": 18,
"isNative": true
}
]
},
"destinationConfig": {
"destinations": [
{
"type": "address",
"identifier": "An example name"
}
]
},
"depositConfig": {
"minimum": "<string>",
"presets": [
"<string>"
]
},
"enableOrchestration": true
}
'import requests
url = "https://app.dynamicauth.com/api/v0/environments/{environmentId}/checkouts"
payload = {
"settlementConfig": { "settlements": [
{
"tokenAddress": "An example name",
"chainId": "An example name",
"symbol": "An example name",
"tokenDecimals": 18,
"isNative": True
}
] },
"destinationConfig": { "destinations": [
{
"type": "address",
"identifier": "An example name"
}
] },
"depositConfig": {
"minimum": "<string>",
"presets": ["<string>"]
},
"enableOrchestration": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
settlementConfig: {
settlements: [
{
tokenAddress: 'An example name',
chainId: 'An example name',
symbol: 'An example name',
tokenDecimals: 18,
isNative: true
}
]
},
destinationConfig: {destinations: [{type: 'address', identifier: 'An example name'}]},
depositConfig: {minimum: '<string>', presets: ['<string>']},
enableOrchestration: true
})
};
fetch('https://app.dynamicauth.com/api/v0/environments/{environmentId}/checkouts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.dynamicauth.com/api/v0/environments/{environmentId}/checkouts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'settlementConfig' => [
'settlements' => [
[
'tokenAddress' => 'An example name',
'chainId' => 'An example name',
'symbol' => 'An example name',
'tokenDecimals' => 18,
'isNative' => true
]
]
],
'destinationConfig' => [
'destinations' => [
[
'type' => 'address',
'identifier' => 'An example name'
]
]
],
'depositConfig' => [
'minimum' => '<string>',
'presets' => [
'<string>'
]
],
'enableOrchestration' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.dynamicauth.com/api/v0/environments/{environmentId}/checkouts"
payload := strings.NewReader("{\n \"settlementConfig\": {\n \"settlements\": [\n {\n \"tokenAddress\": \"An example name\",\n \"chainId\": \"An example name\",\n \"symbol\": \"An example name\",\n \"tokenDecimals\": 18,\n \"isNative\": true\n }\n ]\n },\n \"destinationConfig\": {\n \"destinations\": [\n {\n \"type\": \"address\",\n \"identifier\": \"An example name\"\n }\n ]\n },\n \"depositConfig\": {\n \"minimum\": \"<string>\",\n \"presets\": [\n \"<string>\"\n ]\n },\n \"enableOrchestration\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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))
}HttpResponse<String> response = Unirest.post("https://app.dynamicauth.com/api/v0/environments/{environmentId}/checkouts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"settlementConfig\": {\n \"settlements\": [\n {\n \"tokenAddress\": \"An example name\",\n \"chainId\": \"An example name\",\n \"symbol\": \"An example name\",\n \"tokenDecimals\": 18,\n \"isNative\": true\n }\n ]\n },\n \"destinationConfig\": {\n \"destinations\": [\n {\n \"type\": \"address\",\n \"identifier\": \"An example name\"\n }\n ]\n },\n \"depositConfig\": {\n \"minimum\": \"<string>\",\n \"presets\": [\n \"<string>\"\n ]\n },\n \"enableOrchestration\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.dynamicauth.com/api/v0/environments/{environmentId}/checkouts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"settlementConfig\": {\n \"settlements\": [\n {\n \"tokenAddress\": \"An example name\",\n \"chainId\": \"An example name\",\n \"symbol\": \"An example name\",\n \"tokenDecimals\": 18,\n \"isNative\": true\n }\n ]\n },\n \"destinationConfig\": {\n \"destinations\": [\n {\n \"type\": \"address\",\n \"identifier\": \"An example name\"\n }\n ]\n },\n \"depositConfig\": {\n \"minimum\": \"<string>\",\n \"presets\": [\n \"<string>\"\n ]\n },\n \"enableOrchestration\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"settlementConfig": {
"settlements": [
{
"tokenAddress": "An example name",
"chainId": "An example name",
"symbol": "An example name",
"tokenDecimals": 18,
"isNative": true
}
]
},
"enableOrchestration": true,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"destinationConfig": {
"destinations": [
{
"type": "address",
"identifier": "An example name"
}
]
},
"depositConfig": {
"minimum": "<string>",
"presets": [
"<string>"
]
}
}{
"error": "<string>"
}{
"error": "No jwt provided!"
}{
"error": "Access Forbidden"
}{
"error": "Resources already exists for this Object",
"payload": {
"email": "joe@email.com",
"embeddedWalletName": "<string>",
"mergeConflicts": {
"fromUser": {
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"projectEnvironmentId": "95b11417-f18f-457f-8804-68e361f9164f",
"verifiedCredentials": [
{
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"signInEnabled": true,
"address": "0xbF394748301603f18d953C90F0b087CBEC0E1834",
"chain": "<string>",
"refId": "95b11417-f18f-457f-8804-68e361f9164f",
"signerRefId": "95b11417-f18f-457f-8804-68e361f9164f",
"email": "jsmith@example.com",
"name_service": {
"avatar": "<string>",
"name": "<string>"
},
"public_identifier": "<string>",
"wallet_name": "<string>",
"wallet_properties": {
"turnkeySubOrganizationId": "95b11417-f18f-457f-8804-68e361f9164f",
"turnkeyPrivateKeyId": "95b11417-f18f-457f-8804-68e361f9164f",
"turnkeyHDWalletId": "95b11417-f18f-457f-8804-68e361f9164f",
"isAuthenticatorAttached": true,
"turnkeyUserId": "95b11417-f18f-457f-8804-68e361f9164f",
"isSessionKeyCompatible": true
},
"business_account_properties": {
"businessAccountId": "95b11417-f18f-457f-8804-68e361f9164f",
"businessAccountCreatedAt": "2023-11-07T05:31:56Z",
"businessAccountSignerId": "95b11417-f18f-457f-8804-68e361f9164f",
"businessAccountName": "<string>",
"businessAccountExternalRef": "<string>"
},
"oauth_username": "<string>",
"oauth_display_name": "<string>",
"oauth_account_id": "<string>",
"phoneNumber": "9171113333",
"phoneCountryCode": "1",
"isoCountryCode": "US",
"oauth_account_photos": [
"<string>"
],
"oauth_emails": [
"<string>"
],
"oauth_metadata": {},
"previous_users": [
"95b11417-f18f-457f-8804-68e361f9164f"
],
"embedded_wallet_id": "<string>",
"wallet_additional_addresses": [
{
"address": "<string>",
"publicKey": "<string>",
"network": "<string>"
}
],
"lastSelectedAt": "2023-11-07T05:31:56Z",
"verifiedAt": "2023-11-07T05:31:56Z"
}
],
"lastVerifiedCredentialId": "95b11417-f18f-457f-8804-68e361f9164f",
"sessionId": "95b11417-f18f-457f-8804-68e361f9164f",
"alias": "An example name",
"country": "US",
"email": "jsmith@example.com",
"firstName": "An example name",
"jobTitle": "An example name",
"lastName": "An example name",
"phoneNumber": "<string>",
"policiesConsent": true,
"tShirtSize": "An example name",
"team": "An example name",
"username": "An example name",
"firstVisit": "2023-11-07T05:31:56Z",
"lastVisit": "2023-11-07T05:31:56Z",
"newUser": true,
"metadata": {},
"btcWallet": "<string>",
"kdaWallet": "<string>",
"ltcWallet": "<string>",
"ckbWallet": "<string>",
"kasWallet": "<string>",
"dogeWallet": "<string>",
"emailNotification": true,
"discordNotification": true,
"newsletterNotification": true,
"lists": [
"<string>"
],
"scope": "superuser marketing operations",
"missingFields": [
{
"name": "<string>",
"required": true,
"enabled": true,
"unique": true,
"verify": true,
"validationRules": {
"unique": true,
"regex": "^0x",
"validOptions": [
{
"label": "small"
},
{
"label": "medium"
},
{
"label": "large"
}
],
"checkboxText": "Agree to the terms and conditions"
},
"label": "<string>",
"position": 123
}
]
},
"conflicts": [
{
"field": {
"name": "<string>",
"required": true,
"enabled": true,
"unique": true,
"verify": true,
"validationRules": {
"unique": true,
"regex": "^0x",
"validOptions": [
{
"label": "small"
},
{
"label": "medium"
},
{
"label": "large"
}
],
"checkboxText": "Agree to the terms and conditions"
},
"label": "<string>",
"position": 123
},
"fromUser": {
"userId": "95b11417-f18f-457f-8804-68e361f9164f",
"value": "An example name"
},
"currentUser": {
"userId": "95b11417-f18f-457f-8804-68e361f9164f",
"value": "An example name"
}
}
]
},
"additionalMessages": [
"<string>"
]
}
}{
"error": "Internal Server Error"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
ID of the environment
Required string length:
36Pattern:
^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$Example:
"95b11417-f18f-457f-8804-68e361f9164f"
Body
application/json
Response
Checkout created successfully
Required string length:
36Pattern:
^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$Example:
"95b11417-f18f-457f-8804-68e361f9164f"
Available options:
payment, deposit Show child attributes
Show child attributes
Whether Dynamic handles quote optimization, fee collection, and fund settlement automatically
ISO 8601 timestamp of when the checkout was created
ISO 8601 timestamp of when the checkout was last updated
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Last modified on July 24, 2026
Was this page helpful?
⌘I
Create a checkout
curl --request POST \
--url https://app.dynamicauth.com/api/v0/environments/{environmentId}/checkouts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"settlementConfig": {
"settlements": [
{
"tokenAddress": "An example name",
"chainId": "An example name",
"symbol": "An example name",
"tokenDecimals": 18,
"isNative": true
}
]
},
"destinationConfig": {
"destinations": [
{
"type": "address",
"identifier": "An example name"
}
]
},
"depositConfig": {
"minimum": "<string>",
"presets": [
"<string>"
]
},
"enableOrchestration": true
}
'import requests
url = "https://app.dynamicauth.com/api/v0/environments/{environmentId}/checkouts"
payload = {
"settlementConfig": { "settlements": [
{
"tokenAddress": "An example name",
"chainId": "An example name",
"symbol": "An example name",
"tokenDecimals": 18,
"isNative": True
}
] },
"destinationConfig": { "destinations": [
{
"type": "address",
"identifier": "An example name"
}
] },
"depositConfig": {
"minimum": "<string>",
"presets": ["<string>"]
},
"enableOrchestration": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
settlementConfig: {
settlements: [
{
tokenAddress: 'An example name',
chainId: 'An example name',
symbol: 'An example name',
tokenDecimals: 18,
isNative: true
}
]
},
destinationConfig: {destinations: [{type: 'address', identifier: 'An example name'}]},
depositConfig: {minimum: '<string>', presets: ['<string>']},
enableOrchestration: true
})
};
fetch('https://app.dynamicauth.com/api/v0/environments/{environmentId}/checkouts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.dynamicauth.com/api/v0/environments/{environmentId}/checkouts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'settlementConfig' => [
'settlements' => [
[
'tokenAddress' => 'An example name',
'chainId' => 'An example name',
'symbol' => 'An example name',
'tokenDecimals' => 18,
'isNative' => true
]
]
],
'destinationConfig' => [
'destinations' => [
[
'type' => 'address',
'identifier' => 'An example name'
]
]
],
'depositConfig' => [
'minimum' => '<string>',
'presets' => [
'<string>'
]
],
'enableOrchestration' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.dynamicauth.com/api/v0/environments/{environmentId}/checkouts"
payload := strings.NewReader("{\n \"settlementConfig\": {\n \"settlements\": [\n {\n \"tokenAddress\": \"An example name\",\n \"chainId\": \"An example name\",\n \"symbol\": \"An example name\",\n \"tokenDecimals\": 18,\n \"isNative\": true\n }\n ]\n },\n \"destinationConfig\": {\n \"destinations\": [\n {\n \"type\": \"address\",\n \"identifier\": \"An example name\"\n }\n ]\n },\n \"depositConfig\": {\n \"minimum\": \"<string>\",\n \"presets\": [\n \"<string>\"\n ]\n },\n \"enableOrchestration\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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))
}HttpResponse<String> response = Unirest.post("https://app.dynamicauth.com/api/v0/environments/{environmentId}/checkouts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"settlementConfig\": {\n \"settlements\": [\n {\n \"tokenAddress\": \"An example name\",\n \"chainId\": \"An example name\",\n \"symbol\": \"An example name\",\n \"tokenDecimals\": 18,\n \"isNative\": true\n }\n ]\n },\n \"destinationConfig\": {\n \"destinations\": [\n {\n \"type\": \"address\",\n \"identifier\": \"An example name\"\n }\n ]\n },\n \"depositConfig\": {\n \"minimum\": \"<string>\",\n \"presets\": [\n \"<string>\"\n ]\n },\n \"enableOrchestration\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.dynamicauth.com/api/v0/environments/{environmentId}/checkouts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"settlementConfig\": {\n \"settlements\": [\n {\n \"tokenAddress\": \"An example name\",\n \"chainId\": \"An example name\",\n \"symbol\": \"An example name\",\n \"tokenDecimals\": 18,\n \"isNative\": true\n }\n ]\n },\n \"destinationConfig\": {\n \"destinations\": [\n {\n \"type\": \"address\",\n \"identifier\": \"An example name\"\n }\n ]\n },\n \"depositConfig\": {\n \"minimum\": \"<string>\",\n \"presets\": [\n \"<string>\"\n ]\n },\n \"enableOrchestration\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"settlementConfig": {
"settlements": [
{
"tokenAddress": "An example name",
"chainId": "An example name",
"symbol": "An example name",
"tokenDecimals": 18,
"isNative": true
}
]
},
"enableOrchestration": true,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"destinationConfig": {
"destinations": [
{
"type": "address",
"identifier": "An example name"
}
]
},
"depositConfig": {
"minimum": "<string>",
"presets": [
"<string>"
]
}
}{
"error": "<string>"
}{
"error": "No jwt provided!"
}{
"error": "Access Forbidden"
}{
"error": "Resources already exists for this Object",
"payload": {
"email": "joe@email.com",
"embeddedWalletName": "<string>",
"mergeConflicts": {
"fromUser": {
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"projectEnvironmentId": "95b11417-f18f-457f-8804-68e361f9164f",
"verifiedCredentials": [
{
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"signInEnabled": true,
"address": "0xbF394748301603f18d953C90F0b087CBEC0E1834",
"chain": "<string>",
"refId": "95b11417-f18f-457f-8804-68e361f9164f",
"signerRefId": "95b11417-f18f-457f-8804-68e361f9164f",
"email": "jsmith@example.com",
"name_service": {
"avatar": "<string>",
"name": "<string>"
},
"public_identifier": "<string>",
"wallet_name": "<string>",
"wallet_properties": {
"turnkeySubOrganizationId": "95b11417-f18f-457f-8804-68e361f9164f",
"turnkeyPrivateKeyId": "95b11417-f18f-457f-8804-68e361f9164f",
"turnkeyHDWalletId": "95b11417-f18f-457f-8804-68e361f9164f",
"isAuthenticatorAttached": true,
"turnkeyUserId": "95b11417-f18f-457f-8804-68e361f9164f",
"isSessionKeyCompatible": true
},
"business_account_properties": {
"businessAccountId": "95b11417-f18f-457f-8804-68e361f9164f",
"businessAccountCreatedAt": "2023-11-07T05:31:56Z",
"businessAccountSignerId": "95b11417-f18f-457f-8804-68e361f9164f",
"businessAccountName": "<string>",
"businessAccountExternalRef": "<string>"
},
"oauth_username": "<string>",
"oauth_display_name": "<string>",
"oauth_account_id": "<string>",
"phoneNumber": "9171113333",
"phoneCountryCode": "1",
"isoCountryCode": "US",
"oauth_account_photos": [
"<string>"
],
"oauth_emails": [
"<string>"
],
"oauth_metadata": {},
"previous_users": [
"95b11417-f18f-457f-8804-68e361f9164f"
],
"embedded_wallet_id": "<string>",
"wallet_additional_addresses": [
{
"address": "<string>",
"publicKey": "<string>",
"network": "<string>"
}
],
"lastSelectedAt": "2023-11-07T05:31:56Z",
"verifiedAt": "2023-11-07T05:31:56Z"
}
],
"lastVerifiedCredentialId": "95b11417-f18f-457f-8804-68e361f9164f",
"sessionId": "95b11417-f18f-457f-8804-68e361f9164f",
"alias": "An example name",
"country": "US",
"email": "jsmith@example.com",
"firstName": "An example name",
"jobTitle": "An example name",
"lastName": "An example name",
"phoneNumber": "<string>",
"policiesConsent": true,
"tShirtSize": "An example name",
"team": "An example name",
"username": "An example name",
"firstVisit": "2023-11-07T05:31:56Z",
"lastVisit": "2023-11-07T05:31:56Z",
"newUser": true,
"metadata": {},
"btcWallet": "<string>",
"kdaWallet": "<string>",
"ltcWallet": "<string>",
"ckbWallet": "<string>",
"kasWallet": "<string>",
"dogeWallet": "<string>",
"emailNotification": true,
"discordNotification": true,
"newsletterNotification": true,
"lists": [
"<string>"
],
"scope": "superuser marketing operations",
"missingFields": [
{
"name": "<string>",
"required": true,
"enabled": true,
"unique": true,
"verify": true,
"validationRules": {
"unique": true,
"regex": "^0x",
"validOptions": [
{
"label": "small"
},
{
"label": "medium"
},
{
"label": "large"
}
],
"checkboxText": "Agree to the terms and conditions"
},
"label": "<string>",
"position": 123
}
]
},
"conflicts": [
{
"field": {
"name": "<string>",
"required": true,
"enabled": true,
"unique": true,
"verify": true,
"validationRules": {
"unique": true,
"regex": "^0x",
"validOptions": [
{
"label": "small"
},
{
"label": "medium"
},
{
"label": "large"
}
],
"checkboxText": "Agree to the terms and conditions"
},
"label": "<string>",
"position": 123
},
"fromUser": {
"userId": "95b11417-f18f-457f-8804-68e361f9164f",
"value": "An example name"
},
"currentUser": {
"userId": "95b11417-f18f-457f-8804-68e361f9164f",
"value": "An example name"
}
}
]
},
"additionalMessages": [
"<string>"
]
}
}{
"error": "Internal Server Error"
}