Skip to main content
PATCH
/
core
/
kyc
/
processes
/
tax-details
curl --request PATCH \
--url https://api.enterprise.sandbox.uphold.com/core/kyc/processes/tax-details \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"input": {
"taxResidency": {
"countries": [
"GB"
]
}
}
}'
{
"taxDetails": {
"status": "pending",
"input": {
"taxResidency": {
"countries": [
"GB"
]
},
"taxIdentification": {
"documents": [
{
"type": "tin",
"country": "GB"
}
]
}
},
"hint": {
"type": "form",
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"taxResidency": {
"title": "Tax Residency Declaration",
"type": "object",
"additionalProperties": false,
"properties": {
"countries": {
"title": "In which countries are you a tax resident?",
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"type": "string",
"pattern": "^[A-Z]{2}$"
}
}
}
},
"taxIdentification": {
"title": "Tax Identification and Certification",
"type": "object",
"additionalProperties": false,
"properties": {
"documents": {
"title": "Tax Identification Documents",
"type": "array",
"items": {
"allOf": [
{
"type": "object",
"properties": {
"country": {
"title": "Country",
"type": "string",
"enum": [
"GB"
]
},
"type": {
"title": "Document type",
"type": "string",
"enum": [
"tin"
]
},
"number": {
"title": "Document number",
"type": "string",
"pattern": "^\\S.*\\S$|^\\S$"
},
"reason": {
"title": "If you don't have a TIN, please select a reason",
"type": "string",
"oneOf": [
{
"const": "country-does-not-issue-document",
"title": "My country does not issue TINs or equivalent to its residents."
},
{
"const": "user-unable-to-obtain-document",
"title": "I am unable to obtain a TIN."
},
{
"const": "law-does-not-require-document",
"title": "The local law does not require me to have a TIN."
}
]
},
"justification": {
"title": "I am unable to obtain a TIN because",
"type": "string",
"pattern": "^\\S.*\\S$|^\\S$",
"maxLength": 1000
}
},
"required": [
"country",
"type"
]
},
{
"if": {
"type": "object",
"properties": {
"reason": {
"const": "user-unable-to-obtain-document"
}
},
"required": [
"reason"
]
},
"then": {
"type": "object",
"required": [
"justification"
]
}
},
{
"oneOf": [
{
"type": "object",
"required": [
"number"
]
},
{
"type": "object",
"required": [
"reason"
]
}
]
}
]
}
},
"certify": {
"title": "I confirm that the information provided is accurate.",
"type": "boolean"
}
},
"required": [
"documents",
"certify"
]
}
}
},
"uiSchema": {
"type": "Categorization",
"elements": [
{
"label": "Tax Residency Declaration",
"type": "Category",
"elements": [
{
"label": "Countries of tax residence",
"type": "Control",
"scope": "#/properties/taxResidency/countries"
}
]
},
{
"label": "Tax Identification and Certification",
"type": "Category",
"elements": [
{
"label": "Tax identification documents",
"type": "Control",
"scope": "#/properties/taxIdentification/documents"
},
{
"label": "I confirm that the information provided is accurate.",
"type": "Control",
"scope": "#/properties/taxIdentification/certify"
}
]
}
]
}
}
}
}
Update tax details is the endpoint used to collect and submit tax information required by applicable regulatory frameworks. This includes tax residency details, taxpayer identification numbers, and certification of the accuracy of the provided information. Requirements vary by region — for example, US citizens must provide information for submitting IRS Form W-9, while EU residents must declare their countries of tax residence and relevant tax identification numbers. When calling GET /core/kyc?detailed=taxDetails, you will get a hint property which includes a JSON form schema and UI schema. The hint property will also be available in responses of this endpoint, in case there are still questions to be answered. For more information about forms, refer to the form-based processes section.

Authorizations

Authorization
string
header
required

OAuth 2.0 authentication.

Headers

Accept-Language
string

The natural language and locale that the client prefers.

Body

application/json
  • Dynamic Form
  • Legacy Form (deprecated)

Dynamic form input following the JSON Forms specification, enabling progressive disclosure of properties and anytime submissions to keep tax details up to date.

input
object
required
output
object

Output of the KYC process.

Response

KYC tax details process updated.

taxDetails
object
required