curl --request POST \
--url https://api.example.com/contacts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"currency": "<string>",
"email": "<string>",
"address": {
"streetAddress": "<string>",
"addressLine2": "<string>",
"city": "<string>",
"state": "<string>",
"zip": "<string>"
}
}
'import requests
url = "https://api.example.com/contacts"
payload = {
"currency": "<string>",
"email": "<string>",
"address": {
"streetAddress": "<string>",
"addressLine2": "<string>",
"city": "<string>",
"state": "<string>",
"zip": "<string>"
}
}
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({
currency: '<string>',
email: '<string>',
address: {
streetAddress: '<string>',
addressLine2: '<string>',
city: '<string>',
state: '<string>',
zip: '<string>'
}
})
};
fetch('https://api.example.com/contacts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "ct_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41",
"name": "<string>",
"isExternal": true,
"createdAt": "2023-11-07T05:31:56Z",
"email": "<string>",
"address": {
"streetAddress": "<string>",
"addressLine2": "<string>",
"city": "<string>",
"state": "<string>",
"country": "AF",
"zip": "<string>"
},
"bank": {
"method": "<string>",
"currency": "<string>",
"fields": {
"iban": "<string>",
"bic": "<string>",
"accountNumber": "<string>",
"routingNumber": "<string>",
"pixKey": "<string>",
"pixKeyType": "phone",
"paymentKey": "<string>",
"financialInstitutionId": "<string>",
"branchNumber": "<string>",
"accountKind": "checking",
"phoneNumber": "<string>"
},
"holder": {
"type": "individual",
"firstName": "<string>",
"lastName": "<string>",
"businessName": "<string>",
"address": {
"streetAddress": "<string>",
"addressLine2": "<string>",
"city": "<string>",
"state": "<string>",
"country": "AF",
"zip": "<string>"
},
"idType": "passport",
"idNumber": "<string>",
"taxId": "<string>",
"nationality": "<string>"
},
"state": "active",
"bankName": "<string>",
"bankAddress": {
"addressLine1": "<string>",
"city": "<string>",
"state": "<string>",
"postalCode": "<string>",
"country": "<string>"
},
"intermediaryBank": {
"bic": "<string>",
"name": "<string>",
"address": {
"addressLine1": "<string>",
"city": "<string>",
"state": "<string>",
"postalCode": "<string>",
"country": "<string>"
},
"accountNumber": "<string>"
},
"paymentReference": "<string>",
"destinationAccount": "USDC",
"minimumDeposit": "500.00"
},
"crypto": {
"address": "<string>",
"chain": "<string>",
"token": "<string>"
},
"userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"user": {
"avatar": "<string>",
"name": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {}
}
}Create a contact
Create an idempotent reusable contact from either payment-account or on-chain details. Fields are validated for the selected account type before persistence.
curl --request POST \
--url https://api.example.com/contacts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"currency": "<string>",
"email": "<string>",
"address": {
"streetAddress": "<string>",
"addressLine2": "<string>",
"city": "<string>",
"state": "<string>",
"zip": "<string>"
}
}
'import requests
url = "https://api.example.com/contacts"
payload = {
"currency": "<string>",
"email": "<string>",
"address": {
"streetAddress": "<string>",
"addressLine2": "<string>",
"city": "<string>",
"state": "<string>",
"zip": "<string>"
}
}
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({
currency: '<string>',
email: '<string>',
address: {
streetAddress: '<string>',
addressLine2: '<string>',
city: '<string>',
state: '<string>',
zip: '<string>'
}
})
};
fetch('https://api.example.com/contacts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "ct_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41",
"name": "<string>",
"isExternal": true,
"createdAt": "2023-11-07T05:31:56Z",
"email": "<string>",
"address": {
"streetAddress": "<string>",
"addressLine2": "<string>",
"city": "<string>",
"state": "<string>",
"country": "AF",
"zip": "<string>"
},
"bank": {
"method": "<string>",
"currency": "<string>",
"fields": {
"iban": "<string>",
"bic": "<string>",
"accountNumber": "<string>",
"routingNumber": "<string>",
"pixKey": "<string>",
"pixKeyType": "phone",
"paymentKey": "<string>",
"financialInstitutionId": "<string>",
"branchNumber": "<string>",
"accountKind": "checking",
"phoneNumber": "<string>"
},
"holder": {
"type": "individual",
"firstName": "<string>",
"lastName": "<string>",
"businessName": "<string>",
"address": {
"streetAddress": "<string>",
"addressLine2": "<string>",
"city": "<string>",
"state": "<string>",
"country": "AF",
"zip": "<string>"
},
"idType": "passport",
"idNumber": "<string>",
"taxId": "<string>",
"nationality": "<string>"
},
"state": "active",
"bankName": "<string>",
"bankAddress": {
"addressLine1": "<string>",
"city": "<string>",
"state": "<string>",
"postalCode": "<string>",
"country": "<string>"
},
"intermediaryBank": {
"bic": "<string>",
"name": "<string>",
"address": {
"addressLine1": "<string>",
"city": "<string>",
"state": "<string>",
"postalCode": "<string>",
"country": "<string>"
},
"accountNumber": "<string>"
},
"paymentReference": "<string>",
"destinationAccount": "USDC",
"minimumDeposit": "500.00"
},
"crypto": {
"address": "<string>",
"chain": "<string>",
"token": "<string>"
},
"userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"user": {
"avatar": "<string>",
"name": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {}
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
The client account to act for, as a cl_… id. Omit it to act as yourself.
"cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41"
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"
Body
Human-readable contact name.
200Destination currency.
3 - 4Email used to resolve an existing HEVN contact.
Legacy on-chain destination details.
Show child attributes
Show child attributes
Typed payment-account, email or on-chain destination.
- PlatformOnchainAccountInput
- PlatformEmailAccountInput
- BankAccountInput
Show child attributes
Show child attributes
Legacy payment-account destination details.
Show child attributes
Show child attributes
Postal address of the contact or account holder.
Show child attributes
Show child attributes
Whether the contact is outside the selected account.
Response
Successful Response
Stable public identifier for this contact.
^(?:ct_)?[A-Za-z0-9._:\-]{1,216}$"ct_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41"
Human-readable contact name.
Whether the contact is outside the selected account.
UTC timestamp when the contact was created.
Email associated with an existing HEVN contact.
Postal address of the contact or account holder.
Show child attributes
Show child attributes
Payment-account destination details.
Show child attributes
Show child attributes
On-chain destination details.
Show child attributes
Show child attributes
Account behind an existing HEVN contact.
Profile of the linked HEVN account.
Show child attributes
Show child attributes
Was this page helpful?