curl --request PUT \
--url https://api.platform.dakota.xyz/recipients/{recipient_id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--header 'x-idempotency-key: <x-idempotency-key>' \
--data '
{
"name": "Acme Corporation",
"address": {
"street1": "123 Main St",
"street2": "Apt 4B",
"street3": "Building C",
"city": "San Francisco",
"region": "California",
"postal_code": "94105",
"country": "US"
}
}
'const options = {
method: 'PUT',
headers: {
'x-idempotency-key': '<x-idempotency-key>',
'x-api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'Acme Corporation',
address: {
street1: '123 Main St',
street2: 'Apt 4B',
street3: 'Building C',
city: 'San Francisco',
region: 'California',
postal_code: '94105',
country: 'US'
}
})
};
fetch('https://api.platform.dakota.xyz/recipients/{recipient_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.platform.dakota.xyz/recipients/{recipient_id}"
payload = {
"name": "Acme Corporation",
"address": {
"street1": "123 Main St",
"street2": "Apt 4B",
"street3": "Building C",
"city": "San Francisco",
"region": "California",
"postal_code": "94105",
"country": "US"
}
}
headers = {
"x-idempotency-key": "<x-idempotency-key>",
"x-api-key": "<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/recipients/{recipient_id}"
payload := strings.NewReader("{\n \"name\": \"Acme Corporation\",\n \"address\": {\n \"street1\": \"123 Main St\",\n \"street2\": \"Apt 4B\",\n \"street3\": \"Building C\",\n \"city\": \"San Francisco\",\n \"region\": \"California\",\n \"postal_code\": \"94105\",\n \"country\": \"US\"\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-idempotency-key", "<x-idempotency-key>")
req.Header.Add("x-api-key", "<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))
}{
"id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"name": "Acme Corporation",
"address": {
"street1": "123 Main St",
"street2": "Apt 4B",
"street3": "Building C",
"city": "San Francisco",
"region": "California",
"postal_code": "94105",
"country": "US"
},
"status": "active",
"destinations": [
{
"destination_id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"destination_type": "crypto",
"name": "My Ethereum Wallet",
"crypto_address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"family": "evm",
"network_id": "ethereum-mainnet"
}
]
}{
"type": "https://docs.dakota.xyz/api-reference/errors#invalid-request",
"title": "Invalid request",
"status": 400,
"detail": "Invalid request",
"instance": "https://api.platform.dakota.xyz/recipients/example-id",
"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/recipients/example-id",
"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/recipients/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Not found",
"status": 404,
"detail": "Not found",
"instance": "https://api.platform.dakota.xyz/recipients/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}Update a recipient
Update a recipient’s details
curl --request PUT \
--url https://api.platform.dakota.xyz/recipients/{recipient_id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--header 'x-idempotency-key: <x-idempotency-key>' \
--data '
{
"name": "Acme Corporation",
"address": {
"street1": "123 Main St",
"street2": "Apt 4B",
"street3": "Building C",
"city": "San Francisco",
"region": "California",
"postal_code": "94105",
"country": "US"
}
}
'const options = {
method: 'PUT',
headers: {
'x-idempotency-key': '<x-idempotency-key>',
'x-api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'Acme Corporation',
address: {
street1: '123 Main St',
street2: 'Apt 4B',
street3: 'Building C',
city: 'San Francisco',
region: 'California',
postal_code: '94105',
country: 'US'
}
})
};
fetch('https://api.platform.dakota.xyz/recipients/{recipient_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.platform.dakota.xyz/recipients/{recipient_id}"
payload = {
"name": "Acme Corporation",
"address": {
"street1": "123 Main St",
"street2": "Apt 4B",
"street3": "Building C",
"city": "San Francisco",
"region": "California",
"postal_code": "94105",
"country": "US"
}
}
headers = {
"x-idempotency-key": "<x-idempotency-key>",
"x-api-key": "<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/recipients/{recipient_id}"
payload := strings.NewReader("{\n \"name\": \"Acme Corporation\",\n \"address\": {\n \"street1\": \"123 Main St\",\n \"street2\": \"Apt 4B\",\n \"street3\": \"Building C\",\n \"city\": \"San Francisco\",\n \"region\": \"California\",\n \"postal_code\": \"94105\",\n \"country\": \"US\"\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-idempotency-key", "<x-idempotency-key>")
req.Header.Add("x-api-key", "<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))
}{
"id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"name": "Acme Corporation",
"address": {
"street1": "123 Main St",
"street2": "Apt 4B",
"street3": "Building C",
"city": "San Francisco",
"region": "California",
"postal_code": "94105",
"country": "US"
},
"status": "active",
"destinations": [
{
"destination_id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
"destination_type": "crypto",
"name": "My Ethereum Wallet",
"crypto_address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"family": "evm",
"network_id": "ethereum-mainnet"
}
]
}{
"type": "https://docs.dakota.xyz/api-reference/errors#invalid-request",
"title": "Invalid request",
"status": 400,
"detail": "Invalid request",
"instance": "https://api.platform.dakota.xyz/recipients/example-id",
"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/recipients/example-id",
"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/recipients/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Not found",
"status": 404,
"detail": "Not found",
"instance": "https://api.platform.dakota.xyz/recipients/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}Authorizations
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
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
Updated recipient details
Request for creating or updating a recipient entity.
Address Requirements:
- Optional for crypto-only recipients (can be omitted or null)
- Required before adding fiat destinations (ACH, Wire, SWIFT)
Migration Path: Recipients created without addresses can be updated later to add an address when fiat capabilities are needed.
Name of the recipient entity
3 - 140"Acme Corporation"
Physical address of the recipient.
- Optional when creating/updating crypto-only recipients
- Required for recipients that will have fiat destinations (ACH, Wire, SWIFT)
- Can be added later via PUT /recipients/{id} to enable fiat capabilities
Show child attributes
Show child attributes
Response
Recipient updated successfully
Response containing recipient details.
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"
Name of the recipient entity.
"Acme Corporation"
Current status of the recipient
unused, active, frozen "active"
Standardized physical address format used throughout the Dakota platform for user and entity addresses.
Show child attributes
Show child attributes
List of destinations associated with this recipient.
Response for a crypto destination.
- Crypto Destination Response
- Crypto Destination Response
- Crypto Destination Response
- US Fiat Destination Response
- IBAN Fiat Destination Response
Show child attributes
Show child attributes
Was this page helpful?

