curl --request PATCH \
--url https://api.hevn.finance/dapi/v1/client \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Hevn-Account: <x-hevn-account>' \
--data '
{
"phone": "<string>",
"address": {
"streetAddress": "<string>",
"addressLine2": "<string>",
"city": "<string>",
"state": "<string>",
"zip": "<string>"
}
}
'import requests
url = "https://api.hevn.finance/dapi/v1/client"
payload = {
"phone": "<string>",
"address": {
"streetAddress": "<string>",
"addressLine2": "<string>",
"city": "<string>",
"state": "<string>",
"zip": "<string>"
}
}
headers = {
"X-Hevn-Account": "<x-hevn-account>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'X-Hevn-Account': '<x-hevn-account>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
phone: '<string>',
address: {
streetAddress: '<string>',
addressLine2: '<string>',
city: '<string>',
state: '<string>',
zip: '<string>'
}
})
};
fetch('https://api.hevn.finance/dapi/v1/client', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41",
"status": "provisioning",
"createdAt": "2023-11-07T05:31:56Z",
"name": "<string>",
"email": "<string>",
"phone": "<string>",
"baseSmartWallet": "<string>",
"kybStatus": "notStarted",
"kybApplicationId": "kyb_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41",
"failure": {
"code": "provisioning_failed",
"message": "<string>",
"retriable": false
},
"pollUrl": "<string>"
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {}
}
}Update a client profile
Update the phone and postal address for the client selected by X-Hevn-Account. Everything else about a client is verification data.
curl --request PATCH \
--url https://api.hevn.finance/dapi/v1/client \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Hevn-Account: <x-hevn-account>' \
--data '
{
"phone": "<string>",
"address": {
"streetAddress": "<string>",
"addressLine2": "<string>",
"city": "<string>",
"state": "<string>",
"zip": "<string>"
}
}
'import requests
url = "https://api.hevn.finance/dapi/v1/client"
payload = {
"phone": "<string>",
"address": {
"streetAddress": "<string>",
"addressLine2": "<string>",
"city": "<string>",
"state": "<string>",
"zip": "<string>"
}
}
headers = {
"X-Hevn-Account": "<x-hevn-account>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'X-Hevn-Account': '<x-hevn-account>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
phone: '<string>',
address: {
streetAddress: '<string>',
addressLine2: '<string>',
city: '<string>',
state: '<string>',
zip: '<string>'
}
})
};
fetch('https://api.hevn.finance/dapi/v1/client', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41",
"status": "provisioning",
"createdAt": "2023-11-07T05:31:56Z",
"name": "<string>",
"email": "<string>",
"phone": "<string>",
"baseSmartWallet": "<string>",
"kybStatus": "notStarted",
"kybApplicationId": "kyb_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41",
"failure": {
"code": "provisioning_failed",
"message": "<string>",
"retriable": false
},
"pollUrl": "<string>"
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {}
}
}Authorizations
Platform access token from POST /auth/token, carrying the platform audience and the developer_key_id of the registration that minted it. It acts as your own account; name a client you created with X-Hevn-Account: cl_…. Every request re-checks that the registration is still active and that the caller's source IP is inside its allowlist. A token is valid only against the server that issued it, so sandbox tokens are refused in production and production tokens in the sandbox.
Headers
Your own key for this write, ^[A-Za-z0-9._:-]{1,128}$. A retry with the same key replays the first answer; the same key with a different request is refused.
"po-inv-2026-114"
The selected client account, as a cl_… id.
"cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41"
Body
Response
Successful Response
Stable public identifier for this account.
^(?:cl_)?[A-Za-z0-9._:\-]{1,216}$"cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41"
Current account-provisioning status.
provisioning, ready, failed UTC timestamp when the account was created.
Legal or trading name of the account.
Email address associated with the account.
Phone number in international E.164 format.
Base smart-wallet address controlled by the account.
Current business-verification status.
notStarted, pending, approved, rfi, rejected Latest immutable business-verification application identifier.
^(?:kyb_)?[A-Za-z0-9._:\-]{1,216}$"kyb_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41"
Provisioning failure details, when present.
Show child attributes
Show child attributes
Relative API URL to poll with this response's id in X-Hevn-Account.
Was this page helpful?