Skip to main content
PATCH
/
customers
/
{customerId}
Update customer KYC data
curl --request PATCH \
  --url https://api.fernhq.com/customers/{customerId} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "kycData": {
    "legalFirstName": "John",
    "legalMiddleName": "Michael",
    "legalLastName": "Doe",
    "phoneNumber": "+12223334444",
    "dateOfBirth": "1990-01-15",
    "nationalIdIssuingCountry": "US",
    "nationalIdType": "ssn",
    "nationalIdNumber": "123-45-6789",
    "nationality": "US",
    "employmentStatus": "EMPLOYED",
    "mostRecentOccupation": "132011",
    "sourceOfFunds": "SALARY",
    "accountPurpose": "PERSONAL_EXPENSES",
    "accountPurposeOther": "Real estate transactions",
    "expectedMonthlyPaymentsUsd": "BETWEEN_10000_49999",
    "isIntermediary": false,
    "documents": [
      {
        "type": "GOVERNMENT_ID",
        "subtype": "NATIONAL_ID",
        "countryCode": "US",
        "documentIdNumber": "123456789",
        "issuanceDate": "2020-01-15",
        "expirationDate": "2030-01-15",
        "frontIdImage": "<string>",
        "backIdImage": "<string>",
        "proofOfAddressImage": "<string>",
        "description": "Electric bill from January 2024"
      }
    ]
  },
  "kybData": {
    "businessInfo": {
      "legalBusinessName": "Acme Corporation Inc.",
      "dbaName": "Acme Corp",
      "businessType": "B_CORPORATION",
      "businessIndustries": "611519",
      "businessDescription": "Software development and technology consulting services",
      "website": "https://www.acmecorp.com",
      "otherLinks": [
        "https://linkedin.com/company/acme",
        "@acmetech"
      ],
      "formationDate": "2020-01-15",
      "registrationCountry": "DE",
      "isDao": false
    },
    "businessRegistrationNumber": "<string>",
    "sourceOfFunds": "SALE_OF_GOODS_AND_SERVICES",
    "sourceOfFundsDescription": "Revenue from software licensing and consulting services",
    "accountPurpose": "CHARITABLE_DONATIONS",
    "accountPurposeOther": "International trade financing",
    "expectedMonthlyVolumeUsd": "LESS_THAN_10000",
    "estimatedAnnualRevenueUsd": "LESS_THAN_100000",
    "conductsMoneyServices": false,
    "conductsMoneyServicesDescription": "International wire transfers for clients",
    "conductsMoneyServicesThroughFern": false,
    "operatesInProhibitedCountries": false,
    "complianceScreeningDescription": "We screen all clients against OFAC and international sanctions lists",
    "highRiskActivities": [
      "ADULT_ENTERTAINMENT",
      "FOREIGN_EXCHANGE_OR_BROKERAGE"
    ],
    "highRiskActivitiesExplanation": "We operate an adult entertainment platform with proper licensing and compliance measures in place.",
    "associatedPersons": [
      {
        "legalFirstName": "Jane",
        "legalLastName": "Smith",
        "email": "jane.smith@example.com",
        "phoneNumber": "+14155551234",
        "dateOfBirth": "1985-06-20",
        "address": {
          "countryCode": "US",
          "streetLine1": "350 5th Avenue",
          "city": "New York",
          "stateRegionProvince": "NY",
          "streetLine2": "Floor 21",
          "postalCode": "10016",
          "locale": "en-US"
        },
        "legalMiddleName": "Marie",
        "ownershipPercentage": 0.25,
        "title": "Chief Technology Officer",
        "isControlPerson": true,
        "isSigner": true,
        "isDirector": false,
        "nationalIdIssuingCountry": "US",
        "nationalIdType": "ssn",
        "nationalIdNumber": "123-45-6789",
        "nationality": "US",
        "documents": [
          {
            "type": "GOVERNMENT_ID",
            "subtype": "NATIONAL_ID",
            "countryCode": "US",
            "documentIdNumber": "123456789",
            "issuanceDate": "2020-01-15",
            "expirationDate": "2030-01-15",
            "frontIdImage": "<string>",
            "backIdImage": "<string>",
            "proofOfAddressImage": "<string>",
            "description": "Bank statement for KYB associated person"
          }
        ]
      }
    ],
    "businessDocuments": [
      {
        "type": "ARTICLES_OF_INCORPORATION",
        "documentImage": "<string>",
        "description": "Articles of Incorporation filed in Delaware"
      }
    ]
  }
}
'
import requests

url = "https://api.fernhq.com/customers/{customerId}"

payload = {
"kycData": {
"legalFirstName": "John",
"legalMiddleName": "Michael",
"legalLastName": "Doe",
"phoneNumber": "+12223334444",
"dateOfBirth": "1990-01-15",
"nationalIdIssuingCountry": "US",
"nationalIdType": "ssn",
"nationalIdNumber": "123-45-6789",
"nationality": "US",
"employmentStatus": "EMPLOYED",
"mostRecentOccupation": "132011",
"sourceOfFunds": "SALARY",
"accountPurpose": "PERSONAL_EXPENSES",
"accountPurposeOther": "Real estate transactions",
"expectedMonthlyPaymentsUsd": "BETWEEN_10000_49999",
"isIntermediary": False,
"documents": [
{
"type": "GOVERNMENT_ID",
"subtype": "NATIONAL_ID",
"countryCode": "US",
"documentIdNumber": "123456789",
"issuanceDate": "2020-01-15",
"expirationDate": "2030-01-15",
"frontIdImage": "<string>",
"backIdImage": "<string>",
"proofOfAddressImage": "<string>",
"description": "Electric bill from January 2024"
}
]
},
"kybData": {
"businessInfo": {
"legalBusinessName": "Acme Corporation Inc.",
"dbaName": "Acme Corp",
"businessType": "B_CORPORATION",
"businessIndustries": "611519",
"businessDescription": "Software development and technology consulting services",
"website": "https://www.acmecorp.com",
"otherLinks": ["https://linkedin.com/company/acme", "@acmetech"],
"formationDate": "2020-01-15",
"registrationCountry": "DE",
"isDao": False
},
"businessRegistrationNumber": "<string>",
"sourceOfFunds": "SALE_OF_GOODS_AND_SERVICES",
"sourceOfFundsDescription": "Revenue from software licensing and consulting services",
"accountPurpose": "CHARITABLE_DONATIONS",
"accountPurposeOther": "International trade financing",
"expectedMonthlyVolumeUsd": "LESS_THAN_10000",
"estimatedAnnualRevenueUsd": "LESS_THAN_100000",
"conductsMoneyServices": False,
"conductsMoneyServicesDescription": "International wire transfers for clients",
"conductsMoneyServicesThroughFern": False,
"operatesInProhibitedCountries": False,
"complianceScreeningDescription": "We screen all clients against OFAC and international sanctions lists",
"highRiskActivities": ["ADULT_ENTERTAINMENT", "FOREIGN_EXCHANGE_OR_BROKERAGE"],
"highRiskActivitiesExplanation": "We operate an adult entertainment platform with proper licensing and compliance measures in place.",
"associatedPersons": [
{
"legalFirstName": "Jane",
"legalLastName": "Smith",
"email": "jane.smith@example.com",
"phoneNumber": "+14155551234",
"dateOfBirth": "1985-06-20",
"address": {
"countryCode": "US",
"streetLine1": "350 5th Avenue",
"city": "New York",
"stateRegionProvince": "NY",
"streetLine2": "Floor 21",
"postalCode": "10016",
"locale": "en-US"
},
"legalMiddleName": "Marie",
"ownershipPercentage": 0.25,
"title": "Chief Technology Officer",
"isControlPerson": True,
"isSigner": True,
"isDirector": False,
"nationalIdIssuingCountry": "US",
"nationalIdType": "ssn",
"nationalIdNumber": "123-45-6789",
"nationality": "US",
"documents": [
{
"type": "GOVERNMENT_ID",
"subtype": "NATIONAL_ID",
"countryCode": "US",
"documentIdNumber": "123456789",
"issuanceDate": "2020-01-15",
"expirationDate": "2030-01-15",
"frontIdImage": "<string>",
"backIdImage": "<string>",
"proofOfAddressImage": "<string>",
"description": "Bank statement for KYB associated person"
}
]
}
],
"businessDocuments": [
{
"type": "ARTICLES_OF_INCORPORATION",
"documentImage": "<string>",
"description": "Articles of Incorporation filed in Delaware"
}
]
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.patch(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
kycData: {
legalFirstName: 'John',
legalMiddleName: 'Michael',
legalLastName: 'Doe',
phoneNumber: '+12223334444',
dateOfBirth: '1990-01-15',
nationalIdIssuingCountry: 'US',
nationalIdType: 'ssn',
nationalIdNumber: '123-45-6789',
nationality: 'US',
employmentStatus: 'EMPLOYED',
mostRecentOccupation: '132011',
sourceOfFunds: 'SALARY',
accountPurpose: 'PERSONAL_EXPENSES',
accountPurposeOther: 'Real estate transactions',
expectedMonthlyPaymentsUsd: 'BETWEEN_10000_49999',
isIntermediary: false,
documents: [
{
type: 'GOVERNMENT_ID',
subtype: 'NATIONAL_ID',
countryCode: 'US',
documentIdNumber: '123456789',
issuanceDate: '2020-01-15',
expirationDate: '2030-01-15',
frontIdImage: '<string>',
backIdImage: '<string>',
proofOfAddressImage: '<string>',
description: 'Electric bill from January 2024'
}
]
},
kybData: {
businessInfo: {
legalBusinessName: 'Acme Corporation Inc.',
dbaName: 'Acme Corp',
businessType: 'B_CORPORATION',
businessIndustries: '611519',
businessDescription: 'Software development and technology consulting services',
website: 'https://www.acmecorp.com',
otherLinks: ['https://linkedin.com/company/acme', '@acmetech'],
formationDate: '2020-01-15',
registrationCountry: 'DE',
isDao: false
},
businessRegistrationNumber: '<string>',
sourceOfFunds: 'SALE_OF_GOODS_AND_SERVICES',
sourceOfFundsDescription: 'Revenue from software licensing and consulting services',
accountPurpose: 'CHARITABLE_DONATIONS',
accountPurposeOther: 'International trade financing',
expectedMonthlyVolumeUsd: 'LESS_THAN_10000',
estimatedAnnualRevenueUsd: 'LESS_THAN_100000',
conductsMoneyServices: false,
conductsMoneyServicesDescription: 'International wire transfers for clients',
conductsMoneyServicesThroughFern: false,
operatesInProhibitedCountries: false,
complianceScreeningDescription: 'We screen all clients against OFAC and international sanctions lists',
highRiskActivities: ['ADULT_ENTERTAINMENT', 'FOREIGN_EXCHANGE_OR_BROKERAGE'],
highRiskActivitiesExplanation: 'We operate an adult entertainment platform with proper licensing and compliance measures in place.',
associatedPersons: [
{
legalFirstName: 'Jane',
legalLastName: 'Smith',
email: 'jane.smith@example.com',
phoneNumber: '+14155551234',
dateOfBirth: '1985-06-20',
address: {
countryCode: 'US',
streetLine1: '350 5th Avenue',
city: 'New York',
stateRegionProvince: 'NY',
streetLine2: 'Floor 21',
postalCode: '10016',
locale: 'en-US'
},
legalMiddleName: 'Marie',
ownershipPercentage: 0.25,
title: 'Chief Technology Officer',
isControlPerson: true,
isSigner: true,
isDirector: false,
nationalIdIssuingCountry: 'US',
nationalIdType: 'ssn',
nationalIdNumber: '123-45-6789',
nationality: 'US',
documents: [
{
type: 'GOVERNMENT_ID',
subtype: 'NATIONAL_ID',
countryCode: 'US',
documentIdNumber: '123456789',
issuanceDate: '2020-01-15',
expirationDate: '2030-01-15',
frontIdImage: '<string>',
backIdImage: '<string>',
proofOfAddressImage: '<string>',
description: 'Bank statement for KYB associated person'
}
]
}
],
businessDocuments: [
{
type: 'ARTICLES_OF_INCORPORATION',
documentImage: '<string>',
description: 'Articles of Incorporation filed in Delaware'
}
]
}
})
};

fetch('https://api.fernhq.com/customers/{customerId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fernhq.com/customers/{customerId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'kycData' => [
'legalFirstName' => 'John',
'legalMiddleName' => 'Michael',
'legalLastName' => 'Doe',
'phoneNumber' => '+12223334444',
'dateOfBirth' => '1990-01-15',
'nationalIdIssuingCountry' => 'US',
'nationalIdType' => 'ssn',
'nationalIdNumber' => '123-45-6789',
'nationality' => 'US',
'employmentStatus' => 'EMPLOYED',
'mostRecentOccupation' => '132011',
'sourceOfFunds' => 'SALARY',
'accountPurpose' => 'PERSONAL_EXPENSES',
'accountPurposeOther' => 'Real estate transactions',
'expectedMonthlyPaymentsUsd' => 'BETWEEN_10000_49999',
'isIntermediary' => false,
'documents' => [
[
'type' => 'GOVERNMENT_ID',
'subtype' => 'NATIONAL_ID',
'countryCode' => 'US',
'documentIdNumber' => '123456789',
'issuanceDate' => '2020-01-15',
'expirationDate' => '2030-01-15',
'frontIdImage' => '<string>',
'backIdImage' => '<string>',
'proofOfAddressImage' => '<string>',
'description' => 'Electric bill from January 2024'
]
]
],
'kybData' => [
'businessInfo' => [
'legalBusinessName' => 'Acme Corporation Inc.',
'dbaName' => 'Acme Corp',
'businessType' => 'B_CORPORATION',
'businessIndustries' => '611519',
'businessDescription' => 'Software development and technology consulting services',
'website' => 'https://www.acmecorp.com',
'otherLinks' => [
'https://linkedin.com/company/acme',
'@acmetech'
],
'formationDate' => '2020-01-15',
'registrationCountry' => 'DE',
'isDao' => false
],
'businessRegistrationNumber' => '<string>',
'sourceOfFunds' => 'SALE_OF_GOODS_AND_SERVICES',
'sourceOfFundsDescription' => 'Revenue from software licensing and consulting services',
'accountPurpose' => 'CHARITABLE_DONATIONS',
'accountPurposeOther' => 'International trade financing',
'expectedMonthlyVolumeUsd' => 'LESS_THAN_10000',
'estimatedAnnualRevenueUsd' => 'LESS_THAN_100000',
'conductsMoneyServices' => false,
'conductsMoneyServicesDescription' => 'International wire transfers for clients',
'conductsMoneyServicesThroughFern' => false,
'operatesInProhibitedCountries' => false,
'complianceScreeningDescription' => 'We screen all clients against OFAC and international sanctions lists',
'highRiskActivities' => [
'ADULT_ENTERTAINMENT',
'FOREIGN_EXCHANGE_OR_BROKERAGE'
],
'highRiskActivitiesExplanation' => 'We operate an adult entertainment platform with proper licensing and compliance measures in place.',
'associatedPersons' => [
[
'legalFirstName' => 'Jane',
'legalLastName' => 'Smith',
'email' => 'jane.smith@example.com',
'phoneNumber' => '+14155551234',
'dateOfBirth' => '1985-06-20',
'address' => [
'countryCode' => 'US',
'streetLine1' => '350 5th Avenue',
'city' => 'New York',
'stateRegionProvince' => 'NY',
'streetLine2' => 'Floor 21',
'postalCode' => '10016',
'locale' => 'en-US'
],
'legalMiddleName' => 'Marie',
'ownershipPercentage' => 0.25,
'title' => 'Chief Technology Officer',
'isControlPerson' => true,
'isSigner' => true,
'isDirector' => false,
'nationalIdIssuingCountry' => 'US',
'nationalIdType' => 'ssn',
'nationalIdNumber' => '123-45-6789',
'nationality' => 'US',
'documents' => [
[
'type' => 'GOVERNMENT_ID',
'subtype' => 'NATIONAL_ID',
'countryCode' => 'US',
'documentIdNumber' => '123456789',
'issuanceDate' => '2020-01-15',
'expirationDate' => '2030-01-15',
'frontIdImage' => '<string>',
'backIdImage' => '<string>',
'proofOfAddressImage' => '<string>',
'description' => 'Bank statement for KYB associated person'
]
]
]
],
'businessDocuments' => [
[
'type' => 'ARTICLES_OF_INCORPORATION',
'documentImage' => '<string>',
'description' => 'Articles of Incorporation filed in Delaware'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.fernhq.com/customers/{customerId}"

payload := strings.NewReader("{\n \"kycData\": {\n \"legalFirstName\": \"John\",\n \"legalMiddleName\": \"Michael\",\n \"legalLastName\": \"Doe\",\n \"phoneNumber\": \"+12223334444\",\n \"dateOfBirth\": \"1990-01-15\",\n \"nationalIdIssuingCountry\": \"US\",\n \"nationalIdType\": \"ssn\",\n \"nationalIdNumber\": \"123-45-6789\",\n \"nationality\": \"US\",\n \"employmentStatus\": \"EMPLOYED\",\n \"mostRecentOccupation\": \"132011\",\n \"sourceOfFunds\": \"SALARY\",\n \"accountPurpose\": \"PERSONAL_EXPENSES\",\n \"accountPurposeOther\": \"Real estate transactions\",\n \"expectedMonthlyPaymentsUsd\": \"BETWEEN_10000_49999\",\n \"isIntermediary\": false,\n \"documents\": [\n {\n \"type\": \"GOVERNMENT_ID\",\n \"subtype\": \"NATIONAL_ID\",\n \"countryCode\": \"US\",\n \"documentIdNumber\": \"123456789\",\n \"issuanceDate\": \"2020-01-15\",\n \"expirationDate\": \"2030-01-15\",\n \"frontIdImage\": \"<string>\",\n \"backIdImage\": \"<string>\",\n \"proofOfAddressImage\": \"<string>\",\n \"description\": \"Electric bill from January 2024\"\n }\n ]\n },\n \"kybData\": {\n \"businessInfo\": {\n \"legalBusinessName\": \"Acme Corporation Inc.\",\n \"dbaName\": \"Acme Corp\",\n \"businessType\": \"B_CORPORATION\",\n \"businessIndustries\": \"611519\",\n \"businessDescription\": \"Software development and technology consulting services\",\n \"website\": \"https://www.acmecorp.com\",\n \"otherLinks\": [\n \"https://linkedin.com/company/acme\",\n \"@acmetech\"\n ],\n \"formationDate\": \"2020-01-15\",\n \"registrationCountry\": \"DE\",\n \"isDao\": false\n },\n \"businessRegistrationNumber\": \"<string>\",\n \"sourceOfFunds\": \"SALE_OF_GOODS_AND_SERVICES\",\n \"sourceOfFundsDescription\": \"Revenue from software licensing and consulting services\",\n \"accountPurpose\": \"CHARITABLE_DONATIONS\",\n \"accountPurposeOther\": \"International trade financing\",\n \"expectedMonthlyVolumeUsd\": \"LESS_THAN_10000\",\n \"estimatedAnnualRevenueUsd\": \"LESS_THAN_100000\",\n \"conductsMoneyServices\": false,\n \"conductsMoneyServicesDescription\": \"International wire transfers for clients\",\n \"conductsMoneyServicesThroughFern\": false,\n \"operatesInProhibitedCountries\": false,\n \"complianceScreeningDescription\": \"We screen all clients against OFAC and international sanctions lists\",\n \"highRiskActivities\": [\n \"ADULT_ENTERTAINMENT\",\n \"FOREIGN_EXCHANGE_OR_BROKERAGE\"\n ],\n \"highRiskActivitiesExplanation\": \"We operate an adult entertainment platform with proper licensing and compliance measures in place.\",\n \"associatedPersons\": [\n {\n \"legalFirstName\": \"Jane\",\n \"legalLastName\": \"Smith\",\n \"email\": \"jane.smith@example.com\",\n \"phoneNumber\": \"+14155551234\",\n \"dateOfBirth\": \"1985-06-20\",\n \"address\": {\n \"countryCode\": \"US\",\n \"streetLine1\": \"350 5th Avenue\",\n \"city\": \"New York\",\n \"stateRegionProvince\": \"NY\",\n \"streetLine2\": \"Floor 21\",\n \"postalCode\": \"10016\",\n \"locale\": \"en-US\"\n },\n \"legalMiddleName\": \"Marie\",\n \"ownershipPercentage\": 0.25,\n \"title\": \"Chief Technology Officer\",\n \"isControlPerson\": true,\n \"isSigner\": true,\n \"isDirector\": false,\n \"nationalIdIssuingCountry\": \"US\",\n \"nationalIdType\": \"ssn\",\n \"nationalIdNumber\": \"123-45-6789\",\n \"nationality\": \"US\",\n \"documents\": [\n {\n \"type\": \"GOVERNMENT_ID\",\n \"subtype\": \"NATIONAL_ID\",\n \"countryCode\": \"US\",\n \"documentIdNumber\": \"123456789\",\n \"issuanceDate\": \"2020-01-15\",\n \"expirationDate\": \"2030-01-15\",\n \"frontIdImage\": \"<string>\",\n \"backIdImage\": \"<string>\",\n \"proofOfAddressImage\": \"<string>\",\n \"description\": \"Bank statement for KYB associated person\"\n }\n ]\n }\n ],\n \"businessDocuments\": [\n {\n \"type\": \"ARTICLES_OF_INCORPORATION\",\n \"documentImage\": \"<string>\",\n \"description\": \"Articles of Incorporation filed in Delaware\"\n }\n ]\n }\n}")

req, _ := http.NewRequest("PATCH", url, payload)

req.Header.Add("Authorization", "Bearer <token>")
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))

}
HttpResponse<String> response = Unirest.patch("https://api.fernhq.com/customers/{customerId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"kycData\": {\n \"legalFirstName\": \"John\",\n \"legalMiddleName\": \"Michael\",\n \"legalLastName\": \"Doe\",\n \"phoneNumber\": \"+12223334444\",\n \"dateOfBirth\": \"1990-01-15\",\n \"nationalIdIssuingCountry\": \"US\",\n \"nationalIdType\": \"ssn\",\n \"nationalIdNumber\": \"123-45-6789\",\n \"nationality\": \"US\",\n \"employmentStatus\": \"EMPLOYED\",\n \"mostRecentOccupation\": \"132011\",\n \"sourceOfFunds\": \"SALARY\",\n \"accountPurpose\": \"PERSONAL_EXPENSES\",\n \"accountPurposeOther\": \"Real estate transactions\",\n \"expectedMonthlyPaymentsUsd\": \"BETWEEN_10000_49999\",\n \"isIntermediary\": false,\n \"documents\": [\n {\n \"type\": \"GOVERNMENT_ID\",\n \"subtype\": \"NATIONAL_ID\",\n \"countryCode\": \"US\",\n \"documentIdNumber\": \"123456789\",\n \"issuanceDate\": \"2020-01-15\",\n \"expirationDate\": \"2030-01-15\",\n \"frontIdImage\": \"<string>\",\n \"backIdImage\": \"<string>\",\n \"proofOfAddressImage\": \"<string>\",\n \"description\": \"Electric bill from January 2024\"\n }\n ]\n },\n \"kybData\": {\n \"businessInfo\": {\n \"legalBusinessName\": \"Acme Corporation Inc.\",\n \"dbaName\": \"Acme Corp\",\n \"businessType\": \"B_CORPORATION\",\n \"businessIndustries\": \"611519\",\n \"businessDescription\": \"Software development and technology consulting services\",\n \"website\": \"https://www.acmecorp.com\",\n \"otherLinks\": [\n \"https://linkedin.com/company/acme\",\n \"@acmetech\"\n ],\n \"formationDate\": \"2020-01-15\",\n \"registrationCountry\": \"DE\",\n \"isDao\": false\n },\n \"businessRegistrationNumber\": \"<string>\",\n \"sourceOfFunds\": \"SALE_OF_GOODS_AND_SERVICES\",\n \"sourceOfFundsDescription\": \"Revenue from software licensing and consulting services\",\n \"accountPurpose\": \"CHARITABLE_DONATIONS\",\n \"accountPurposeOther\": \"International trade financing\",\n \"expectedMonthlyVolumeUsd\": \"LESS_THAN_10000\",\n \"estimatedAnnualRevenueUsd\": \"LESS_THAN_100000\",\n \"conductsMoneyServices\": false,\n \"conductsMoneyServicesDescription\": \"International wire transfers for clients\",\n \"conductsMoneyServicesThroughFern\": false,\n \"operatesInProhibitedCountries\": false,\n \"complianceScreeningDescription\": \"We screen all clients against OFAC and international sanctions lists\",\n \"highRiskActivities\": [\n \"ADULT_ENTERTAINMENT\",\n \"FOREIGN_EXCHANGE_OR_BROKERAGE\"\n ],\n \"highRiskActivitiesExplanation\": \"We operate an adult entertainment platform with proper licensing and compliance measures in place.\",\n \"associatedPersons\": [\n {\n \"legalFirstName\": \"Jane\",\n \"legalLastName\": \"Smith\",\n \"email\": \"jane.smith@example.com\",\n \"phoneNumber\": \"+14155551234\",\n \"dateOfBirth\": \"1985-06-20\",\n \"address\": {\n \"countryCode\": \"US\",\n \"streetLine1\": \"350 5th Avenue\",\n \"city\": \"New York\",\n \"stateRegionProvince\": \"NY\",\n \"streetLine2\": \"Floor 21\",\n \"postalCode\": \"10016\",\n \"locale\": \"en-US\"\n },\n \"legalMiddleName\": \"Marie\",\n \"ownershipPercentage\": 0.25,\n \"title\": \"Chief Technology Officer\",\n \"isControlPerson\": true,\n \"isSigner\": true,\n \"isDirector\": false,\n \"nationalIdIssuingCountry\": \"US\",\n \"nationalIdType\": \"ssn\",\n \"nationalIdNumber\": \"123-45-6789\",\n \"nationality\": \"US\",\n \"documents\": [\n {\n \"type\": \"GOVERNMENT_ID\",\n \"subtype\": \"NATIONAL_ID\",\n \"countryCode\": \"US\",\n \"documentIdNumber\": \"123456789\",\n \"issuanceDate\": \"2020-01-15\",\n \"expirationDate\": \"2030-01-15\",\n \"frontIdImage\": \"<string>\",\n \"backIdImage\": \"<string>\",\n \"proofOfAddressImage\": \"<string>\",\n \"description\": \"Bank statement for KYB associated person\"\n }\n ]\n }\n ],\n \"businessDocuments\": [\n {\n \"type\": \"ARTICLES_OF_INCORPORATION\",\n \"documentImage\": \"<string>\",\n \"description\": \"Articles of Incorporation filed in Delaware\"\n }\n ]\n }\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.fernhq.com/customers/{customerId}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"kycData\": {\n \"legalFirstName\": \"John\",\n \"legalMiddleName\": \"Michael\",\n \"legalLastName\": \"Doe\",\n \"phoneNumber\": \"+12223334444\",\n \"dateOfBirth\": \"1990-01-15\",\n \"nationalIdIssuingCountry\": \"US\",\n \"nationalIdType\": \"ssn\",\n \"nationalIdNumber\": \"123-45-6789\",\n \"nationality\": \"US\",\n \"employmentStatus\": \"EMPLOYED\",\n \"mostRecentOccupation\": \"132011\",\n \"sourceOfFunds\": \"SALARY\",\n \"accountPurpose\": \"PERSONAL_EXPENSES\",\n \"accountPurposeOther\": \"Real estate transactions\",\n \"expectedMonthlyPaymentsUsd\": \"BETWEEN_10000_49999\",\n \"isIntermediary\": false,\n \"documents\": [\n {\n \"type\": \"GOVERNMENT_ID\",\n \"subtype\": \"NATIONAL_ID\",\n \"countryCode\": \"US\",\n \"documentIdNumber\": \"123456789\",\n \"issuanceDate\": \"2020-01-15\",\n \"expirationDate\": \"2030-01-15\",\n \"frontIdImage\": \"<string>\",\n \"backIdImage\": \"<string>\",\n \"proofOfAddressImage\": \"<string>\",\n \"description\": \"Electric bill from January 2024\"\n }\n ]\n },\n \"kybData\": {\n \"businessInfo\": {\n \"legalBusinessName\": \"Acme Corporation Inc.\",\n \"dbaName\": \"Acme Corp\",\n \"businessType\": \"B_CORPORATION\",\n \"businessIndustries\": \"611519\",\n \"businessDescription\": \"Software development and technology consulting services\",\n \"website\": \"https://www.acmecorp.com\",\n \"otherLinks\": [\n \"https://linkedin.com/company/acme\",\n \"@acmetech\"\n ],\n \"formationDate\": \"2020-01-15\",\n \"registrationCountry\": \"DE\",\n \"isDao\": false\n },\n \"businessRegistrationNumber\": \"<string>\",\n \"sourceOfFunds\": \"SALE_OF_GOODS_AND_SERVICES\",\n \"sourceOfFundsDescription\": \"Revenue from software licensing and consulting services\",\n \"accountPurpose\": \"CHARITABLE_DONATIONS\",\n \"accountPurposeOther\": \"International trade financing\",\n \"expectedMonthlyVolumeUsd\": \"LESS_THAN_10000\",\n \"estimatedAnnualRevenueUsd\": \"LESS_THAN_100000\",\n \"conductsMoneyServices\": false,\n \"conductsMoneyServicesDescription\": \"International wire transfers for clients\",\n \"conductsMoneyServicesThroughFern\": false,\n \"operatesInProhibitedCountries\": false,\n \"complianceScreeningDescription\": \"We screen all clients against OFAC and international sanctions lists\",\n \"highRiskActivities\": [\n \"ADULT_ENTERTAINMENT\",\n \"FOREIGN_EXCHANGE_OR_BROKERAGE\"\n ],\n \"highRiskActivitiesExplanation\": \"We operate an adult entertainment platform with proper licensing and compliance measures in place.\",\n \"associatedPersons\": [\n {\n \"legalFirstName\": \"Jane\",\n \"legalLastName\": \"Smith\",\n \"email\": \"jane.smith@example.com\",\n \"phoneNumber\": \"+14155551234\",\n \"dateOfBirth\": \"1985-06-20\",\n \"address\": {\n \"countryCode\": \"US\",\n \"streetLine1\": \"350 5th Avenue\",\n \"city\": \"New York\",\n \"stateRegionProvince\": \"NY\",\n \"streetLine2\": \"Floor 21\",\n \"postalCode\": \"10016\",\n \"locale\": \"en-US\"\n },\n \"legalMiddleName\": \"Marie\",\n \"ownershipPercentage\": 0.25,\n \"title\": \"Chief Technology Officer\",\n \"isControlPerson\": true,\n \"isSigner\": true,\n \"isDirector\": false,\n \"nationalIdIssuingCountry\": \"US\",\n \"nationalIdType\": \"ssn\",\n \"nationalIdNumber\": \"123-45-6789\",\n \"nationality\": \"US\",\n \"documents\": [\n {\n \"type\": \"GOVERNMENT_ID\",\n \"subtype\": \"NATIONAL_ID\",\n \"countryCode\": \"US\",\n \"documentIdNumber\": \"123456789\",\n \"issuanceDate\": \"2020-01-15\",\n \"expirationDate\": \"2030-01-15\",\n \"frontIdImage\": \"<string>\",\n \"backIdImage\": \"<string>\",\n \"proofOfAddressImage\": \"<string>\",\n \"description\": \"Bank statement for KYB associated person\"\n }\n ]\n }\n ],\n \"businessDocuments\": [\n {\n \"type\": \"ARTICLES_OF_INCORPORATION\",\n \"documentImage\": \"<string>\",\n \"description\": \"Articles of Incorporation filed in Delaware\"\n }\n ]\n }\n}"

response = http.request(request)
puts response.read_body
{
  "customerId": "03b7030f-6da1-4d76-9352-cdebd82112c8",
  "customerStatus": "ACTIVE",
  "customerType": "INDIVIDUAL",
  "name": "John Doe",
  "email": "johndoe@example.com",
  "verificationLink": "https://forms.fernhq.com/verify-customer/03b7030f-6da1-4d76-9352-cdebd82112c8",
  "updatedAt": "2023-10-01T12:00:00Z",
  "organizationId": "8469411c-48c1-4e26-a032-44688be9cb4b"
}

Authorizations

Authorization
string
header
required

To authenticate server-side requests

Path Parameters

customerId
string<uuid>
required

Unique identifier of the customer

Body

application/json

Payload for customer KYC data partial update

Payload for customer KYC data partial update

kycData
KYC Data Patch Base · object

Know Your Customer verification data (patch schema)

kybData
KYB Data Patch · object

Know Your Business verification data (patch schema)

Response

Response schema for a customer retrieval request

Response schema for a customer retrieval request

customerId
string<uuid>
required

Unique identifier of the customer

Example:

"abc123"

customerStatus
enum<string>
required

Current status of the customer

Available options:
CREATED,
UNDER_REVIEW,
NEEDS_ADDITIONAL_INFORMATION,
ACTIVE,
REJECTED,
DEACTIVATED
Example:

"ACTIVE"

email
string<email>
required

Email of the customer

Example:

"john.doe@example.com"

customerType
enum<string>
required

The type of customer - either individual or business

Available options:
INDIVIDUAL,
BUSINESS
name
string
required

Full name of the customer or business

Example:

"John Doe"

URL for KYC/KYB verification process

Example:

"https://forms.fernhq.com/verify-customer/0423300f-ae6d-4e82-8afb-a3b430e22e29"

updatedAt
string<date-time>
required

Timestamp of the last status update

organizationId
string
required

Organization identifier

Example:

"8469411c-48c1-4e26-a032-44688be9cb4b"

availablePaymentMethods
string[]

Available payment methods for the customer

Example:
[
"ACH",
"WIRE",
"SEPA",
"CA_INTERAC",
"IN_NEFT_RTGS_IMPS",
"ARBITRUM",
"BASE",
"ETHEREUM",
"OPTIMISM",
"POLYGON",
"SOLANA"
]
verificationIssues
Verification Issue · object[]

Current verification issues blocking customer approval. Only present for customers in NEEDS_ADDITIONAL_INFORMATION, UNDER_REVIEW, or REJECTED status.

Example:
[
{
"code": "DOCUMENT_MISSING_BACK",
"message": "Please upload clear photos of both the front and back of your ID.",
"timestamp": "2023-10-01T12:00:00Z"
}
]