Welcome to Xendit’s latest documentation. For legacy content, access the previous documentation here or the previous API reference here.

Update Account Holder

Prev Next
Patch
/account_holders/{id}

Use the Update Account Holder endpoint to:

  1. Update your Account Holder information. This step may be needed when the your information and document submission is insufficient or invalid (e.g invalid website, blurry selfie, invalid ID, etc.).
  2. Activate a payment channel Capability on an Account Holder object associated with a sub-account

You need to provide an URL to receive webhooks. Please specify your URL in Webhook Settings in the Xendit Dashboard.

You will need the Account Holder Write API key permission to perform this request.

Security
HTTP
Type basic
Path parameters
id
stringRequired
Example4376b7b0-1c44-46be-8640-828f79cdc8be
Body parameters
Update Website
{
  "website_url": "valid-marketplace.brand.com"
}
Update KYC Document
{
  "kyc_documents": {
    "country": "PH",
    "type": "LATEST_GIS_DOCUMENT",
    "file_id": "63f8719642f5856dc9feje7"
  }
}
Activate Payment Channel Capabilities
{
  "capabilities": [
    {
      "type": "MONEY_IN",
      "channel_code": "PH_CARDS"
    },
    {
      "type": "MONEY_IN",
      "channel_code": "GCASH"
    }
  ]
}
Expand All
object
business_detail
object (xenPlatform_business_detail) Required

An object containing the business detail of the Account Holder

type
string

The entity type of the business

Valid values[ "CORPORATION", "PARTNERSHIP", "SOLE_PROPRIETORSHIP", "INDIVIDUAL", "FOREIGN", "FOREIGN_SEC", "FOREIGN_NONSEC" ]
legal_name
string

Legal name of the business. This must match the documentation submitted.

trading_name
string

Trading or brand name of the business. This will be the name that appears to endpayer on payment page.

description
string

Description of the business. Please specify what business model or goods and services that the business provide. Max 1000 characters.

industry_category
string

One of our accepted Industry Category Codes depending on your entity type and country of operation.

Refer to the list of accepted industry category codes here

date_of_registration
string

Business registration date in YYYY-MM-DD

country_of_operation
string

The country (based on ISO 3166-1 Alpha-2) of incorporation for a business, or the country of residence for an individual.

Valid values[ "ID", "PH", "VN", "MY", "TH" ]
individual_details
Array of object (xenPlatform_individual_detail) Required
object

An object containing the individual details of the Account Holder. This could be the details of the business owner, director etc. You may submit multiple PICs (Person in Charge) for your business in this object.

type
string

A minimum 1 Incorporator and 1 PIC is required when they need to activate Cards capabilities. Whereas 1 PIC is required when they need to activate Gcash capabilities. Please see more details here

Valid values[ "PIC", "Incorporator" ]
role
string

This role specifies the role of the PIC or Incorporator. E.g. Owner, Director, Administrator.

given_names
string Required

First and middle name (if any) of the account holder

Max length255
surname
string Required

Surname or family name of the account holder

Max length255
phone_number
string Required

The contact number of the Account Holder in E.164 format. This may also be a landline.

Max length30
email
string Required

The email address of the account holder

Max length255
nationality
string

Country code for customer's nationality (ISO 3166-2 Country Code)

place_of_birth
string

City or other relevant location of the account holder's birth place

date_of_birth
string

Date of birth of the customer in YYYY-MM-DD

gender
string

The gender of the account holder

Valid values[ "male", "female", "other" ]
tax_identification_number
string

Tax Identification Number of the account holder. This parameter is required when they need to activate Cards capabilities with USD or recurring capabilities.

Please see more details here

address
object (xenPlatform_address)

An address object.

country
string Required

The country (based on ISO 3166-1 Alpha-2) of incorporation for a business, or the country of residence for an individual.

Valid values[ "ID", "PH", "VN", "MY", "TH" ]
city
string Required

City, village or town

province_state
string Required

Province, state or region

street_line1
string Required

Line 1 of street address e.g street number and name

Max length255
street_line2
string Required

Line 2 of street address e.g building name or apartment number

Max length255
district
string Required

District

sub_district
string Required

Sub-district

postal_code
string Required

Zip or postal code

address
object (xenPlatform_address) Required

An address object.

country
string Required

The country (based on ISO 3166-1 Alpha-2) of incorporation for a business, or the country of residence for an individual.

Valid values[ "ID", "PH", "VN", "MY", "TH" ]
city
string Required

City, village or town

province_state
string Required

Province, state or region

street_line1
string Required

Line 1 of street address e.g street number and name

Max length255
street_line2
string Required

Line 2 of street address e.g building name or apartment number

Max length255
district
string Required

District

sub_district
string Required

Sub-district

postal_code
string Required

Zip or postal code

kyc_documents
Array of object (xenPlatform_kyc_document) Required
object

A KYC document file for Account Holder verification

country
string

The country (based on ISO 3166-1 Alpha-2) of incorporation for a business, or the country of residence for an individual.

Valid values[ "ID", "PH", "VN", "MY", "TH" ]
type
string

The type of the legal or KYC requirements document

Refer to the list of Required KYC Documents for all countries here

expires_at
string

Expiry date of the document if relevant. Format YYYY-MM-DD

file_id
string

The file ID returned by the Upload API

website_url
string (email) Required

A valid website associated with the business

Max length255
Examplemystore.com
phone_number
string (phone) Required

A valid phone number associated with the business

Max length30
Example62123456789
email
string (email) Required

A valid email address associated with the object

Max length255
Exampletest@example.co
Responses
200
Philippines Corporation
{
  "id": "4376b7b0-1c44-46be-8640-828f79cdc8be",
  "business_detail": {
    "type": "CORPORATION",
    "legal_name": "My Store Inc.",
    "trading_name": "John's Store",
    "description": "description here",
    "industry_category": "ELECTRONICS_AND_ACCESSORIES",
    "date_of_registration": "2023-02-02T00:00:00.000Z",
    "country_of_operation": "PH"
  },
  "individual_details": [
    {
      "given_names": "John",
      "surname": "Doe",
      "phone_number": "+63021234567",
      "email": "test@xendit.co",
      "nationality": "PH",
      "place_of_birth": "PH",
      "date_of_birth": "2000-02-02",
      "gender": "MALE",
      "type": "PIC",
      "role": "owner"
    }
  ],
  "address": {
    "country": "PH",
    "city": "Caloocan",
    "street_line1": "9th St",
    "street_line2": "Building 101",
    "district": "1st district",
    "province_state": "Metro Manila",
    "postal_code": "1400"
  },
  "kyc_documents": [
    {
      "type": "SEC_CERTIFICATE_REGISTRATION_DOCUMENT",
      "country": "PH",
      "file_id": "63f8719642f5856dcb142bd2"
    },
    {
      "type": "ARTICLES_OF_INCORPORATION_DOCUMENT",
      "country": "PH",
      "file_id": "63f8719642f5856dcb142bd2"
    },
    {
      "type": "NOTARIZED_SECRETARY_CERTIFICATE_DOCUMENT",
      "country": "PH",
      "file_id": "63f8719642f5856dcb142bd2"
    },
    {
      "type": "LATEST_GIS_DOCUMENT",
      "country": "PH",
      "file_id": "63f8719642f5856dcb142bd2"
    },
    {
      "type": "ACR_OR_IMMIGRANT_COR_DOCUMENT",
      "country": "PH",
      "file_id": "63f8719642f5856dcb142bd2"
    },
    {
      "type": "SERVICE_AGREEMENT_DOCUMENT",
      "country": "PH",
      "file_id": "63f8719642f5856dcb142bd2"
    }
  ],
  "website_url": "https://xendit.co",
  "phone_number": "+6381234567",
  "email": "test@xendit.co",
  "kyc": {
    "status": "PASSED",
    "requested_at": "2021-01-01T10:00:00Z",
    "verified_at": "2021-01-02T10:00:00Z",
    "kyc_passed_at": "2021-01-03T10:00:00Z"
  },
  "capabilities": [
    {
      "type": "MONEY_IN",
      "channel_code": "GCASH",
      "requested_at": "2021-01-01T10:00:00Z",
      "verified_at": "2021-01-02T10:00:00Z",
      "activated_at": "2021-01-03T10:00:00Z",
      "status": "VERIFICATION_IN_PROGRESS"
    }
  ]
}
Expand All
object
business_detail
object (xenPlatform_business_detail)

An object containing the business detail of the Account Holder

type
string

The entity type of the business

Valid values[ "CORPORATION", "PARTNERSHIP", "SOLE_PROPRIETORSHIP", "INDIVIDUAL", "FOREIGN", "FOREIGN_SEC", "FOREIGN_NONSEC" ]
legal_name
string

Legal name of the business. This must match the documentation submitted.

trading_name
string

Trading or brand name of the business. This will be the name that appears to endpayer on payment page.

description
string

Description of the business. Please specify what business model or goods and services that the business provide. Max 1000 characters.

industry_category
string

One of our accepted Industry Category Codes depending on your entity type and country of operation.

Refer to the list of accepted industry category codes here

date_of_registration
string

Business registration date in YYYY-MM-DD

country_of_operation
string

The country (based on ISO 3166-1 Alpha-2) of incorporation for a business, or the country of residence for an individual.

Valid values[ "ID", "PH", "VN", "MY", "TH" ]
individual_details
Array of object (xenPlatform_individual_detail)
object

An object containing the individual details of the Account Holder. This could be the details of the business owner, director etc. You may submit multiple PICs (Person in Charge) for your business in this object.

type
string

A minimum 1 Incorporator and 1 PIC is required when they need to activate Cards capabilities. Whereas 1 PIC is required when they need to activate Gcash capabilities. Please see more details here

Valid values[ "PIC", "Incorporator" ]
role
string

This role specifies the role of the PIC or Incorporator. E.g. Owner, Director, Administrator.

given_names
string

First and middle name (if any) of the account holder

Max length255
surname
string

Surname or family name of the account holder

Max length255
phone_number
string

The contact number of the Account Holder in E.164 format. This may also be a landline.

Max length30
email
string

The email address of the account holder

Max length255
nationality
string

Country code for customer's nationality (ISO 3166-2 Country Code)

place_of_birth
string

City or other relevant location of the account holder's birth place

date_of_birth
string

Date of birth of the customer in YYYY-MM-DD

gender
string

The gender of the account holder

Valid values[ "male", "female", "other" ]
tax_identification_number
string

Tax Identification Number of the account holder. This parameter is required when they need to activate Cards capabilities with USD or recurring capabilities.

Please see more details here

address
object (xenPlatform_address)

An address object.

country
string

The country (based on ISO 3166-1 Alpha-2) of incorporation for a business, or the country of residence for an individual.

Valid values[ "ID", "PH", "VN", "MY", "TH" ]
city
string

City, village or town

province_state
string

Province, state or region

street_line1
string

Line 1 of street address e.g street number and name

Max length255
street_line2
string

Line 2 of street address e.g building name or apartment number

Max length255
district
string

District

sub_district
string

Sub-district

postal_code
string

Zip or postal code

address
object (xenPlatform_address)

An address object.

country
string

The country (based on ISO 3166-1 Alpha-2) of incorporation for a business, or the country of residence for an individual.

Valid values[ "ID", "PH", "VN", "MY", "TH" ]
city
string

City, village or town

province_state
string

Province, state or region

street_line1
string

Line 1 of street address e.g street number and name

Max length255
street_line2
string

Line 2 of street address e.g building name or apartment number

Max length255
district
string

District

sub_district
string

Sub-district

postal_code
string

Zip or postal code

kyc_documents
Array of object (xenPlatform_kyc_document)
object

A KYC document file for Account Holder verification

country
string

The country (based on ISO 3166-1 Alpha-2) of incorporation for a business, or the country of residence for an individual.

Valid values[ "ID", "PH", "VN", "MY", "TH" ]
type
string

The type of the legal or KYC requirements document

Refer to the list of Required KYC Documents for all countries here

expires_at
string

Expiry date of the document if relevant. Format YYYY-MM-DD

file_id
string

The file ID returned by the Upload API

website_url
string (email)

A valid website associated with the business

Max length255
Examplemystore.com
phone_number
string (phone)

A valid phone number associated with the business

Max length30
Example62123456789
email
string (email)

A valid email address associated with the object

Max length255
Exampletest@example.co
capabilities
Array of object (xenPlatform_account_holder_capability_response)
object

An object containing the details of the Account Holder capabilities activation process

type
string
channel_code
string
status
string
Valid values[ "LIVE", "VERIFICATION_IN_PROGRESS", "RESUBMISSION_REQUIRED", "DECLINED" ]
activated_at
string

Timestamp of when the object was updated

verified_at
string

Timestamp of when the object was updated

requested_at
string

Timestamp of when the object was updated

kyc
object (xenPlatform_account_holder_kyc_response)
status
string
Valid values[ "PASSED", "FAILED", "RESUBMISSION_REQUIRED" ]
requested_at
string

Timestamp of when the object was updated

kyc_passed_at
string

Timestamp of when the object was updated

verified_at
string

Timestamp of when the object was updated

400
INSUFFICIENT_ACCOUNT_HOLDER_DATA
{
  "error_code": "INSUFFICIENT_ACCOUNT_HOLDER_DATA",
  "message": "The information in the Account Holder object is not sufficient to request activation for this payment channel. Please update the fields with the correct information.",
  "errors": [
    "Detailed description here"
  ]
}
object

Inputs are failing validation. The errors field contains details about which fields are violating validation.

error_code
string
Valid values[ "API_VALIDATION_ERROR", "INVALID_CONFIGURATION", "INVALID_JSON_FORMAT", "TYPE_AND_CONFIGURATION_CONFLICT", "INVALID_SOURCE_OR_DESTINATION_ERROR", "INSUFFICIENT_BALANCE", "INVALID_FEE_AMOUNT", "DUPLICATE_ERROR", "INVALID_AMOUNT", "INSUFFICIENT_ACCOUNT_HOLDER_DATA" ]
message
string
errors
Array
OneOf
string
string
object
object
403
KYC_VERIFICATION_IN_PROGRESS
{
  "error_code": "KYC_VERIFICATION_IN_PROGRESS",
  "message": "Account Holder cannot be updated while KYC verification is in progress, please try again when the verification process has been completed.",
  "errors": [
    "Detailed description here"
  ]
}
CHANNEL_HAS_BEEN_ACTIVATED
{
  "error_code": "CHANNEL_HAS_BEEN_ACTIVATED",
  "message": "The payment channel requested has already been activated for this account holder.",
  "errors": [
    "Detailed description here"
  ]
}
object

Forbidden request

error_code
string
Valid values[ "REQUEST_FORBIDDEN_ERROR", "FEATURE_NOT_ACTIVATED", "DUPLICATE_REFERENCE", "XEN_PLATFORM_SUB_ACCOUNT_NOT_LIVE", "API_KEY_ENVIRONMENT_NOT_MATCH", "CHANNEL_ACTIVATION_IN_PROGRESS", "CHANNEL_HAS_BEEN_ACTIVATED", "KYC_VERIFICATION_IN_PROGRESS" ]
message
string
errors
Array
OneOf
string
string
object
object
Callbacks
Post
/{capabilities_callback_url}
Body parameters
{
  "value": {
    "event": "account_holder.kyc.status",
    "created": "2021-01-01T10:00:00Z",
    "business_id": "5fe2b0137b7d62542fe6d7de",
    "data": {
      "id": "57fb4e076fa3fa296b7f5a97",
      "created": "2021-01-01T10:00:00Z",
      "updated": "2021-01-01T10:00:00Z",
      "capabilities": [
        {
          "type": "MONEY_IN",
          "channel_code": "GCASH",
          "activated_at": "2021-01-01T10:00:00Z",
          "verified_at": "2021-01-01T10:00:00Z",
          "requested_at": "2021-01-01T10:00:00Z",
          "status": "RESUBMISSION_REQUIRED",
          "failure_reason": "Your website URL is not related to your business"
        }
      ]
    }
  }
}
Expand All
object
event
string

Event that occurred for this webhook

Valid values[ "account_holder.capabilities.status" ]
Exampleaccount_holder.capabilities.status
business_id
string

ID of your Account, use this in the for-user-id header to create transactions on behalf of your Account

created
string

Timestamp of when the webhook was sent

updated
string

Timestamp of when the webhook was updated

data
object
id
string

The unique ID of an Account Holder object

created
string

Timestamp of when the webhook was sent

updated
string

Timestamp of when the webhook was updated

capabilities
Array of object (xenPlatform_account_holder_capability_response)
object

An object containing the details of the Account Holder capabilities activation process

type
string
channel_code
string
status
string
Valid values[ "LIVE", "VERIFICATION_IN_PROGRESS", "RESUBMISSION_REQUIRED", "DECLINED" ]
activated_at
string

Timestamp of when the object was updated

verified_at
string

Timestamp of when the object was updated

requested_at
string

Timestamp of when the object was updated

Responses
200

OK