# Slippage & Price Impact
Source: https://docs.fernhq.com/advanced/slippage-and-price-impact
Converting ERC-20 tokens, particularly those with smaller market caps and volatile prices, can lead to significant price impact, especially for crypto-to-fiat flows.
To protect your customers and ensure competitive pricing, we offer a **minimum guaranteed amount** for each transaction (see [**Transactions API**](../api-reference/transactions/create-transaction)). If this amount cannot be achieved at the time of execution, the transaction will be failed, and the funds will be returned to the sending address.
Webhooks will provide the reason for the failure, allowing you to take appropriate action (coming soon). You can retry the offramp when market conditions improve.
# Whitelabelling Email Notifications
Source: https://docs.fernhq.com/advanced/whitelabelling-email-notifications
Fern sends email notifications to your end users to confirm completion of their transaction and successful receipt of funds. These email notifications include the following information:
* Customer name
* Destination account
* Date and time of the transaction
* Amount sent
* Fees
* Amount to be converted
* Exchange rate
* Final amount received
* Transaction ID
* Help & support information
If you're interested in fully whitelabelling email notifications, send us a note through your preferred Support channel.
# Create automation rule
Source: https://docs.fernhq.com/api-reference/automation-rules/create-automation-rule
https://api.fernhq.com/json post /automation-rules
Create an automation rule
# Delete automation rule
Source: https://docs.fernhq.com/api-reference/automation-rules/delete-automation-rule
https://api.fernhq.com/json delete /automation-rules/{ruleId}
Delete an automation rule
# Get automation rule by ID
Source: https://docs.fernhq.com/api-reference/automation-rules/get-automation-rule-by-id
https://api.fernhq.com/json get /automation-rules/{ruleId}
Get an automation rule by its ID
# List automation rules
Source: https://docs.fernhq.com/api-reference/automation-rules/list-automation-rules
https://api.fernhq.com/json get /automation-rules
List all automation rules
# Update automation rule
Source: https://docs.fernhq.com/api-reference/automation-rules/update-automation-rule
https://api.fernhq.com/json put /automation-rules/{ruleId}
Update an automation rule
# Create customer
Source: https://docs.fernhq.com/api-reference/customers/create-customer
https://api.fernhq.com/json post /customers
Upon successful customer creation, a hosted KYC link requesting the required information to fill in will be generated. This may be distributed to your end-user for completion, or it can be completed on the customer's behalf by your team.
# Get customer
Source: https://docs.fernhq.com/api-reference/customers/get-customer
https://api.fernhq.com/json get /customers/{customerId}
Get details about a customer
# List customers
Source: https://docs.fernhq.com/api-reference/customers/list-customers
https://api.fernhq.com/json get /customers
List all customers with cursor-based pagination
# Update customer KYC data
Source: https://docs.fernhq.com/api-reference/customers/update-customer-kyc-data
https://api.fernhq.com/json patch /customers/{customerId}
Update specific fields in a customer's KYC data. This endpoint allows partial updates to customer information. Only the fields provided in the request will be updated, leaving other KYC data unchanged.
# Create payment account
Source: https://docs.fernhq.com/api-reference/payment-accounts/create-payment-account
https://api.fernhq.com/json post /payment-accounts
Create an account for a customer
# Delete payment account
Source: https://docs.fernhq.com/api-reference/payment-accounts/delete-payment-account
https://api.fernhq.com/json delete /payment-accounts/{paymentAccountId}
Delete all details about a specific payment account
# Get exchange rate
Source: https://docs.fernhq.com/api-reference/payment-accounts/get-exchange-rate
https://api.fernhq.com/json get /exchange-rates
Get the exchange rate and fees between a source currency and destination currency
# Get payment account
Source: https://docs.fernhq.com/api-reference/payment-accounts/get-payment-account
https://api.fernhq.com/json get /payment-accounts/{paymentAccountId}
Get details about a specific payment account
# Get payment account balance
Source: https://docs.fernhq.com/api-reference/payment-accounts/get-payment-account-balance
https://api.fernhq.com/json get /payment-accounts/{paymentAccountId}/balance
Get the balance of a payment account
# List payment accounts
Source: https://docs.fernhq.com/api-reference/payment-accounts/list-payment-accounts
https://api.fernhq.com/json get /payment-accounts
List all payment accounts
# Create quote
Source: https://docs.fernhq.com/api-reference/quotes/create-quote
https://api.fernhq.com/json post /quotes
Create a quote
# Cancel transaction
Source: https://docs.fernhq.com/api-reference/transactions/cancel-transaction
https://api.fernhq.com/json delete /transactions/{transactionId}
Cancel a transaction by ID
# Create transaction
Source: https://docs.fernhq.com/api-reference/transactions/create-transaction
https://api.fernhq.com/json post /transactions
Create a transactionCreates a transaction using a given quoteID. QuoteID must be valid and not expired.
# Get transaction
Source: https://docs.fernhq.com/api-reference/transactions/get-transaction
https://api.fernhq.com/json get /transactions/{transactionId}
Get a transaction by ID
# List transactions
Source: https://docs.fernhq.com/api-reference/transactions/list-transactions
https://api.fernhq.com/json get /transactions
List all transactions for a customer with pagination
# Customer created webhook
Source: https://docs.fernhq.com/api-reference/webhooks/customer-created-webhook
https://api.fernhq.com/json webhook customer.created
Sent when a new customer is created.
# Customer updated webhook
Source: https://docs.fernhq.com/api-reference/webhooks/customer-updated-webhook
https://api.fernhq.com/json webhook customer.updated
Sent when a customer record changes (no verification data).
# Payment account created webhook
Source: https://docs.fernhq.com/api-reference/webhooks/payment-account-created-webhook
https://api.fernhq.com/json webhook payment_account.created
Sent when a payment account is created.
# Payment account deleted webhook
Source: https://docs.fernhq.com/api-reference/webhooks/payment-account-deleted-webhook
https://api.fernhq.com/json webhook payment_account.deleted
Sent when a payment account is deleted.
# Transaction created webhook
Source: https://docs.fernhq.com/api-reference/webhooks/transaction-created-webhook
https://api.fernhq.com/json webhook transaction.created
Sent when a transaction is created.
# Transaction updated webhook
Source: https://docs.fernhq.com/api-reference/webhooks/transaction-updated-webhook
https://api.fernhq.com/json webhook transaction.updated
Sent when a transaction updates status.
# Changelog
Source: https://docs.fernhq.com/changelog
Product updates and announcements
## Exchange Rates
### Changed
* **Guaranteed Quote FX Spread:** Transactions with `guaranteedQuote` set to `true` that involve foreign exchange (FX) now have an additional 5bps spread applied to the exchange rate. This spread allows Fern to guarantee the output amount for the duration of the quote.
## API changes
### Breaking Changes
* **National ID Fields Required:** As part of the deprecation of `taxIdNumber`, the `nationalIdType`, `nationalIdNumber`, and `nationalIdIssuingCountry` fields are now required when creating customers via POST with `kycData`. These fields must be provided together in the KYC data for customer verification to proceed.
**Impact:**
* POST requests with `kycData` that are missing any of the three national ID fields will be rejected
* PATCH requests: If any one of these fields is provided, all three must be provided together
## API changes
### Added
* **Expanded Business Types:** The `businessType` enum has been expanded to support granular legal entities. You can now use the following specific types:
* `B_CORPORATION`, `C_CORPORATION`, `S_CORPORATION`, `CLOSE_CORPORATION`
* `COOPERATIVE`, `NONPROFIT_CORPORATION`
* `GENERAL_PARTNERSHIP`, `LIMITED_PARTNERSHIP`, `LIMITED_LIABILITY_PARTNERSHIP`
* `LIMITED_LIABILITY_COMPANY`
* `SOLE_PROPRIETORSHIP`, `TRUST`, `OTHER`, `INDIVIDUAL`
### Breaking Changes
* **Business Type Aliases Removed:** Alias values for `businessType` are no longer accepted. Use only canonical values.
**Impact:**
* API requests using alias values will be rejected
* API responses will only return canonical values
## API changes
### Added
* **Verification Issues:** A new `verificationIssues` property is now available on the `customer.update` webhook and the GET `/customer/{id}` endpoint. This property provides detailed information about any verification issues that require attention, helping you understand what information needs to be corrected or provided. See [Verification Issues](/docs/create-and-verify-customers/verification-issues) for more details.
### Changed
* **Address Validation:** Updated minimum character requirements for `addressLine1` and `addressLine2` fields to 4 characters to improve data quality.
* **State Codes:** Fixed outdated state codes for China in the `address.stateCode` property to ensure accurate address validation.
## Hosted Forms
### Fixed
* **Email Notifications:** Resolved issue where email links were being incorrectly sent to KYB beneficiary owners.
### Changed
* **Street Address Length:** Increased street address field character limit to 100 characters to accommodate longer addresses.
* **iFrame Support:** Hosted forms can now be embedded and loaded within iframes for improved integration flexibility.
* **Hosted Forms:** Customers with `NEEDS_ADDITIONAL_INFORMATION` status can now refill KYC/KYB forms in hosted forms.
## API changes
### Added
* **Available Payment Methods:** GET `/customer/{id}` now supports `?includePaymentMethods=true`. When enabled, the response includes an availablePaymentMethods array listing all payment methods accessible to the customer.
### Changed
* **Exchange Rate Fees:** Fees returned from the exchange rate endpoint now display fees in the source currency. This makes it easier for integrators to understand costs without converting values manually.
These changes will be effective as of **November 14, 2025**
## API changes
### Removed
* Removed the deprecated kycLink field from all customer-related schemas. Integrations should use the verificationLink field instead.
* Removed the following deprecated fields from KYC schemas and internal API definitions:
* `middleName`
* `taxIdNumber`
* `title`
### Changed
* Address Validation: Updated address validation rules to require a minimum length of 4 characters for the `streetLine1`, and `streetLine2` fields to improve data quality.
* Request Limits: Increased the maximum request payload size limit to 100 MB.
### KYC and KYB Verification Changes
* Customer profile is updatable when in `NEEDS_ADDITIONAL_INFORMATION` status. This allows the customer profile details to be changed and verification to be automatically restarted taking into account the new details.
* Address validation of postal codes updated.
* Affects Egypt, Argentina, United Kingdom
* Customer KYC and KYB Verification guides updated
# Cryptocurrency & Chain Support
Source: https://docs.fernhq.com/coverage/cryptocurrency-support
Fern supports stablecoins and other cryptocurrencies on all supported networks.
| Network name | Chain ID | Native currency | Supported cryptocurrencies | Status |
| ---------------- | -------------- | --------------- | ------------------------------------- | ------ |
| Arbitrum One | 42161 (0xa4b1) | ETH | USDC, USDT, PYUSD, EURC, ETH, ERC-20s | Live |
| Base | 8453 (0x2105) | ETH | USDC, USDT, PYUSD, EURC, ETH, ERC-20s | Live |
| Ethereum Mainnet | 1 (0x1) | ETH | USDC, USDT, PYUSD, EURC, ETH, ERC-20s | Live |
| OP Mainnet | 10 (0xa) | ETH | USDC, USDT, PYUSD, EURC, ETH, ERC-20s | Live |
| Polygon Mainnet | 137 (0x89) | POL | USDC, USDT, PYUSD, EURC, ETH, ERC-20s | Live |
| Solana | N/A | SOL | USDC, USDT, PYUSD, EURC, PAXG, WBTC | Live |
# Fiat Currency Support
Source: https://docs.fernhq.com/coverage/fiat-currency-support
Fern supports several fiat currencies via local payment rails. Fern is constantly adding support for onramps/offramps. This table is subject to change.\\
Notes on settlement times:
* "Real-time" usually means "settlement" within less than 1 business hour, NOT "instant".
* Settlement times are not guaranteed. There are many factors that may affect settlement times. Fern makes a best effort to settle transactions in the settlement times listed, but cannot guarantee settlement times.
| Country | Region | Fiat currency | Supported customer types | Currency tier | Onramps | Offramps | Local payment rail | Settlement time | Required payment account details |
| ------------------ | ------------- | ------------- | ------------------------ | ------------- | ------- | -------- | -------------------------------------- | --------------- | ----------------------------------------------------------------- |
| Côte d'Ivoire | Africa | XOF | Business, Individual | Tier 3 | No | No | Local | T+1 | TBD |
| Ghana | Africa | GHS | Business, Individual | Tier 3 | No | Yes | GhIPSS | Real-time | Account number |
| Kenya | Africa | KES | Business, Individual | Tier 3 | No | Yes | KIBBS | T+3 | Account number |
| Nigeria | Africa | NGN | Business, Individual | Tier 3 | No | Yes | NIBSS, NEFT | Real-time | NUBAN code, Account number |
| South Africa | Africa | ZAR | Business, Individual | Tier 3 | No | Yes | RTGS, EFT | T+1 | Account number |
| Tanzania | Africa | TZS | Business, Individual | Tier 3 | No | Yes | RTGS | T+2 | Account number |
| Australia | APAC | AUD | Business, Individual | Tier 3 | No | Yes | BECS | T+0 / T+1 | BSB number, Account number |
| Bangladesh | APAC | BDT | Individual | Tier 3 | No | Yes | BEFTN | T+1 | Bank code, Account number |
| China | APAC | CNY | Business | Tier 3 | No | Yes | CNAPS | T+3 | CNAPS code, Account number |
| Hong Kong | APAC | HKD | Business, Individual | Tier 3 | No | Yes | HKICL (CHATS / ECG) | Real-time / T+1 | Clearing code, Account number |
| India | APAC | INR | Business, Individual | Tier 3 | No | Yes | NEFT, RTGS, IMPS | Real-time | IFSC code, Account number |
| Indonesia | APAC | IDR | Business, Individual | Tier 3 | Yes | Yes | SKN, RTGS | Real-time / T+1 | Bank code, Account number |
| Japan | APAC | JPY | Business, Individual | Tier 3 | No | Yes | Zengin | T+0 | Account number |
| Malaysia | APAC | MYR | Business, Individual | Tier 3 | No | Yes | IBG, RENTAS | Real-time / T+1 | Account number |
| Nepal | APAC | NPR | Business, Individual | Tier 3 | No | No | Local | Real-time / T+2 | TBD |
| New Zealand | APAC | NZD | Business, Individual | Tier 3 | No | No | Local | T+1 | Bank code, Account number |
| Pakistan | APAC | PKR | Individual | Tier 3 | No | Yes | RAAST, IBFT | Real-time | IBAN |
| Philippines | APAC | PHP | Business, Individual | Tier 3 | Yes | Yes | InstaPay, PESONet | Real-time / T+1 | Account number |
| Singapore | APAC | SGD | Business, Individual | Tier 3 | No | Yes | FAST, MEPS | Real-time | Bank code, Account number |
| South Korea | APAC | KRW | Business, Individual | Tier 3 | No | No | Local | Real-time / T+1 | Account number |
| Sri Lanka | APAC | LKR | Business, Individual | Tier 3 | No | No | Local | T+0 | Bank code, Account number |
| Thailand | APAC | THB | Business, Individual | Tier 3 | No | Yes | BAHTNET, PromptPay | Real-time / T+1 | Bank code, Account number |
| Turkey | APAC | TRY | Business, Individual | Tier 3 | No | Yes | FAST, EFT | Real-time | IBAN, Account number |
| Vietnam | APAC | VND | Business, Individual | Tier 3 | No | Yes | IBPS | Real-time / T+3 | Account number |
| Czech Republic | Europe | CZK | Business, Individual | Tier 1 | No | Yes | CERTIS | T+0 / T+1 | IBAN |
| Denmark | Europe | DKK | Business, Individual | Tier 1 | No | Yes | NemKonto, FI | T+0 / T+1 | IBAN |
| Eurozone | Europe | EUR | Business, Individual | Tier 1 | Yes | Yes | SEPA | Real-time / T+1 | IBAN |
| Hungary | Europe | HUF | Business, Individual | Tier 1 | No | No | GIRO | Real-time / T+1 | IBAN |
| Norway | Europe | NOK | Business, Individual | Tier 1 | No | Yes | NICS | T+0 / T+1 | IBAN |
| Poland | Europe | PLN | Business, Individual | Tier 1 | No | Yes | Elixir, Blue Cash | Real-time / T+1 | IBAN |
| Romania | Europe | RON | Business, Individual | Tier 1 | No | Yes | RTGS | T+0 / T+1 | IBAN |
| Sweden | Europe | SEK | Business, Individual | Tier 1 | No | Yes | Bankgirot | T+0 / T+1 | IBAN |
| UK | Europe | GBP | Business, Individual | Tier 1 | No | Yes | BACS, CHAPS, Faster Payments | Real-time / T+1 | Sort code, Account number |
| Egypt | Middle East | EGP | Business, Individual | Tier 3 | No | Yes | RTGS, IPN | T+0 / T+1 | Account number |
| Israel | Middle East | ILS | Business, Individual | Tier 3 | No | Yes | ZAHAV | T+0 / T+1 | IBAN |
| Jordan | Middle East | JOD | Business, Individual | Tier 3 | No | No | ACH | T+1 / T+2 | TBD |
| Qatar | Middle East | QAR | Business, Individual | Tier 3 | No | No | QPS | T+1 / T+2 | TBD |
| Saudi Arabia | Middle East | SAR | Business, Individual | Tier 3 | No | Yes | Mada | T+0 / T+1 | IBAN, Account number |
| UAE | Middle East | AED | Business, Individual | Tier 3 | No | Yes | UAEFTS | T+0 / T+1 | IBAN, Bank code |
| Canada | North America | CAD | Business, Individual | Tier 1 | No | Yes | EFT | T+1 / T+2 | Transit number, Account number |
| Costa Rica | North America | CRC | Business, Individual | Tier 2 | No | Yes | SINPE | Real-time | IBAN, Bank code |
| Dominican Republic | North America | DOP | Business, Individual | Tier 2 | No | Yes | ACH | Real-time | IBAN, Tax number |
| El Salvador | North America | USD | Business, Individual | Tier 2 | No | Yes | Local | - | Account number |
| Guatemala | North America | GTQ | Business, Individual | Tier 2 | No | No | ACH Guatemala | T+0 / T+1 | Account number |
| Mexico | North America | MXN | Business, Individual | Tier 2 | Yes | Yes | SPEI | Real-time / T+1 | CLABE number |
| US | North America | USD | Business, Individual | Tier 1 | Yes | Yes | ACH, Domestic wire, International wire | T+1 / T+2 | Routing number, Account number |
| Argentina | South America | ARS | Business, Individual | Tier 2 | Yes | Yes | Transfers 3.0 | T+1 / T+2 | Account number |
| Bolivia | South America | BOB | Business, Individual | Tier 2 | No | Yes | RTGS | T+0 / T+1 | Account number |
| Brazil | South America | BRL | Business, Individual | Tier 2 | Yes | Yes | TED, DOC, Pix | Real-time / T+0 | Pix code, Tax number (CPF for individuals and CNPJ for companies) |
| Chile | South America | CLP | Business, Individual | Tier 2 | No | Yes | TEF | T+0 / T+1 | Account number |
| Colombia | South America | COP | Business, Individual | Tier 2 | No | Yes | ACH Colombia | Real-time / T+1 | Account number, Tax number |
| Ecuador | South America | USD | Business, Individual | Tier 2 | No | Yes | Local | - | Account number |
| Jamaica | South America | JMD | Business, Individual | Tier 2 | No | No | Local | T+1 / T+2 | Account number |
| Peru | South America | PEN | Business, Individual | Tier 2 | No | Yes | CCE | T+0 / T+1 | Account number |
# Business Industry Codes
Source: https://docs.fernhq.com/docs/create-and-verify-customers/business-industry-codes
Use these industry classification codes to identify your business type when creating or updating customer records through our platform. Each code corresponds to a specific business sector or activity.
### **Accepted Industry Codes**
| Industry | Code |
| -------------------------------------------------------------------------------------------------------------------- | ------ |
| Soybean Farming | 111110 |
| Oilseed Except Soybean Farming | 111120 |
| Dry Pea And Bean Farming | 111130 |
| Wheat Farming | 111140 |
| Corn Farming | 111150 |
| Rice Farming | 111160 |
| Oilseed And Grain Combination Farming | 111191 |
| All Other Grain Farming | 111199 |
| Potato Farming | 111211 |
| Other Vegetable Except Potato And Melon Farming | 111219 |
| Orange Groves | 111310 |
| Citrus Except Orange Groves | 111320 |
| Apple Orchards | 111331 |
| Grape Vineyards | 111332 |
| Strawberry Farming | 111333 |
| Berry Except Strawberry Farming | 111334 |
| Tree Nut Farming | 111335 |
| Fruit And Tree Nut Combination Farming | 111336 |
| Other Noncitrus Fruit Farming | 111339 |
| Mushroom Production | 111411 |
| Other Food Crops Grown Under Cover | 111419 |
| Nursery And Tree Production | 111421 |
| Floriculture Production | 111422 |
| Tobacco Farming | 111910 |
| Cotton Farming | 111920 |
| Sugarcane Farming | 111930 |
| Hay Farming | 111940 |
| Sugar Beet Farming | 111991 |
| Peanut Farming | 111992 |
| All Other Miscellaneous Crop Farming | 111998 |
| Beef Cattle Ranching And Farming | 112111 |
| Cattle Feedlots | 112112 |
| Dairy Cattle And Milk Production | 112120 |
| Hog And Pig Farming | 112210 |
| Chicken Egg Production | 112310 |
| Broilers And Other Meat Type Chicken Production | 112320 |
| Turkey Production | 112330 |
| Poultry Hatcheries | 112340 |
| Other Poultry Production | 112390 |
| Sheep Farming | 112410 |
| Goat Farming | 112420 |
| Finfish Farming And Fish Hatcheries | 112511 |
| Shellfish Farming | 112512 |
| Other Aquaculture | 112519 |
| Apiculture | 112910 |
| Horses And Other Equine Production | 112920 |
| Fur Bearing Animal And Rabbit Production | 112930 |
| All Other Animal Production | 112990 |
| Timber Tract Operations | 113110 |
| Forest Nurseries And Gathering Of Forest Products | 113210 |
| Logging | 113310 |
| Finfish Fishing | 114111 |
| Shellfish Fishing | 114112 |
| Other Marine Fishing | 114119 |
| Hunting And Trapping | 114210 |
| Cotton Ginning | 115111 |
| Soil Preparation Planting And Cultivating | 115112 |
| Crop Harvesting Primarilyby Machine | 115113 |
| Postharvest Crop Activities Except Cotton Ginning | 115114 |
| Farm Labor Contractors And Crew Leaders | 115115 |
| Farm Management Services | 115116 |
| Support Activities For Animal Production | 115210 |
| Support Activities For Forestry | 115310 |
| Crude Petroleum Extraction | 211120 |
| Natural Gas Extraction | 211130 |
| Surface Coal Mining | 212114 |
| Underground Coal Mining | 212115 |
| Iron Ore Mining | 212210 |
| Gold Ore And Silver Ore Mining | 212220 |
| Copper Nickel Lead And Zinc Mining | 212230 |
| Other Metal Ore Mining | 212290 |
| Dimension Stone Mining And Quarrying | 212311 |
| Crushed And Broken Limestone Mining And Quarrying | 212312 |
| Crushed And Broken Granite Mining And Quarrying | 212313 |
| Other Crushed And Broken Stone Mining And Quarrying | 212319 |
| Construction Sand And Gravel Mining | 212321 |
| Industrial Sand Mining | 212322 |
| Kaolin Clay And Ceramic And Refractory Minerals Mining | 212323 |
| Other Nonmetallic Mineral Mining And Quarrying | 212390 |
| Drilling Oil And Gas Wells | 213111 |
| Support Activities For Oil And Gas Operations | 213112 |
| Support Activities For Coal Mining | 213113 |
| Support Activities For Metal Mining | 213114 |
| Support Activities For Nonmetallic Minerals Except Fuels Mining | 213115 |
| Hydroelectric Power Generation | 221111 |
| Fossil Fuel Electric Power Generation | 221112 |
| Nuclear Electric Power Generation | 221113 |
| Solar Electric Power Generation | 221114 |
| Wind Electric Power Generation | 221115 |
| Geothermal Electric Power Generation | 221116 |
| Biomass Electric Power Generation | 221117 |
| Other Electric Power Generation | 221118 |
| Electric Bulk Power Transmission And Control | 221121 |
| Electric Power Distribution | 221122 |
| Natural Gas Distribution | 221210 |
| Water Supply And Irrigation Systems | 221310 |
| Sewage Treatment Facilities | 221320 |
| Steam And Air Conditioning Supply | 221330 |
| New Single Family Housing Construction Except For Sale Builders | 236115 |
| New Multifamily Housing Construction Except For Sale Builders | 236116 |
| New Housing For Sale Builders | 236117 |
| Residential Remodelers | 236118 |
| Industrial Building Construction | 236210 |
| Commercial And Institutional Building Construction | 236220 |
| Water And Sewer Line And Related Structures Construction | 237110 |
| Oil And Gas Pipeline And Related Structures Construction | 237120 |
| Power And Communication Line And Related Structures Construction | 237130 |
| Land Subdivision | 237210 |
| Highway Street And Bridge Construction | 237310 |
| Other Heavy And Civil Engineering Construction | 237990 |
| Poured Concrete Foundation And Structure Contractors | 238110 |
| Residential Poured Concrete Foundation And Structure Contractors | 238111 |
| Non Residential Poured Concrete Foundation And Structure Contractors | 238112 |
| Residential Structural Steel And Precast Concrete Contractors | 238121 |
| Non Residential Structural Steel And Precast Concrete Contractors | 238122 |
| Residential Framing Contractors | 238131 |
| Non Residential Framing Contractors | 238132 |
| Masonry Contractors | 238140 |
| Residential Masonry Contractors | 238141 |
| Non Residential Masonry Contractors | 238142 |
| Residential Glass And Glazing Contractors | 238151 |
| Non Residential Glass And Glazing Contractors | 238152 |
| Roofing Contractors | 238160 |
| Residential Roofing Contractors | 238161 |
| Non Residential Roofing Contractors | 238162 |
| Residential Siding Contractors | 238171 |
| Non Residential Siding Contractors | 238172 |
| Residential Other Foundation Structure And Building Exterior Contractors | 238191 |
| Non Residential Other Foundation Structure And Building Exterior Contractors | 238192 |
| Electrical Contractors And Other Wiring Installation Contractors | 238210 |
| Residential Electrical Contractors And Other Wiring Installation Contractors | 238211 |
| Non Residential Electrical Contractors And Other Wiring Installation Contractors | 238212 |
| Plumbing Heating And Air Conditioning Contractors | 238220 |
| Residential Plumbing Heating And Air Conditioning Contractors | 238221 |
| Non Residential Plumbing Heating And Air Conditioning Contractors | 238222 |
| Residential Other Building Equipment Contractors | 238291 |
| Non Residential Other Building Equipment Contractors | 238292 |
| Residential Drywall And Insulation Contractors | 238311 |
| Non Residential Drywall And Insulation Contractors | 238312 |
| Residential Painting And Wall Covering Contractors | 238321 |
| Non Residential Painting And Wall Covering Contractors | 238322 |
| Residential Flooring Contractors | 238331 |
| Non Residential Flooring Contractors | 238332 |
| Residential Tile And Terrazzo Contractors | 238341 |
| Non Residential Tile And Terrazzo Contractors | 238342 |
| Finish Carpentry Contractors | 238350 |
| Residential Finish Carpentry Contractors | 238351 |
| Non Residential Finish Carpentry Contractors | 238352 |
| Residential Other Building Finishing Contractors | 238391 |
| Non Residential Other Building Finishing Contractors | 238392 |
| Residential Site Preparation Contractors | 238911 |
| Non Residential Site Preparation Contractors | 238912 |
| All Other Specialty Trade Contractors | 238990 |
| Residential All Other Specialty Trade Contractors | 238991 |
| Non Residential All Other Specialty Trade Contractors | 238992 |
| Dog And Cat Food Manufacturing | 311111 |
| Other Animal Food Manufacturing | 311119 |
| Flour Milling | 311211 |
| Rice Milling | 311212 |
| Malt Manufacturing | 311213 |
| Wet Corn Milling And Starch Manufacturing | 311221 |
| Soybean And Other Oilseed Processing | 311224 |
| Fats And Oils Refining And Blending | 311225 |
| Breakfast Cereal Manufacturing | 311230 |
| Beet Sugar Manufacturing | 311313 |
| Cane Sugar Manufacturing | 311314 |
| Nonchocolate Confectionery Manufacturing | 311340 |
| Chocolate And Confectionery Manufacturing From Cacao Beans | 311351 |
| Confectionery Manufacturing From Purchased Chocolate | 311352 |
| Frozen Fruit Juice And Vegetable Manufacturing | 311411 |
| Frozen Specialty Food Manufacturing | 311412 |
| Fruit And Vegetable Canning | 311421 |
| Specialty Canning | 311422 |
| Dried And Dehydrated Food Manufacturing | 311423 |
| Fluid Milk Manufacturing | 311511 |
| Creamery Butter Manufacturing | 311512 |
| Cheese Manufacturing | 311513 |
| Dry Condensed And Evaporated Dairy Product Manufacturing | 311514 |
| Ice Cream And Frozen Dessert Manufacturing | 311520 |
| Animal Except Poultry Slaughtering | 311611 |
| Meat Processed From Carcasses | 311612 |
| Rendering And Meat Byproduct Processing | 311613 |
| Poultry Processing | 311615 |
| Seafood Product Preparation And Packaging | 311710 |
| Retail Bakeries | 311811 |
| Commercial Bakeries | 311812 |
| Frozen Cakes Pies And Other Pastries Manufacturing | 311813 |
| Cookie And Cracker Manufacturing | 311821 |
| Dry Pasta Dough And Flour Mixes Manufacturing From Purchased Flour | 311824 |
| Tortilla Manufacturing | 311830 |
| Roasted Nuts And Peanut Butter Manufacturing | 311911 |
| Other Snack Food Manufacturing | 311919 |
| Coffee And Tea Manufacturing | 311920 |
| Flavoring Syrup And Concentrate Manufacturing | 311930 |
| Mayonnaise Dressing And Other Prepared Sauce Manufacturing | 311941 |
| Spice And Extract Manufacturing | 311942 |
| Perishable Prepared Food Manufacturing | 311991 |
| All Other Miscellaneous Food Manufacturing | 311999 |
| Soft Drink Manufacturing | 312111 |
| Bottled Water Manufacturing | 312112 |
| Ice Manufacturing | 312113 |
| Breweries | 312120 |
| Wineries | 312130 |
| Distilleries | 312140 |
| Tobacco Manufacturing | 312230 |
| Fiber Yarn And Thread Mills | 313110 |
| Broadwoven Fabric Mills | 313210 |
| Narrow Fabric Mills And Schiffli Machine Embroidery | 313220 |
| Nonwoven Fabric Mills | 313230 |
| Knit Fabric Mills | 313240 |
| Textile And Fabric Finishing Mills | 313310 |
| Fabric Coating Mills | 313320 |
| Carpet And Rug Mills | 314110 |
| Curtain And Linen Mills | 314120 |
| Textile Bag And Canvas Mills | 314910 |
| Rope Cordage Twine Tire Cord And Tire Fabric Mills | 314994 |
| All Other Miscellaneous Textile Product Mills | 314999 |
| Apparel Knitting Mills | 315120 |
| Cut And Sew Apparel Contractors | 315210 |
| Cut And Sew Apparel Manufacturing Except Contractors | 315250 |
| Apparel Accessories And Other Apparel Manufacturing | 315990 |
| Leather And Hide Tanning And Finishing | 316110 |
| Footwear Manufacturing | 316210 |
| Other Leather And Allied Product Manufacturing | 316990 |
| Sawmills | 321113 |
| Wood Preservation | 321114 |
| Hardwood Veneer And Plywood Manufacturing | 321211 |
| Softwood Veneer And Plywood Manufacturing | 321212 |
| Engineered Wood Member Manufacturing | 321215 |
| Reconstituted Wood Product Manufacturing | 321219 |
| Wood Window And Door Manufacturing | 321911 |
| Cut Stock Resawing Lumber And Planing | 321912 |
| Other Millwork Including Flooring | 321918 |
| Wood Container And Pallet Manufacturing | 321920 |
| Manufactured Home Mobile Home Manufacturing | 321991 |
| Prefabricated Wood Building Manufacturing | 321992 |
| All Other Miscellaneous Wood Product Manufacturing | 321999 |
| Pulp Mills | 322110 |
| Paper Mills | 322120 |
| Paperboard Mills | 322130 |
| Corrugated And Solid Fiber Box Manufacturing | 322211 |
| Folding Paperboard Box Manufacturing | 322212 |
| Other Paperboard Container Manufacturing | 322219 |
| Paper Bag And Coated And Treated Paper Manufacturing | 322220 |
| Stationery Product Manufacturing | 322230 |
| Sanitary Paper Product Manufacturing | 322291 |
| All Other Converted Paper Product Manufacturing | 322299 |
| Commercial Printing Except Screen And Books | 323111 |
| Commercial Screen Printing | 323113 |
| Books Printing | 323117 |
| Support Activities For Printing | 323120 |
| Petroleum Refineries | 324110 |
| Asphalt Paving Mixture And Block Manufacturing | 324121 |
| Asphalt Shingle And Coating Materials Manufacturing | 324122 |
| Petroleum Lubricating Oil And Grease Manufacturing | 324191 |
| All Other Petroleum And Coal Products Manufacturing | 324199 |
| Petrochemical Manufacturing | 325110 |
| Industrial Gas Manufacturing | 325120 |
| Synthetic Dye And Pigment Manufacturing | 325130 |
| Other Basic Inorganic Chemical Manufacturing | 325180 |
| Ethyl Alcohol Manufacturing | 325193 |
| Cyclic Crude Intermediate And Gum And Wood Chemical Manufacturing | 325194 |
| All Other Basic Organic Chemical Manufacturing | 325199 |
| Plastics Material And Resin Manufacturing | 325211 |
| Synthetic Rubber Manufacturing | 325212 |
| Artificial And Synthetic Fibers And Filaments Manufacturing | 325220 |
| Nitrogenous Fertilizer Manufacturing | 325311 |
| Phosphatic Fertilizer Manufacturing | 325312 |
| Fertilizer Mixing Only Manufacturing | 325314 |
| Compost Manufacturing | 325315 |
| Pesticide And Other Agricultural Chemical Manufacturing | 325320 |
| Medicinal And Botanical Manufacturing | 325411 |
| Pharmaceutical Preparation Manufacturing | 325412 |
| In Vitro Diagnostic Substance Manufacturing | 325413 |
| Biological Product Except Diagnostic Manufacturing | 325414 |
| Paint And Coating Manufacturing | 325510 |
| Adhesive Manufacturing | 325520 |
| Soap And Other Detergent Manufacturing | 325611 |
| Polish And Other Sanitation Good Manufacturing | 325612 |
| Surface Active Agent Manufacturing | 325613 |
| Toilet Preparation Manufacturing | 325620 |
| Printing Ink Manufacturing | 325910 |
| Explosives Manufacturing | 325920 |
| Custom Compounding Of Purchased Resins | 325991 |
| Photographic Film Paper Plate Chemical And Copy Toner Manufacturing | 325992 |
| All Other Miscellaneous Chemical Product And Preparation Manufacturing | 325998 |
| Plastics Bag And Pouch Manufacturing | 326111 |
| Plastics Packaging Film And Sheet Including Laminated Manufacturing | 326112 |
| Unlaminated Plastics Film And Sheet Except Packaging Manufacturing | 326113 |
| Unlaminated Plastics Profile Shape Manufacturing | 326121 |
| Plastics Pipe And Pipe Fitting Manufacturing | 326122 |
| Laminated Plastics Plate Sheet Except Packaging And Shape Manufacturing | 326130 |
| Polystyrene Foam Product Manufacturing | 326140 |
| Urethane And Other Foam Product Except Polystyrene Manufacturing | 326150 |
| Plastics Bottle Manufacturing | 326160 |
| Plastics Plumbing Fixture Manufacturing | 326191 |
| All Other Plastics Product Manufacturing | 326199 |
| Tire Manufacturing Except Retreading | 326211 |
| Tire Retreading | 326212 |
| Rubber And Plastics Hoses And Belting Manufacturing | 326220 |
| Rubber Product Manufacturing For Mechanical Use | 326291 |
| All Other Rubber Product Manufacturing | 326299 |
| Pottery Ceramics And Plumbing Fixture Manufacturing | 327110 |
| Clay Building Material And Refractories Manufacturing | 327120 |
| Flat Glass Manufacturing | 327211 |
| Other Pressed And Blown Glass And Glassware Manufacturing | 327212 |
| Glass Container Manufacturing | 327213 |
| Glass Product Manufacturing Made Of Purchased Glass | 327215 |
| Cement Manufacturing | 327310 |
| Ready Mix Concrete Manufacturing | 327320 |
| Concrete Block And Brick Manufacturing | 327331 |
| Concrete Pipe Manufacturing | 327332 |
| Other Concrete Product Manufacturing | 327390 |
| Lime Manufacturing | 327410 |
| Gypsum Product Manufacturing | 327420 |
| Abrasive Product Manufacturing | 327910 |
| Cut Stone And Stone Product Manufacturing | 327991 |
| Ground Or Treated Mineral And Earth Manufacturing | 327992 |
| Mineral Wool Manufacturing | 327993 |
| All Other Miscellaneous Nonmetallic Mineral Product Manufacturing | 327999 |
| Iron And Steel Mills And Ferroalloy Manufacturing | 331110 |
| Iron And Steel Pipe And Tube Manufacturing From Purchased Steel | 331210 |
| Rolled Steel Shape Manufacturing | 331221 |
| Steel Wire Drawing | 331222 |
| Alumina Refining And Primary Aluminum Production | 331313 |
| Secondary Smelting And Alloying Of Aluminum | 331314 |
| Aluminum Sheet Plate And Foil Manufacturing | 331315 |
| Other Aluminum Rolling Drawing And Extruding | 331318 |
| Nonferrous Metal Except Aluminum Smelting And Refining | 331410 |
| Copper Rolling Drawing Extruding And Alloying | 331420 |
| Nonferrous Metal Except Copper And Aluminum Rolling Drawing And Extruding | 331491 |
| Secondary Smelting Refining And Alloying Of Nonferrous Metal Except Copper And Aluminum | 331492 |
| Iron Foundries | 331511 |
| Steel Investment Foundries | 331512 |
| Steel Foundries Except Investment | 331513 |
| Nonferrous Metal Die Casting Foundries | 331523 |
| Aluminum Foundries Except Die Casting | 331524 |
| Other Nonferrous Metal Foundries Except Die Casting | 331529 |
| Iron And Steel Forging | 332111 |
| Nonferrous Forging | 332112 |
| Custom Roll Forming | 332114 |
| Powder Metallurgy Part Manufacturing | 332117 |
| Metal Crown Closure And Other Metal Stamping Except Automotive | 332119 |
| Metal Kitchen Cookware Utensil Cutlery And Flatware Except Precious Manufacturing | 332215 |
| Saw Blade And Handtool Manufacturing | 332216 |
| Prefabricated Metal Building And Component Manufacturing | 332311 |
| Fabricated Structural Metal Manufacturing | 332312 |
| Plate Work Manufacturing | 332313 |
| Metal Window And Door Manufacturing | 332321 |
| Sheet Metal Work Manufacturing | 332322 |
| Ornamental And Architectural Metal Work Manufacturing | 332323 |
| Power Boiler And Heat Exchanger Manufacturing | 332410 |
| Metal Tank Heavy Gauge Manufacturing | 332420 |
| Metal Can Manufacturing | 332431 |
| Other Metal Container Manufacturing | 332439 |
| Hardware Manufacturing | 332510 |
| Spring Manufacturing | 332613 |
| Other Fabricated Wire Product Manufacturing | 332618 |
| Machine Shops | 332710 |
| Precision Turned Product Manufacturing | 332721 |
| Bolt Nut Screw Rivet And Washer Manufacturing | 332722 |
| Metal Heat Treating | 332811 |
| Metal Coating Engraving Except Jewelry And Silverware And Allied Servicesto Manufacturers | 332812 |
| Electroplating Plating Polishing Anodizing And Coloring | 332813 |
| Industrial Valve Manufacturing | 332911 |
| Fluid Power Valve And Hose Fitting Manufacturing | 332912 |
| Plumbing Fixture Fitting And Trim Manufacturing | 332913 |
| Other Metal Valve And Pipe Fitting Manufacturing | 332919 |
| Ball And Roller Bearing Manufacturing | 332991 |
| Small Arms Ammunition Manufacturing | 332992 |
| Ammunition Except Small Arms Manufacturing | 332993 |
| Small Arms Ordnance And Ordnance Accessories Manufacturing | 332994 |
| Fabricated Pipe And Pipe Fitting Manufacturing | 332996 |
| All Other Miscellaneous Fabricated Metal Product Manufacturing | 332999 |
| Farm Machinery And Equipment Manufacturing | 333111 |
| Lawn And Garden Tractor And Home Lawn And Garden Equipment Manufacturing | 333112 |
| Construction Machinery Manufacturing | 333120 |
| Mining Machinery And Equipment Manufacturing | 333131 |
| Oil And Gas Field Machinery And Equipment Manufacturing | 333132 |
| Food Product Machinery Manufacturing | 333241 |
| Semiconductor Machinery Manufacturing | 333242 |
| Sawmill Woodworking And Paper Machinery Manufacturing | 333243 |
| All Other Industrial Machinery Manufacturing | 333248 |
| Commercial And Service Industry Machinery Manufacturing | 333310 |
| Industrial And Commercial Fan And Blower And Air Purification Equipment Manufacturing | 333413 |
| Heating Equipment Except Warm Air Furnaces Manufacturing | 333414 |
| Air Conditioning And Warm Air Heating Equipment And Commercial And Industrial Refrigeration Equipment Manufacturing | 333415 |
| Industrial Mold Manufacturing | 333511 |
| Special Die And Tool Die Set Jig And Fixture Manufacturing | 333514 |
| Cutting Tool And Machine Tool Accessory Manufacturing | 333515 |
| Machine Tool Manufacturing | 333517 |
| Rolling Mill And Other Metalworking Machinery Manufacturing | 333519 |
| Turbine And Turbine Generator Set Units Manufacturing | 333611 |
| Speed Changer Industrial High Speed Drive And Gear Manufacturing | 333612 |
| Mechanical Power Transmission Equipment Manufacturing | 333613 |
| Other Engine Equipment Manufacturing | 333618 |
| Air And Gas Compressor Manufacturing | 333912 |
| Measuring Dispensing And Other Pumping Equipment Manufacturing | 333914 |
| Elevator And Moving Stairway Manufacturing | 333921 |
| Conveyor And Conveying Equipment Manufacturing | 333922 |
| Overhead Traveling Crane Hoist And Monorail System Manufacturing | 333923 |
| Industrial Truck Tractor Trailer And Stacker Machinery Manufacturing | 333924 |
| Power Driven Handtool Manufacturing | 333991 |
| Welding And Soldering Equipment Manufacturing | 333992 |
| Packaging Machinery Manufacturing | 333993 |
| Industrial Process Furnace And Oven Manufacturing | 333994 |
| Fluid Power Cylinder And Actuator Manufacturing | 333995 |
| Fluid Power Pump And Motor Manufacturing | 333996 |
| All Other Miscellaneous General Purpose Machinery Manufacturing | 333998 |
| Electronic Computer Manufacturing | 334111 |
| Computer Storage Device Manufacturing | 334112 |
| Computer Terminal And Other Computer Peripheral Equipment Manufacturing | 334118 |
| Telephone Apparatus Manufacturing | 334210 |
| Radio And Television Broadcasting And Wireless Communications Equipment Manufacturing | 334220 |
| Other Communications Equipment Manufacturing | 334290 |
| Audio And Video Equipment Manufacturing | 334310 |
| Bare Printed Circuit Board Manufacturing | 334412 |
| Semiconductor And Related Device Manufacturing | 334413 |
| Capacitor Resistor Coil Transformer And Other Inductor Manufacturing | 334416 |
| Electronic Connector Manufacturing | 334417 |
| Printed Circuit Assembly Electronic Assembly Manufacturing | 334418 |
| Other Electronic Component Manufacturing | 334419 |
| Electromedical And Electrotherapeutic Apparatus Manufacturing | 334510 |
| Search Detection Navigation Guidance Aeronautical And Nautical System And Instrument Manufacturing | 334511 |
| Automatic Environmental Control Manufacturing For Residential Commercial And Appliance Use | 334512 |
| Instruments And Related Products Manufacturing For Measuring Displaying And Controlling Industrial Process Variables | 334513 |
| Totalizing Fluid Meter And Counting Device Manufacturing | 334514 |
| Instrument Manufacturing For Measuring And Testing Electricity And Electrical Signals | 334515 |
| Analytical Laboratory Instrument Manufacturing | 334516 |
| Irradiation Apparatus Manufacturing | 334517 |
| Other Measuring And Controlling Device Manufacturing | 334519 |
| Manufacturing And Reproducing Magnetic And Optical Media | 334610 |
| Residential Electric Lighting Fixture Manufacturing | 335131 |
| Commercial Industrial And Institutional Electric Lighting Fixture Manufacturing | 335132 |
| Electric Lamp Bulb And Other Lighting Equipment Manufacturing | 335139 |
| Small Electrical Appliance Manufacturing | 335210 |
| Major Household Appliance Manufacturing | 335220 |
| Power Distribution And Specialty Transformer Manufacturing | 335311 |
| Motor And Generator Manufacturing | 335312 |
| Switchgear And Switchboard Apparatus Manufacturing | 335313 |
| Relay And Industrial Control Manufacturing | 335314 |
| Battery Manufacturing | 335910 |
| Fiber Optic Cable Manufacturing | 335921 |
| Other Communication And Energy Wire Manufacturing | 335929 |
| Current Carrying Wiring Device Manufacturing | 335931 |
| Noncurrent Carrying Wiring Device Manufacturing | 335932 |
| Carbon And Graphite Product Manufacturing | 335991 |
| All Other Miscellaneous Electrical Equipment And Component Manufacturing | 335999 |
| Automobile And Light Duty Motor Vehicle Manufacturing | 336110 |
| Heavy Duty Truck Manufacturing | 336120 |
| Motor Vehicle Body Manufacturing | 336211 |
| Truck Trailer Manufacturing | 336212 |
| Motor Home Manufacturing | 336213 |
| Travel Trailer And Camper Manufacturing | 336214 |
| Motor Vehicle Gasoline Engine And Engine Parts Manufacturing | 336310 |
| Motor Vehicle Electrical And Electronic Equipment Manufacturing | 336320 |
| Motor Vehicle Steering And Suspension Components Except Spring Manufacturing | 336330 |
| Motor Vehicle Brake System Manufacturing | 336340 |
| Motor Vehicle Transmission And Power Train Parts Manufacturing | 336350 |
| Motor Vehicle Seating And Interior Trim Manufacturing | 336360 |
| Motor Vehicle Metal Stamping | 336370 |
| Other Motor Vehicle Parts Manufacturing | 336390 |
| Aircraft Manufacturing | 336411 |
| Aircraft Engine And Engine Parts Manufacturing | 336412 |
| Other Aircraft Parts And Auxiliary Equipment Manufacturing | 336413 |
| Guided Missile And Space Vehicle Manufacturing | 336414 |
| Guided Missile And Space Vehicle Propulsion Unit And Propulsion Unit Parts Manufacturing | 336415 |
| Other Guided Missile And Space Vehicle Parts And Auxiliary Equipment Manufacturing | 336419 |
| Railroad Rolling Stock Manufacturing | 336510 |
| Ship Building And Repairing | 336611 |
| Boat Building | 336612 |
| Motorcycle Bicycle And Parts Manufacturing | 336991 |
| Military Armored Vehicle Tank And Tank Component Manufacturing | 336992 |
| All Other Transportation Equipment Manufacturing | 336999 |
| Wood Kitchen Cabinet And Countertop Manufacturing | 337110 |
| Upholstered Household Furniture Manufacturing | 337121 |
| Nonupholstered Wood Household Furniture Manufacturing | 337122 |
| Household Furniture Except Wood And Upholstered Manufacturing | 337126 |
| Institutional Furniture Manufacturing | 337127 |
| Wood Office Furniture Manufacturing | 337211 |
| Custom Architectural Woodwork And Millwork Manufacturing | 337212 |
| Office Furniture Except Wood Manufacturing | 337214 |
| Showcase Partition Shelving And Locker Manufacturing | 337215 |
| Mattress Manufacturing | 337910 |
| Blind And Shade Manufacturing | 337920 |
| Surgical And Medical Instrument Manufacturing | 339112 |
| Surgical Appliance And Supplies Manufacturing | 339113 |
| Dental Equipment And Supplies Manufacturing | 339114 |
| Ophthalmic Goods Manufacturing | 339115 |
| Dental Laboratories | 339116 |
| Jewelry And Silverware Manufacturing | 339910 |
| Sporting And Athletic Goods Manufacturing | 339920 |
| Doll Toy And Game Manufacturing | 339930 |
| Office Supplies Except Paper Manufacturing | 339940 |
| Sign Manufacturing | 339950 |
| Gasket Packing And Sealing Device Manufacturing | 339991 |
| Musical Instrument Manufacturing | 339992 |
| Fastener Button Needle And Pin Manufacturing | 339993 |
| Broom Brush And Mop Manufacturing | 339994 |
| Burial Casket Manufacturing | 339995 |
| All Other Miscellaneous Manufacturing | 339999 |
| Automobile And Other Motor Vehicle Merchant Wholesalers | 423110 |
| Motor Vehicle Supplies And New Parts Merchant Wholesalers | 423120 |
| Tire And Tube Merchant Wholesalers | 423130 |
| Motor Vehicle Parts Used Merchant Wholesalers | 423140 |
| Furniture Merchant Wholesalers | 423210 |
| Home Furnishing Merchant Wholesalers | 423220 |
| Lumber Plywood Millwork And Wood Panel Merchant Wholesalers | 423310 |
| Brick Stone And Related Construction Material Merchant Wholesalers | 423320 |
| Roofing Siding And Insulation Material Merchant Wholesalers | 423330 |
| Other Construction Material Merchant Wholesalers | 423390 |
| Photographic Equipment And Supplies Merchant Wholesalers | 423410 |
| Office Equipment Merchant Wholesalers | 423420 |
| Computer And Computer Peripheral Equipment And Software Merchant Wholesalers | 423430 |
| Other Commercial Equipment Merchant Wholesalers | 423440 |
| Medical Dental And Hospital Equipment And Supplies Merchant Wholesalers | 423450 |
| Ophthalmic Goods Merchant Wholesalers | 423460 |
| Other Professional Equipment And Supplies Merchant Wholesalers | 423490 |
| Metal Service Centers And Other Metal Merchant Wholesalers | 423510 |
| Coal And Other Mineral And Ore Merchant Wholesalers | 423520 |
| Electrical Apparatus And Equipment Wiring Supplies And Related Equipment Merchant Wholesalers | 423610 |
| Household Appliances Electric Housewares And Consumer Electronics Merchant Wholesalers | 423620 |
| Other Electronic Parts And Equipment Merchant Wholesalers | 423690 |
| Hardware Merchant Wholesalers | 423710 |
| Plumbing And Heating Equipment And Supplies Hydronics Merchant Wholesalers | 423720 |
| Warm Air Heating And Air Conditioning Equipment And Supplies Merchant Wholesalers | 423730 |
| Refrigeration Equipment And Supplies Merchant Wholesalers | 423740 |
| Construction And Mining Except Oil Well Machinery And Equipment Merchant Wholesalers | 423810 |
| Farm And Garden Machinery And Equipment Merchant Wholesalers | 423820 |
| Industrial Machinery And Equipment Merchant Wholesalers | 423830 |
| Industrial Supplies Merchant Wholesalers | 423840 |
| Service Establishment Equipment And Supplies Merchant Wholesalers | 423850 |
| Transportation Equipment And Supplies Except Motor Vehicle Merchant Wholesalers | 423860 |
| Sporting And Recreational Goods And Supplies Merchant Wholesalers | 423910 |
| Toy And Hobby Goods And Supplies Merchant Wholesalers | 423920 |
| Recyclable Material Merchant Wholesalers | 423930 |
| Jewelry Watch Precious Stone And Precious Metal Merchant Wholesalers | 423940 |
| Other Miscellaneous Durable Goods Merchant Wholesalers | 423990 |
| Printing And Writing Paper Merchant Wholesalers | 424110 |
| Stationery And Office Supplies Merchant Wholesalers | 424120 |
| Industrial And Personal Service Paper Merchant Wholesalers | 424130 |
| Drugs And Druggists Sundries Merchant Wholesalers | 424210 |
| Piece Goods Notions And Other Dry Goods Merchant Wholesalers | 424310 |
| Footwear Merchant Wholesalers | 424340 |
| Clothing And Clothing Accessories Merchant Wholesalers | 424350 |
| General Line Grocery Merchant Wholesalers | 424410 |
| Packaged Frozen Food Merchant Wholesalers | 424420 |
| Dairy Product Except Dried Or Canned Merchant Wholesalers | 424430 |
| Poultry And Poultry Product Merchant Wholesalers | 424440 |
| Confectionery Merchant Wholesalers | 424450 |
| Fish And Seafood Merchant Wholesalers | 424460 |
| Meat And Meat Product Merchant Wholesalers | 424470 |
| Fresh Fruit And Vegetable Merchant Wholesalers | 424480 |
| Other Grocery And Related Products Merchant Wholesalers | 424490 |
| Grain And Field Bean Merchant Wholesalers | 424510 |
| Livestock Merchant Wholesalers | 424520 |
| Other Farm Product Raw Material Merchant Wholesalers | 424590 |
| Plastics Materials And Basic Forms And Shapes Merchant Wholesalers | 424610 |
| Other Chemical And Allied Products Merchant Wholesalers | 424690 |
| Petroleum Bulk Stations And Terminals | 424710 |
| Petroleum And Petroleum Products Merchant Wholesalers Except Bulk Stations And Terminals | 424720 |
| Beer And Ale Merchant Wholesalers | 424810 |
| Wine And Distilled Alcoholic Beverage Merchant Wholesalers | 424820 |
| Farm Supplies Merchant Wholesalers | 424910 |
| Book Periodical And Newspaper Merchant Wholesalers | 424920 |
| Flower Nursery Stock And Florists Supplies Merchant Wholesalers | 424930 |
| Tobacco Product And Electronic Cigarette Merchant Wholesalers | 424940 |
| Paint Varnish And Supplies Merchant Wholesalers | 424950 |
| Other Miscellaneous Nondurable Goods Merchant Wholesalers | 424990 |
| Wholesale Trade Agents And Brokers | 425120 |
| New Car Dealers | 441110 |
| Used Car Dealers | 441120 |
| Recreational Vehicle Dealers | 441210 |
| Boat Dealers | 441222 |
| Motorcycle ATV And All Other Motor Vehicle Dealers | 441227 |
| Automotive Parts And Accessories Retailers | 441330 |
| Tire Dealers | 441340 |
| Home Centers | 444110 |
| Paint And Wallpaper Retailers | 444120 |
| Hardware Retailers | 444140 |
| Other Building Material Dealers | 444180 |
| Outdoor Power Equipment Retailers | 444230 |
| Nursery Garden Center And Farm Supply Retailers | 444240 |
| Supermarkets And Other Grocery Retailers Except Convenience Retailers | 445110 |
| Convenience Retailers | 445131 |
| Vending Machine Operators | 445132 |
| Fruit And Vegetable Retailers | 445230 |
| Meat Retailers | 445240 |
| Fish And Seafood Retailers | 445250 |
| Baked Goods Retailers | 445291 |
| Confectionery And Nut Retailers | 445292 |
| All Other Specialty Food Retailers | 445298 |
| Beer Wine And Liquor Retailers | 445320 |
| Furniture Retailers | 449110 |
| Floor Covering Retailers | 449121 |
| Window Treatment Retailers | 449122 |
| All Other Home Furnishings Retailers | 449129 |
| Electronics And Appliance Retailers | 449210 |
| Mail Order Houses | 454113 |
| Other Direct Selling Establishments | 454390 |
| Department Stores | 455110 |
| Warehouse Clubs And Supercenters | 455211 |
| All Other General Merchandise Retailers | 455219 |
| Pharmacies And Drug Retailers | 456110 |
| Cosmetics Beauty Supplies And Perfume Retailers | 456120 |
| Optical Goods Retailers | 456130 |
| Food Health Supplement Retailers | 456191 |
| All Other Health And Personal Care Retailers | 456199 |
| Gasoline Stations With Convenience Stores | 457110 |
| Other Gasoline Stations | 457120 |
| Fuel Dealers | 457210 |
| Clothing And Clothing Accessories Retailers | 458110 |
| Shoe Retailers | 458210 |
| Jewelry Retailers | 458310 |
| Luggage And Leather Goods Retailers | 458320 |
| Sporting Goods Retailers | 459110 |
| Hobby Toy And Game Retailers | 459120 |
| Sewing Needlework And Piece Goods Retailers | 459130 |
| Musical Instrument And Supplies Retailers | 459140 |
| Book Retailers And News Dealers | 459210 |
| Florists | 459310 |
| Office Supplies And Stationery Retailers | 459410 |
| Gift Novelty And Souvenir Retailers | 459420 |
| Used Merchandise Retailers | 459510 |
| Pet And Pet Supplies Retailers | 459910 |
| Art Dealers | 459920 |
| Manufactured Mobile Home Dealers | 459930 |
| Tobacco Electronic Cigarette And Other Smoking Supplies Retailers | 459991 |
| All Other Miscellaneous Retailers | 459999 |
| Scheduled Passenger Air Transportation | 481111 |
| Scheduled Freight Air Transportation | 481112 |
| Nonscheduled Chartered Passenger Air Transportation | 481211 |
| Nonscheduled Chartered Freight Air Transportation | 481212 |
| Other Nonscheduled Air Transportation | 481219 |
| Line Haul Railroads | 482111 |
| Short Line Railroads | 482112 |
| Deep Sea Freight Transportation | 483111 |
| Deep Sea Passenger Transportation | 483112 |
| Coastal And Great Lakes Freight Transportation | 483113 |
| Coastal And Great Lakes Passenger Transportation | 483114 |
| Inland Water Freight Transportation | 483211 |
| Inland Water Passenger Transportation | 483212 |
| General Freight Trucking Local | 484110 |
| General Freight Trucking Long Distance Truckload | 484121 |
| General Freight Trucking Long Distance Less Than Truckload | 484122 |
| Used Household And Office Goods Moving | 484210 |
| Specialized Freight Except Used Goods Trucking Local | 484220 |
| Specialized Freight Except Used Goods Trucking Long Distance | 484230 |
| Mixed Mode Transit Systems | 485111 |
| Commuter Rail Systems | 485112 |
| Bus And Other Motor Vehicle Transit Systems | 485113 |
| Other Urban Transit Systems | 485119 |
| Interurban And Rural Bus Transportation | 485210 |
| Taxi And Ridesharing Services | 485310 |
| Limousine Service | 485320 |
| School And Employee Bus Transportation | 485410 |
| Charter Bus Industry | 485510 |
| Special Needs Transportation | 485991 |
| All Other Transit And Ground Passenger Transportation | 485999 |
| Pipeline Transportation Of Crude Oil | 486110 |
| Pipeline Transportation Of Natural Gas | 486210 |
| Pipeline Transportation Of Refined Petroleum Products | 486910 |
| All Other Pipeline Transportation | 486990 |
| Scenic And Sightseeing Transportation Land | 487110 |
| Scenic And Sightseeing Transportation Water | 487210 |
| Scenic And Sightseeing Transportation Other | 487990 |
| Air Traffic Control | 488111 |
| Other Airport Operations | 488119 |
| Other Support Activities For Air Transportation | 488190 |
| Support Activities For Rail Transportation | 488210 |
| Port And Harbor Operations | 488310 |
| Marine Cargo Handling | 488320 |
| Navigational Services To Shipping | 488330 |
| Other Support Activities For Water Transportation | 488390 |
| Motor Vehicle Towing | 488410 |
| Other Support Activities For Road Transportation | 488490 |
| Freight Transportation Arrangement | 488510 |
| Packing And Crating | 488991 |
| All Other Support Activities For Transportation | 488999 |
| Postal Service | 491110 |
| Couriers And Express Delivery Services | 492110 |
| Local Messengers And Local Delivery | 492210 |
| General Warehousing And Storage | 493110 |
| Refrigerated Warehousing And Storage | 493120 |
| Farm Product Warehousing And Storage | 493130 |
| Other Warehousing And Storage | 493190 |
| Motion Picture And Video Production | 512110 |
| Motion Picture And Video Distribution | 512120 |
| Motion Picture Theaters Except Drive Ins | 512131 |
| Drive In Motion Picture Theaters | 512132 |
| Teleproduction And Other Postproduction Services | 512191 |
| Other Motion Picture And Video Industries | 512199 |
| Music Publishers | 512230 |
| Sound Recording Studios | 512240 |
| Record Production And Distribution | 512250 |
| Other Sound Recording Industries | 512290 |
| Newspaper Publishers | 513110 |
| Periodical Publishers | 513120 |
| Book Publishers | 513130 |
| Directory And Mailing List Publishers | 513140 |
| Greeting Card Publishers | 513191 |
| All Other Publishers | 513199 |
| Software Publishers | 513210 |
| Cable And Other Subscription Programming | 515210 |
| Radio Broadcasting Stations | 516110 |
| Television Broadcasting Stations | 516120 |
| Media Streaming Distribution Services Social Networks And Other Media Networks And Content Providers | 516210 |
| Wired Telecommunications Carriers | 517111 |
| Wireless Telecommunications Carriers Except Satellite | 517112 |
| Telecommunications Resellers | 517121 |
| Satellite Telecommunications | 517410 |
| All Other Telecommunications | 517810 |
| Computing Infrastructure Providers Data Processing Web Hosting And Related Services | 518210 |
| Libraries And Archives | 519210 |
| Web Search Portals And All Other Information Services | 519290 |
| Monetary Authorities Central Bank | 521110 |
| Commercial Banking | 522110 |
| Credit Unions | 522130 |
| Savings Institutions And Other Depository Credit Intermediation | 522180 |
| Credit Card Issuing | 522210 |
| Sales Financing | 522220 |
| Consumer Lending | 522291 |
| Real Estate Credit | 522292 |
| All Other Nondepository Credit Intermediation | 522298 |
| International Secondary Market And All Other Nondepository Credit Intermediation | 522299 |
| Mortgage And Nonmortgage Loan Brokers | 522310 |
| Financial Transactions Processing Reserve And Clearinghouse Activities | 522320 |
| Other Activities Related To Credit Intermediation | 522390 |
| Investment Banking And Securities Intermediation | 523150 |
| Commodity Contracts Intermediation | 523160 |
| Securities And Commodity Exchanges | 523210 |
| Miscellaneous Intermediation | 523910 |
| Portfolio Management And Investment Advice | 523940 |
| Trust Fiduciary And Custody Activities | 523991 |
| Miscellaneous Financial Investment Activities | 523999 |
| Direct Life Insurance Carriers | 524113 |
| Direct Health And Medical Insurance Carriers | 524114 |
| Direct Property And Casualty Insurance Carriers | 524126 |
| Direct Title Insurance Carriers | 524127 |
| Other Direct Insurance Except Life Health And Medical Carriers | 524128 |
| Reinsurance Carriers | 524130 |
| Insurance Agencies And Brokerages | 524210 |
| Claims Adjusting | 524291 |
| Pharmacy Benefit Management And Other Third Party Administration Of Insurance And Pension Funds | 524292 |
| All Other Insurance Related Activities | 524298 |
| Pension Funds | 525110 |
| Health And Welfare Funds | 525120 |
| Other Insurance Funds | 525190 |
| Open End Investment Funds | 525910 |
| Trusts Estates And Agency Accounts | 525920 |
| Other Financial Vehicles | 525990 |
| Lessors Of Residential Buildings And Dwellings | 531110 |
| Lessors Of Nonresidential Buildings Except Miniwarehouses | 531120 |
| Lessors Of Miniwarehouses And Self Storage Units | 531130 |
| Lessors Of Other Real Estate Property | 531190 |
| Offices Of Real Estate Agents And Brokers | 531210 |
| Residential Property Managers | 531311 |
| Nonresidential Property Managers | 531312 |
| Offices Of Real Estate Appraisers | 531320 |
| Other Activities Related To Real Estate | 531390 |
| Passenger Car Rental | 532111 |
| Passenger Car Leasing | 532112 |
| Truck Utility Trailer And RV Recreational Vehicle Rental And Leasing | 532120 |
| Consumer Electronics And Appliances Rental | 532210 |
| Formal Wear And Costume Rental | 532281 |
| Video Tape And Disc Rental | 532282 |
| Home Health Equipment Rental | 532283 |
| Recreational Goods Rental | 532284 |
| All Other Consumer Goods Rental | 532289 |
| General Rental Centers | 532310 |
| Commercial Air Rail And Water Transportation Equipment Rental And Leasing | 532411 |
| Construction Mining And Forestry Machinery And Equipment Rental And Leasing | 532412 |
| Office Machinery And Equipment Rental And Leasing | 532420 |
| Other Commercial And Industrial Machinery And Equipment Rental And Leasing | 532490 |
| Lessors Of Nonfinancial Intangible Assets Except Copyrighted Works | 533110 |
| Offices Of Lawyers | 541110 |
| Title Abstract And Settlement Offices | 541191 |
| All Other Legal Services | 541199 |
| Offices Of Certified Public Accountants | 541211 |
| Tax Preparation Services | 541213 |
| Payroll Services | 541214 |
| Other Accounting Services | 541219 |
| Architectural Services | 541310 |
| Landscape Architectural Services | 541320 |
| Engineering Services | 541330 |
| Drafting Services | 541340 |
| Building Inspection Services | 541350 |
| Geophysical Surveying And Mapping Services | 541360 |
| Surveying And Mapping Except Geophysical Services | 541370 |
| Testing Laboratories And Services | 541380 |
| Interior Design Services | 541410 |
| Industrial Design Services | 541420 |
| Graphic Design Services | 541430 |
| Other Specialized Design Services | 541490 |
| Custom Computer Programming Services | 541511 |
| Computer Systems Design Services | 541512 |
| Computer Facilities Management Services | 541513 |
| Other Computer Related Services | 541519 |
| Administrative Management And General Management Consulting Services | 541611 |
| Human Resources Consulting Services | 541612 |
| Marketing Consulting Services | 541613 |
| Process Physical Distribution And Logistics Consulting Services | 541614 |
| Other Management Consulting Services | 541618 |
| Environmental Consulting Services | 541620 |
| Other Scientific And Technical Consulting Services | 541690 |
| Research And Development In Nanotechnology | 541713 |
| Research And Development In Biotechnology Except Nanobiotechnology | 541714 |
| Research And Development In The Physical Engineering And Life Sciences Except Nanotechnology And Biotechnology | 541715 |
| Research And Development In The Social Sciences And Humanities | 541720 |
| Advertising Agencies | 541810 |
| Public Relations Agencies | 541820 |
| Media Buying Agencies | 541830 |
| Media Representatives | 541840 |
| Indoor And Outdoor Display Advertising | 541850 |
| Direct Mail Advertising | 541860 |
| Advertising Material Distribution Services | 541870 |
| Other Services Related To Advertising | 541890 |
| Marketing Research And Public Opinion Polling | 541910 |
| Photography Studios Portrait | 541921 |
| Commercial Photography | 541922 |
| Translation And Interpretation Services | 541930 |
| Veterinary Services | 541940 |
| All Other Professional Scientific And Technical Services | 541990 |
| Offices Of Bank Holding Companies | 551111 |
| Offices Of Other Holding Companies | 551112 |
| Corporate Subsidiary And Regional Managing Offices | 551114 |
| Office Administrative Services | 561110 |
| Facilities Support Services | 561210 |
| Employment Placement Agencies | 561311 |
| Executive Search Services | 561312 |
| Temporary Help Services | 561320 |
| Professional Employer Organizations | 561330 |
| Document Preparation Services | 561410 |
| Telephone Answering Services | 561421 |
| Telemarketing Bureaus And Other Contact Centers | 561422 |
| Private Mail Centers | 561431 |
| Other Business Service Centers Including Copy Shops | 561439 |
| Collection Agencies | 561440 |
| Credit Bureaus | 561450 |
| Repossession Services | 561491 |
| Court Reporting And Stenotype Services | 561492 |
| All Other Business Support Services | 561499 |
| Travel Agencies | 561510 |
| Tour Operators | 561520 |
| Convention And Visitors Bureaus | 561591 |
| All Other Travel Arrangement And Reservation Services | 561599 |
| Investigation And Personal Background Check Services | 561611 |
| Security Guards And Patrol Services | 561612 |
| Armored Car Services | 561613 |
| Security Systems Services Except Locksmiths | 561621 |
| Locksmiths | 561622 |
| Exterminating And Pest Control Services | 561710 |
| Janitorial Services | 561720 |
| Landscaping Services | 561730 |
| Carpet And Upholstery Cleaning Services | 561740 |
| Other Services To Buildings And Dwellings | 561790 |
| Packaging And Labeling Services | 561910 |
| Convention And Trade Show Organizers | 561920 |
| All Other Support Services | 561990 |
| Solid Waste Collection | 562111 |
| Hazardous Waste Collection | 562112 |
| Other Waste Collection | 562119 |
| Hazardous Waste Treatment And Disposal | 562211 |
| Solid Waste Landfill | 562212 |
| Solid Waste Combustors And Incinerators | 562213 |
| Other Nonhazardous Waste Treatment And Disposal | 562219 |
| Remediation Services | 562910 |
| Materials Recovery Facilities | 562920 |
| Septic Tank And Related Services | 562991 |
| All Other Miscellaneous Waste Management Services | 562998 |
| Elementary And Secondary Schools | 611110 |
| Junior Colleges | 611210 |
| Colleges Universities And Professional Schools | 611310 |
| Business And Secretarial Schools | 611410 |
| Computer Training | 611420 |
| Professional And Management Development Training | 611430 |
| Cosmetology And Barber Schools | 611511 |
| Flight Training | 611512 |
| Apprenticeship Training | 611513 |
| Other Technical And Trade Schools | 611519 |
| Fine Arts Schools | 611610 |
| Sports And Recreation Instruction | 611620 |
| Language Schools | 611630 |
| Exam Preparation And Tutoring | 611691 |
| Automobile Driving Schools | 611692 |
| All Other Miscellaneous Schools And Instruction | 611699 |
| Educational Support Services | 611710 |
| Offices Of Physicians Except Mental Health Specialists | 621111 |
| Offices Of Physicians Mental Health Specialists | 621112 |
| Offices Of Dentists | 621210 |
| Offices Of Chiropractors | 621310 |
| Offices Of Optometrists | 621320 |
| Offices Of Mental Health Practitioners Except Physicians | 621330 |
| Offices Of Physical Occupational And Speech Therapists And Audiologists | 621340 |
| Offices Of Podiatrists | 621391 |
| Offices Of All Other Miscellaneous Health Practitioners | 621399 |
| Family Planning Centers | 621410 |
| Outpatient Mental Health And Substance Abuse Centers | 621420 |
| HMO Medical Centers | 621491 |
| Kidney Dialysis Centers | 621492 |
| Freestanding Ambulatory Surgical And Emergency Centers | 621493 |
| All Other Outpatient Care Centers | 621498 |
| Medical Laboratories | 621511 |
| Diagnostic Imaging Centers | 621512 |
| Home Health Care Services | 621610 |
| Ambulance Services | 621910 |
| Blood And Organ Banks | 621991 |
| All Other Miscellaneous Ambulatory Health Care Services | 621999 |
| General Medical And Surgical Hospitals | 622110 |
| Psychiatric And Substance Abuse Hospitals | 622210 |
| Specialty Except Psychiatric And Substance Abuse Hospitals | 622310 |
| Nursing Care Facilities Skilled Nursing Facilities | 623110 |
| Residential Intellectual And Developmental Disability Facilities | 623210 |
| Residential Mental Health And Substance Abuse Facilities | 623220 |
| Continuing Care Retirement Communities | 623311 |
| Assisted Living Facilities For The Elderly | 623312 |
| Other Residential Care Facilities | 623990 |
| Child And Youth Services | 624110 |
| Services For The Elderly And Persons With Disabilities | 624120 |
| Other Individual And Family Services | 624190 |
| Community Food Services | 624210 |
| Temporary Shelters | 624221 |
| Other Community Housing Services | 624229 |
| Emergency And Other Relief Services | 624230 |
| Vocational Rehabilitation Services | 624310 |
| Child Care Services | 624410 |
| Theater Companies And Dinner Theaters | 711110 |
| Dance Companies | 711120 |
| Musical Groups And Artists | 711130 |
| Other Performing Arts Companies | 711190 |
| Sports Teams And Clubs | 711211 |
| Racetracks | 711212 |
| Other Spectator Sports | 711219 |
| Promoters Of Performing Arts Sports And Similar Events With Facilities | 711310 |
| Promoters Of Performing Arts Sports And Similar Events Without Facilities | 711320 |
| Agents And Managers For Artists Athletes Entertainers And Other Public Figures | 711410 |
| Independent Artists Writers And Performers | 711510 |
| Museums | 712110 |
| Historical Sites | 712120 |
| Zoos And Botanical Gardens | 712130 |
| Nature Parks And Other Similar Institutions | 712190 |
| Amusement And Theme Parks | 713110 |
| Amusement Arcades | 713120 |
| Casinos Except Casino Hotels | 713210 |
| Other Gambling Industries | 713290 |
| Golf Courses And Country Clubs | 713910 |
| Skiing Facilities | 713920 |
| Marinas | 713930 |
| Fitness And Recreational Sports Centers | 713940 |
| Bowling Centers | 713950 |
| All Other Amusement And Recreation Industries | 713990 |
| Hotels Except Casino Hotels And Motels | 721110 |
| Casino Hotels | 721120 |
| Bedand Breakfast Inns | 721191 |
| All Other Traveler Accommodation | 721199 |
| RV Recreational Vehicle Parks And Campgrounds | 721211 |
| Recreational And Vacation Camps Except Campgrounds | 721214 |
| Rooming And Boarding Houses Dormitories And Workers Camps | 721310 |
| Food Service Contractors | 722310 |
| Caterers | 722320 |
| Mobile Food Services | 722330 |
| Drinking Places Alcoholic Beverages | 722410 |
| Full Service Restaurants | 722511 |
| Limited Service Restaurants | 722513 |
| Cafeterias Grill Buffets And Buffets | 722514 |
| Snack And Nonalcoholic Beverage Bars | 722515 |
| General Automotive Repair | 811111 |
| Specialized Automotive Repair | 811114 |
| Automotive Body Paint And Interior Repair And Maintenance | 811121 |
| Automotive Glass Replacement Shops | 811122 |
| Automotive Oil Change And Lubrication Shops | 811191 |
| Car Washes | 811192 |
| All Other Automotive Repair And Maintenance | 811198 |
| Electronic And Precision Equipment Repair And Maintenance | 811210 |
| Commercial And Industrial Machinery And Equipment Except Automotive And Electronic Repair And Maintenance | 811310 |
| Home And Garden Equipment Repair And Maintenance | 811411 |
| Appliance Repair And Maintenance | 811412 |
| Reupholstery And Furniture Repair | 811420 |
| Footwear And Leather Goods Repair | 811430 |
| Other Personal And Household Goods Repair And Maintenance | 811490 |
| Barber Shops | 812111 |
| Beauty Salons | 812112 |
| Nail Salons | 812113 |
| Diet And Weight Reducing Centers | 812191 |
| Other Personal Care Services | 812199 |
| Funeral Homes And Funeral Services | 812210 |
| Cemeteries And Crematories | 812220 |
| Coin Operated Laundries And Drycleaners | 812310 |
| Drycleaning And Laundry Services Except Coin Operated | 812320 |
| Linen Supply | 812331 |
| Industrial Launderers | 812332 |
| Pet Care Except Veterinary Services | 812910 |
| Photofinishing Laboratories Except One Hour | 812921 |
| One Hour Photofinishing | 812922 |
| Parking Lots And Garages | 812930 |
| All Other Personal Services | 812990 |
| Religious Organizations | 813110 |
| Grantmaking Foundations | 813211 |
| Voluntary Health Organizations | 813212 |
| Other Grantmaking And Giving Services | 813219 |
| Human Rights Organizations | 813311 |
| Environment Conservation And Wildlife Organizations | 813312 |
| Other Social Advocacy Organizations | 813319 |
| Civic And Social Organizations | 813410 |
| Business Associations | 813910 |
| Professional Organizations | 813920 |
| Labor Unions And Similar Labor Organizations | 813930 |
| Political Organizations | 813940 |
| Other Similar Organizations Except Business Professional Labor And Political Organizations | 813990 |
| Private Households | 814110 |
| Executive Offices | 921110 |
| Legislative Bodies | 921120 |
| Public Finance Activities | 921130 |
| Executive And Legislative Offices Combined | 921140 |
| American Indian And Alaska Native Tribal Governments | 921150 |
| Other General Government Support | 921190 |
| Courts | 922110 |
| Police Protection | 922120 |
| Legal Counsel And Prosecution | 922130 |
| Correctional Institutions | 922140 |
| Parole Offices And Probation Offices | 922150 |
| Fire Protection | 922160 |
| Other Justice Public Order And Safety Activities | 922190 |
| Administration Of Education Programs | 923110 |
| Administration Of Public Health Programs | 923120 |
| Administration Of Human Resource Programs Except Education Public Health And Veterans Affairs Programs | 923130 |
| Administration Of Veterans Affairs | 923140 |
| Administration Of Air And Water Resource And Solid Waste Management Programs | 924110 |
| Administration Of Conservation Programs | 924120 |
| Administration Of Housing Programs | 925110 |
| Administration Of Urban Planning And Community And Rural Development | 925120 |
| Administration Of General Economic Programs | 926110 |
| Regulation And Administration Of Transportation Programs | 926120 |
| Regulation And Administration Of Communications Electric Gas And Other Utilities | 926130 |
| Regulation Of Agricultural Marketing And Commodities | 926140 |
| Regulation Licensing And Inspection Of Miscellaneous Commercial Sectors | 926150 |
| Space Research And Technology | 927110 |
| National Security | 928110 |
| International Affairs | 928120 |
| Unclassified | 999999 |
# Country Codes
Source: https://docs.fernhq.com/docs/create-and-verify-customers/country-codes
Throughout the Fern API, you may need to use ISO 3-character country codes for addresses that require country to be specified. You can use this table to map the country to the appropriate 3-character country code.
| ISO Country Name | ISO 3-char (Fern) | ISO 3-digit | ISO 2-char | Comments |
| ------------------------------------------ | ----------------- | ----------- | ---------- | ------------------------------------------ |
| Aruba | ABW | 533 | AW | |
| Afghanistan | AFG | 4 | AF | |
| Angola | AGO | 24 | AO | |
| Anguilla | AIA | 660 | AI | |
| Albania | ALB | 8 | AL | |
| Andorra | AND | 20 | AD | |
| Netherlands Antilles | ANT | 530 | AN | |
| United Arab Emirates | ARE | 784 | AE | |
| Argentina | ARG | 32 | AR | |
| Armenia | ARM | 51 | AM | |
| American Samoa | ASM | 16 | AS | |
| Antarctica | ATA | 10 | AQ | |
| French Southern Territories | ATF | 260 | TF | |
| Antigua and Barbuda | ATG | 28 | AG | |
| Australia | AUS | 36 | AU | |
| Austria | AUT | 40 | AT | |
| Azerbaijan | AZE | 31 | AZ | |
| Burundi | BDI | 108 | BI | |
| Belgium | BEL | 56 | BE | |
| Benin | BEN | 204 | BJ | |
| Burkina Faso | BFA | 854 | BF | |
| Bangladesh | BGD | 50 | BD | |
| Bulgaria | BGR | 100 | BG | |
| Bahrain | BHR | 48 | BH | |
| Bahamas | BHS | 44 | BS | |
| Bosnia and Herzegovina | BIH | 70 | BA | |
| Belarus | BLR | 112 | BY | |
| Belize | BLZ | 84 | BZ | |
| Bermuda | BMU | 60 | BM | |
| Bolivia | BOL | 68 | BO | |
| Brazil | BRA | 76 | BR | |
| Barbados | BRB | 52 | BB | |
| Brunei Darussalam | BRN | 96 | BN | |
| Bhutan | BTN | 64 | BT | |
| Bouvet Island | BVT | 74 | BV | |
| Botswana | BWA | 72 | BW | |
| Central African Republic | CAF | 140 | CF | |
| Canada | CAN | 124 | CA | |
| Cocos (Keeling) Islands | CCK | 166 | CC | |
| Switzerland | CHE | 756 | CH | |
| Chile | CHL | 152 | CL | |
| China | CHN | 156 | CN | |
| Cote d'Ivoire | CIV | 384 | CI | |
| Cameroon | CMR | 120 | CM | |
| Congo, The Democratic Republic of | COD | 180 | CD | formerly Zaire |
| Congo | COG | 178 | CG | |
| Cook Islands | COK | 184 | CK | |
| Colombia | COL | 170 | CO | |
| Comoros | COM | 174 | KM | |
| Cape Verde | CPV | 132 | CV | |
| Costa Rica | CRI | 188 | CR | |
| Cuba | CUB | 192 | CU | |
| Christmas Island | CXR | 162 | CX | |
| Cayman Islands | CYM | 136 | KY | |
| Cyprus | CYP | 196 | CY | |
| Czech Republic | CZE | 203 | CZ | |
| Germany | DEU | 276 | DE | |
| Djibouti | DJI | 262 | DJ | |
| Dominica | DMA | 212 | DM | |
| Denmark | DNK | 208 | DK | |
| Dominican Republic | DOM | 214 | DO | |
| Algeria | DZA | 12 | DZ | |
| Ecuador | ECU | 218 | EC | |
| Egypt | EGY | 818 | EG | |
| Eritrea | ERI | 232 | ER | |
| Western Sahara | ESH | 732 | EH | |
| Spain | ESP | 724 | ES | |
| Estonia | EST | 233 | EE | |
| Ethiopia | ETH | 231 | ET | |
| Finland | FIN | 246 | FI | |
| Fiji | FJI | 242 | FJ | |
| Falkland Islands (Malvinas) | FLK | 238 | FK | |
| France | FRA | 250 | FR | |
| Faroe Islands | FRO | 234 | FO | |
| Micronesia, Federated States of | FSM | 583 | FM | ISO includes as Micronesia |
| Gabon | GAB | 266 | GA | |
| United Kingdom | GBR | 826 | GB | |
| Georgia | GEO | 268 | GE | |
| Ghana | GHA | 288 | GH | |
| Gibraltar | GIB | 292 | GI | |
| Guinea | GIN | 324 | GN | |
| Guadeloupe | GLP | 312 | GP | |
| Gambia | GMB | 270 | GM | |
| Guinea-Bissau | GNB | 624 | GW | |
| Equatorial Guinea | GNQ | 226 | GQ | |
| Greece | GRC | 300 | GR | |
| Grenada | GRD | 308 | GD | |
| Greenland | GRL | 304 | GL | |
| Guatemala | GTM | 320 | GT | |
| French Guiana | GUF | 254 | GF | |
| Guam | GUM | 316 | GU | |
| Guyana | GUY | 328 | GY | |
| Hong Kong | HKG | 344 | HK | |
| Heard and Mc Donald Islands | HMD | 334 | HM | |
| Honduras | HND | 340 | HN | |
| Croatia | HRV | 191 | HR | |
| Haiti | HTI | 332 | HT | |
| Hungary | HUN | 348 | HU | |
| Indonesia | IDN | 360 | ID | |
| India | IND | 356 | IN | |
| British Indian Ocean Territory | IOT | 86 | IO | |
| Ireland | IRL | 372 | IE | |
| Iran, Islamic Republic of | IRN | 364 | IR | |
| Iraq | IRQ | 368 | IQ | |
| Iceland | ISL | 352 | IS | |
| Israel | ISR | 376 | IL | |
| Italy | ITA | 380 | IT | |
| Jamaica | JAM | 388 | JM | |
| Jordan | JOR | 400 | JO | |
| Japan | JPN | 392 | JP | |
| Kazakhstan | KAZ | 398 | KZ | |
| Kenya | KEN | 404 | KE | |
| Kyrgyzstan | KGZ | 417 | KG | |
| Cambodia | KHM | 116 | KH | |
| Kiribati | KIR | 296 | KI | |
| Saint Kitts & Nevis | KNA | 659 | KN | |
| Korea, Republic of | KOR | 410 | KR | |
| Kuwait | KWT | 414 | KW | |
| Lao, People's Democratic Republic | LAO | 418 | LA | |
| Lebanon | LBN | 422 | LB | |
| Liberia | LBR | 430 | LR | |
| Libyan Arab Jamahiriya | LBY | 434 | LY | |
| Saint Lucia | LCA | 662 | LC | |
| Liechtenstein | LIE | 438 | LI | |
| Sri Lanka | LKA | 144 | LK | |
| Lesotho | LSO | 426 | LS | |
| Lithuania | LTU | 440 | LT | |
| Luxembourg | LUX | 442 | LU | |
| Latvia | LVA | 428 | LV | |
| Macau | MAC | 446 | MO | former name of Macao |
| Morocco | MAR | 504 | MA | |
| Monaco | MCO | 492 | MC | |
| Moldova, Republic of | MDA | 498 | MD | |
| Madagascar | MDG | 450 | MG | |
| Maldives | MDV | 462 | MV | |
| Mexico | MEX | 484 | MX | |
| Marshall Islands | MHL | 584 | MH | |
| Macedonia, The Former Yugoslav Republic Of | MKD | 807 | MK | |
| Mali | MLI | 466 | ML | |
| Malta | MLT | 470 | MT | |
| Myanmar | MMR | 104 | MM | |
| Mongolia | MNG | 496 | MN | |
| Northern Mariana Islands | MNP | 580 | MP | |
| Mozambique | MOZ | 508 | MZ | |
| Mauritania | MRT | 478 | MR | |
| Montserrat | MSR | 500 | MS | |
| Martinique | MTQ | 474 | MQ | |
| Mauritius | MUS | 480 | MU | |
| Malawi | MWI | 454 | MW | |
| Malaysia | MYS | 458 | MY | |
| Mayotte | MYT | 175 | YT | |
| Namibia | NAM | 516 | NA | |
| New Caledonia | NCL | 540 | NC | |
| Niger | NER | 562 | NE | |
| Norfolk Island | NFK | 574 | NF | |
| Nigeria | NGA | 566 | NG | |
| Nicaragua | NIC | 558 | NI | |
| Niue | NIU | 570 | NU | |
| Netherlands | NLD | 528 | NL | |
| Norway | NOR | 578 | NO | |
| Nepal | NPL | 524 | NP | |
| Nauru | NRU | 520 | NR | |
| New Zealand | NZL | 554 | NZ | |
| Oman | OMN | 512 | OM | |
| Pakistan | PAK | 586 | PK | |
| Panama | PAN | 591 | PA | |
| Pitcairn | PCN | 612 | PN | |
| Peru | PER | 604 | PE | |
| Philippines | PHL | 608 | PH | |
| Palau | PLW | 585 | PW | |
| Papua New Guinea | PNG | 598 | PG | |
| Poland | POL | 616 | PL | |
| Puerto Rico | PRI | 630 | PR | Fern includes as part of USA |
| Korea, Democratic People's Republic of | PRK | 408 | KP | |
| Portugal | PRT | 620 | PT | |
| Paraguay | PRY | 600 | PY | |
| French Polynesia | PYF | 258 | PF | |
| Qatar | QAT | 634 | QA | |
| Reunion | REU | 638 | RE | |
| Romania | ROU | 642 | RO | |
| Russia Federation | RUS | 643 | RU | |
| Rwanda | RWA | 646 | RW | |
| Saudi Arabia | SAU | 682 | SA | |
| Sudan | SDN | 736 | SD | |
| Senegal | SEN | 686 | SN | |
| Singapore | SGP | 702 | SG | |
| South Georgia & The South Sandwich Islands | SGS | 239 | GS | |
| Saint Helena | SHN | 654 | SH | |
| Svalbard and Jan Mayen | SJM | 744 | SJ | |
| Solomon Islands | SLB | 90 | SB | |
| Sierra Leone | SLE | 694 | SL | |
| El Salvador | SLV | 222 | SV | |
| San Marino | SMR | 674 | SM | |
| Somalia | SOM | 706 | SO | |
| Saint Pierre and Miquelon | SPM | 666 | PM | |
| Sao Tome and Principe | STP | 678 | ST | |
| Suriname | SUR | 740 | SR | |
| Slovakia | SVK | 703 | SK | |
| Slovenia | SVN | 705 | SI | |
| Sweden | SWE | 752 | SE | |
| Swaziland | SWZ | 748 | SZ | |
| Seychelles | SYC | 690 | SC | |
| Syrian Arab Republic | SYR | 760 | SY | |
| Turks and Caicos Islands | TCA | 796 | TC | |
| Chad | TCD | 148 | TD | |
| Togo | TGO | 768 | TG | |
| Thailand | THA | 764 | TH | |
| Tajikistan | TJK | 762 | TJ | |
| Tokelau | TKL | 772 | TK | |
| Turkmenistan | TKM | 795 | TM | |
| East Timor | TMP | 626 | TP | |
| Tonga | TON | 776 | TO | |
| Trinidad and Tobago | TTO | 780 | TT | |
| Tunisia | TUN | 788 | TN | |
| Turkey | TUR | 792 | TR | |
| Tuvalu | TUV | 798 | TV | |
| Taiwan, Province of China | TWN | 158 | TW | |
| Tanzania, United Republic of | TZA | 834 | TZ | |
| Uganda | UGA | 800 | UG | |
| Ukraine | UKR | 804 | UA | |
| United States Minor Outlying Islands | UMI | 581 | UM | |
| Uruguay | URY | 858 | UY | |
| United States | USA | 840 | US | Fern includes US Virgin Isl. & Puerto Rico |
| Uzbekistan | UZB | 860 | UZ | |
| Holy See (Vatican City State) | VAT | 336 | VA | |
| Saint Vincent and the Grenadines | VCT | 670 | VC | |
| Venezuela | VEN | 862 | VE | |
| Virgin Islands, British | VGB | 92 | VG | |
| Virgin Islands, U.S. | VIR | 850 | VI | Fern includes as part of USA |
| Vietnam | VNM | 704 | VN | |
| Vanuatu | VUT | 548 | VU | |
| Wallis and Futuna | WLF | 876 | WF | |
| Samoa | WSM | 882 | WS | |
| Yemen | YEM | 887 | YE | |
| Yugoslavia | YUG | 891 | YU | |
| South Africa | ZAF | 710 | ZA | |
| Zambia | ZMB | 894 | ZM | |
| Zimbabwe | ZWE | 716 | ZW | |
# Customer Statuses
Source: https://docs.fernhq.com/docs/create-and-verify-customers/customer-statuses
## Overview
The customer verification engine manages customer verification through a well-defined state machine with six statuses. Understanding these statuses helps you build better integrations and provide clear user experiences. Each status represents a distinct phase in the verification lifecycle, from initial creation through final approval or rejection.
Every customer has a `customerStatus` field that indicates their current verification status. This status determines what actions you can perform and what your customer can access on your platform.
**Related guides:**
* For verification process see [Verification workflow](/docs/create-and-verify-customers/verification-workflow)
* For webhook notifications see [Webhook integration](/docs/webhooks/overview)
* For API operations see [Customer API](/api-reference/customers)
## Status overview
The six possible statuses represent different phases of the verification lifecycle:
| Status | Description | Can Update Data? |
| ------------------------------ | ---------------------------------------- | ---------------- |
| `CREATED` | Initial status, verification not started | Yes |
| `UNDER_REVIEW` | Verification in progress | No |
| `NEEDS_ADDITIONAL_INFORMATION` | Additional information required (RFI) | Yes |
| `ACTIVE` | Verification approved, customer verified | No |
| `REJECTED` | Verification permanently failed | No |
| `DEACTIVATED` | Account administratively deactivated | No |
## Status definitions
### CREATED
**What it means:** Customer profile has been created but verification has not started yet.
**Characteristics:**
* No verification process initiated
* Customer data collection phase
* All fields can be freely updated
* Default status for new customers
**Developer actions:**
* Use PATCH customers/:id to update customer data
* Add or update KYC/KYB information
* Upload identity documents
* Prepare customer for verification submission
**When it transitions:**
* Customer data is submitted and verification is automatically initiated
* Status changes to `UNDER_REVIEW` when verification begins
### UNDER\_REVIEW
**What it means:** Customer verification is actively being processed.
**Characteristics:**
* Verification submission has been sent to providers
* Identity and compliance checks are in progress
* Customer data is locked to maintain submission integrity
* No action required from developer (monitoring only)
**Developer actions:**
* Monitor status via GET customers/:id
* Set up webhooks to receive status change notifications
* Display "Verification in progress" status to user
* Check `verificationIssues` array if present for any issues detected during review
* Cannot update customer data (PATCH will return error)
**When it transitions:**
* **To `ACTIVE`:** All verification checks pass
* **To `NEEDS_ADDITIONAL_INFORMATION`:** Provider requests more information
**Typical duration:** Less than 10 minutes for individuals (1 to 3 business days if manual intervention is required), 4-7 business days for businesses
You cannot update customer data while verification is in progress. Wait for the status to transition or monitor via webhooks.
### NEEDS\_ADDITIONAL\_INFORMATION
**What it means:** The verification provider requires additional information, documents, or clarifications (Request for Information - RFI).
**Characteristics:**
* Verification process is reset as critical details require correcting
* Specific issues or missing data have been flagged
* Customer must take action to proceed
**Developer actions:**
* Use PATCH customers/:id to update customer data
* Upload additional documents
* Review webhook payload for specific requirements
* Check `verificationIssues` array for detailed guidance
* After updates, verification automatically re-submits
**Common reasons for RFI:**
* Missing or expired identity documents
* Unclear business ownership structure
* Insufficient address verification
* Ambiguous beneficial owner information
* Document quality issues (blurry images, partial visibility)
**Recovery process:**
1. **Receive RFI notification** via webhook or API polling
2. **Review requirements** indicated in the response
3. **Update customer data** using PATCH endpoint
4. **Verification automatically re-initiates** after update
5. **Status transitions to UNDER\_REVIEW** when resubmitted
This is a recoverable status. Most RFI cases can be resolved by providing the requested information.
### ACTIVE
**What it means:** Customer has successfully completed verification and is approved for platform use.
**Characteristics:**
* All verification checks passed
* Customer is fully verified
* Can perform transactions and operations
* Full platform access granted
**Developer actions:**
* Enable all platform features for the customer
* Allow transaction creation
* Grant access to payment operations
* Display verification success status
* Cannot update core customer data (contact support for changes)
**When it transitions:**
* **To `DEACTIVATED`:** Account is administratively closed
* **To `REJECTED`:** Post-approval compliance issues detected (rare)
Customers in ACTIVE status have passed all compliance and identity checks. You can proceed with full platform functionality.
### REJECTED
**What it means:** Customer verification has permanently failed and cannot be approved.
**Characteristics:**
* Verification process ended negatively
* Customer cannot use platform services
* Typically due to compliance or identity verification issues
* Account closure or manual review may be required
**Developer actions:**
* Display rejection status to customer
* Check `verificationIssues` array for specific rejection reasons
* Provide support contact information
* Log rejection for compliance records
* Cannot update customer data
* Cannot re-initiate verification (contact support)
**Common reasons:**
* Identity documents could not be verified
* Compliance concerns or sanctions list matches
* Fraudulent information detected
* Regulatory restrictions
* Customer-requested cancellation during verification
REJECTED is typically a permanent status. Contact support if you believe this was an error or if circumstances have changed.
### DEACTIVATED
**What it means:** Customer account has been administratively deactivated.
**Characteristics:**
* Account is inactive by administrative action
* Not related to verification failure
* May be temporary or permanent
* Can potentially be reactivated (contact support)
**Developer actions:**
* Display deactivation status
* Prevent new transactions
* Allow view-only access to historical data
* Provide reactivation contact information
* Cannot update customer data
* Cannot create new transactions
**Common reasons:**
* Customer requested account closure
* Compliance hold or investigation
* Regulatory requirement
* Inactivity-based closure
* Terms of service violation
## Status transition diagram
```mermaid theme={null}
flowchart TD
A[CREATED] --> |Submit Data,
Verification Starts| B[UNDER REVIEW]
B -->|All Checks Pass| C[ACTIVE]
C -->|Admin Action| D[DEACTIVATED]
C -->|Compliance Issue| E[REJECTED]
B -->|Needs more Information| F[NEEDS MORE INFORMATION]
F -->|Update Data| B
F -->|Irrecoverable| E
```
### Transition summary
| From | To | Trigger | Automatic? |
| ------------------------------ | ------------------------------ | --------------------------- | ---------- |
| CREATED | UNDER\_REVIEW | Verification submission | Yes |
| UNDER\_REVIEW | ACTIVE | All checks passed | Yes |
| UNDER\_REVIEW | NEEDS\_ADDITIONAL\_INFORMATION | Provider requests more info | Yes |
| NEEDS\_ADDITIONAL\_INFORMATION | UNDER\_REVIEW | Customer updates data | Yes |
| NEEDS\_ADDITIONAL\_INFORMATION | REJECTED | Irrecoverable failure | Manual |
| ACTIVE | DEACTIVATED | Administrative action | Manual |
| ACTIVE | REJECTED | Post-approval issues | Manual |
## Testing customer statuses
### Test checklist
Test your integration handles all statuses:
* CREATED - Show profile completion UI
* UNDER\_REVIEW - Show waiting/progress indicator
* NEEDS\_ADDITIONAL\_INFORMATION - Show RFI resolution flow
* ACTIVE - Enable full platform features
* REJECTED - Show support contact and disable features
* DEACTIVATED - Show reactivation contact and disable transactions
## Frequently asked questions
### How long does verification take?
* **Individuals (KYC):** Typically under 10 minutes
* **Businesses (KYB):** Typically 4-7 business days
* Complex cases may take longer
### Can I expedite verification?
Contact your account manager to discuss expedited processing options for your use case.
### What happens if verification fails?
If verification transitions to `NEEDS_ADDITIONAL_INFORMATION`, you can provide the requested information and resubmit. If it transitions to `REJECTED`, contact support.
### Can I update customer data after approval?
Once a customer is `ACTIVE`, profile data cannot be updated via the API. Contact support for approved customer data changes.
### How do I handle RFI situations?
1. Monitor for `NEEDS_ADDITIONAL_INFORMATION` status
2. Review webhook payload or API response for specific requirements
3. Update customer data with requested information
4. System automatically re-submits for verification
### What is the difference between REJECTED and DEACTIVATED?
* `REJECTED`: Verification failed due to identity or compliance issues
* `DEACTIVATED`: Administrative account closure unrelated to verification failure
# Customer Types
Source: https://docs.fernhq.com/docs/create-and-verify-customers/customer-types
Fern can support your business and individual customers across 150+ countries.
## Customer types
* Businesses
* DAOs
* Corporations
* Partnerships
* Trusts
* Limited Liability Companies
* Non-profits
* Other
* Individuals
# Government ID Types
Source: https://docs.fernhq.com/docs/create-and-verify-customers/government-id-types
Individual customers and business associated persons are required to provide government IDs. Fern supports the following types for government ID:
* `NATIONAL_ID`
* `DRIVERS_LICENSE`
* `PASSPORT`
# National Identity Types
Source: https://docs.fernhq.com/docs/create-and-verify-customers/national-identity-types
### Individual KYC
When submitting KYC data through the Fern API, you must provide the correct `nationalIdType` for the customer's `nationalIdIssuingCountry`. Each country has specific tax identification and national ID number types that are accepted for verification.
### Business KYB
When submitting KYB data for businesses, each associated person (beneficial owners, controllers, directors) must provide their `nationalIdType` matching their `nationalIdIssuingCountry` using the individual identity types below. Additionally, businesses must provide a `businessRegistrationNumber` using the business identity types listed in the separate business table.
### Individual Identity Types by Country
| Country | ISO 2-char | Identity Type | Description |
| -------------------------------- | ---------- | ------------- | ------------------------------------------------------- |
| Afghanistan | AF | `tin` | Tax Identification Number |
| Albania | AL | `tin` | Tax Identification Number |
| Algeria | DZ | `nif` | Número de Identificação Fiscal |
| Angola | AO | `nif` | Número de Identificação Fiscal |
| Argentina | AR | `cuil` | Código Único de Identificación Laboral |
| | | `cdi` | Código de Identificación |
| Armenia | AM | `tin` | Tax Identification Number |
| Australia | AU | `tfn` | Tax File Number |
| Austria | AT | `si` | Social Insurance Number |
| Azerbaijan | AZ | `voen` | State Taxpayer Identification Number |
| Bahrain | BH | `cpr` | Central Population Registry Number |
| Bangladesh | BD | `tin` | Tax Identification Number |
| Barbados | BB | `nrn` | National Registration Number |
| Belgium | BE | `nrn` | National Register Number |
| Bolivia | BO | `nit` | Número de Identificación Tributaria |
| Bosnia and Herzegovina | BA | `jmbg` | Unique Master Citizen Number |
| Botswana | BW | `tin` | Tax Identification Number |
| Brazil | BR | `cpf` | Cadastro de Pessoas Físicas |
| Bulgaria | BG | `ucn` | Unified Civil Number |
| Cambodia | KH | `tin` | Tax Identification Number |
| Cameroon | CM | `nif` | Número de Identificação Fiscal |
| Canada | CA | `sin` | Social Insurance Number |
| Chile | CL | `rut` | Registro Único Tributario |
| China | CN | `ricn` | Resident Identity Card Number |
| Christmas Island | CX | `tfn` | Tax File Number |
| Colombia | CO | `nit` | Número de Identificación Tributaria |
| Comoros | KM | `nif` | Número de Identificação Fiscal |
| Costa Rica | CR | `tin` | Tax Identification Number |
| Cote d'Ivoire | CI | `nif` | Número de Identificação Fiscal |
| Croatia | HR | `oib` | Personal Identification Number |
| Curaçao | CW | `crib` | Chamber of Commerce Registration Number |
| Cyprus | CY | `tin` | Tax Identification Number |
| Czech Republic | CZ | `rc` | Residence Code Number |
| Denmark | DK | `cpr` | Central Person Register Number |
| Dominica | DM | `tin` | Tax Identification Number |
| Dominican Republic | DO | `tin` | Tax Identification Number |
| Ecuador | EC | `ruc` | Registro Único de Contribuyentes |
| Egypt | EG | `tin` | Tax Identification Number |
| El Salvador | SV | `nit` | Número de Identificación Tributaria |
| Estonia | EE | `ik` | Individual Code |
| Ethiopia | ET | `tin` | Tax Identification Number |
| Fiji | FJ | `tin` | Tax Identification Number |
| Finland | FI | `hetu` | Finnish Personal Identity Code |
| France | FR | `spi` | Social Security Number |
| Georgia | GE | `tin` | Tax Identification Number |
| Germany | DE | `steuer_id` | Steueridentifikationsnummer (Tax Identification Number) |
| Ghana | GH | `tin` | Tax Identification Number |
| Gibraltar | GI | `crc` | Company Registration Number |
| Greece | GR | `aom` | Αριθμός Μητρώου (Social Security Number) |
| Guatemala | GT | `nit` | Número de Identificación Tributaria |
| Haiti | HT | `nif` | Número de Identificação Fiscal |
| Honduras | HN | `rtn` | Registro Tributario Nacional |
| Hong Kong | HK | `hkid` | Hong Kong Identity Card Number |
| Hungary | HU | `tin` | Tax Identification Number |
| Iceland | IS | `tin` | Tax Identification Number |
| India | IN | `pan` | Permanent Account Number |
| Indonesia | ID | `npwp` | Nomor Pokok Wajib Pajak |
| Iraq | IQ | `tin` | Tax Identification Number |
| Ireland | IE | `ppsn` | Personal Public Service Number |
| Isle of Man | IM | `nino` | National Insurance Number |
| Israel | IL | `tin` | Tax Identification Number |
| Italy | IT | `cf` | Codice Fiscale (Tax Code) |
| Jamaica | JM | `trn` | Taxpayer Registration Number |
| Japan | JP | `mn` | My Number (Individual Number) |
| Jordan | JO | `tin` | Tax Identification Number |
| Kazakhstan | KZ | `iin` | Individual Identification Number |
| Kenya | KE | `pin` | Personal Identification Number |
| Korea, Republic of | KR | `rrn` | Resident Registration Number |
| Kuwait | KW | `tin` | Tax Identification Number |
| Kyrgyzstan | KG | `inn` | Individual Taxpayer Number |
| Lao People's Democratic Republic | LA | `tin` | Tax Identification Number |
| Latvia | LV | `pk` | Person's Code |
| Liberia | LR | `tin` | Tax Identification Number |
| Lithuania | LT | `ak` | Personal Code |
| Luxembourg | LU | `matricule` | Matricule Number (Social Security Number) |
| Macedonia | MK | `embg` | Unique Identification Number |
| Madagascar | MG | `nif` | Número de Identificação Fiscal |
| Malawi | MW | `tpin` | Taxpayer Identification Number |
| Malaysia | MY | `itr` | Income Tax Reference Number |
| Malta | MT | `tin` | Tax Identification Number |
| Mauritania | MR | `nif` | Número de Identificação Fiscal |
| Mauritius | MU | `nicn` | National Identity Card Number |
| Mexico | MX | `rfc` | Registro Federal de Contribuyentes |
| Moldova | MD | `idnp` | Identification Number of the Person |
| Montenegro | ME | `jmbg` | Unique Master Citizen Number |
| Morocco | MA | `if` | Identification Fiscal |
| Mozambique | MZ | `nuit` | Número Único de Identificação Tributária |
| Namibia | NA | `tin` | Tax Identification Number |
| Nepal | NP | `pan` | Permanent Account Number |
| Netherlands | NL | `bsn` | Burgerservicenummer (Citizen Service Number) |
| New Zealand | NZ | `ird` | Inland Revenue Department Number |
| Nicaragua | NI | `ruc` | Registro Único de Contribuyentes |
| Nigeria | NG | `tin` | Tax Identification Number |
| | | `nin` | National Identification Number |
| | | `bvn` | Bank Verification Number |
| Norway | NO | `fn` | Fødselsnummer (Personal Identification Number) |
| Oman | OM | `tin` | Tax Identification Number |
| Pakistan | PK | `ntn` | National Tax Number |
| Panama | PA | `ruc` | Registro Único de Contribuyentes |
| Paraguay | PY | `ruc` | Registro Único de Contribuyentes |
| Peru | PE | `ruc` | Registro Único de Contribuyentes |
| Philippines | PH | `tin` | Tax Identification Number |
| Poland | PL | `pesel` | Personal Identification Number |
| Portugal | PT | `nif` | Número de Identificação Fiscal |
| Puerto Rico | PR | `ssn` | Social Security Number |
| Qatar | QA | `qid` | Qatar ID |
| Romania | RO | `cnp` | Cod Numeric Personal |
| Rwanda | RW | `tin` | Tax Identification Number |
| Saint Lucia | LC | `tin` | Tax Identification Number |
| Saint Vincent and the Grenadines | VC | `tin` | Tax Identification Number |
| Saudi Arabia | SA | `tin` | Tax Identification Number |
| | | `rp` | Iqama (Residency Permit) |
| Senegal | SN | `tin` | Tax Identification Number |
| Serbia | RS | `jmbg` | Unique Master Citizen Number |
| Seychelles | SC | `tin` | Tax Identification Number |
| Singapore | SG | `nric` | National Registration Identity Card |
| | | `fin` | Foreign Identification Number |
| Slovakia | SK | `rc` | Rodné Číslo (Personal Identification Number) |
| Slovenia | SI | `tin` | Tax Identification Number |
| Somalia | SO | `tin` | Tax Identification Number |
| South Africa | ZA | `itr` | Income Tax Reference Number |
| Spain | ES | `nif` | Número de Identificación Fiscal |
| | | `nie` | Número de Identificación de Extranjeros |
| Sri Lanka | LK | `nic` | National Identity Card Number |
| Suriname | SR | `tin` | Tax Identification Number |
| Sweden | SE | `tin` | Tax Identification Number |
| Switzerland | CH | `avs` | AHV Number |
| | | `ahv` | Old Age and Survivors Insurance Number |
| Taiwan | TW | `tin` | Tax Identification Number |
| Tanzania | TZ | `tin` | Tax Identification Number |
| Thailand | TH | `tin` | Tax Identification Number |
| Togo | TG | `nif` | Número de Identificação Fiscal |
| Trinidad and Tobago | TT | `bir` | Business Identification Number |
| Tunisia | TN | `mf` | Matricule Fiscal |
| Turkey | TR | `tckn` | Turkish Citizenship Number |
| Uganda | UG | `tin` | Tax Identification Number |
| Ukraine | UA | `rnokpp` | Registration Number of the Taxpayer |
| United Arab Emirates | AE | `emirates_id` | National Identity Card |
| United Kingdom | GB | `nino` | National Insurance Number |
| | | `utr` | Unique Taxpayer Reference Number |
| United States | US | `ssn` | Social Security Number |
| | | `itin` | Individual Taxpayer Identification Number |
| Uruguay | UY | `rut` | Registro Único Tributario |
| Uzbekistan | UZ | `inn` | Individual Identification Number |
| Venezuela | VE | `rif` | Registro de Información Fiscal |
| Vietnam | VN | `mst` | Mã Số Thuế (Tax Code) |
| Yemen | YE | `tin` | Tax Identification Number |
| Zambia | ZM | `tpin` | Taxpayer Identification Number |
| Zimbabwe | ZW | `tin` | Tax Identification Number |
### Business Registration Types by Country
For businesses, use the following registration number types for the `businessRegistrationNumber` field:
| Country | ISO 2-char | Registration Type | Description |
| -------------------------------- | ---------- | ----------------- | ----------------------------------------------------------------------------------------------- |
| Aruba | AW | `cn` | Census Number |
| Afghanistan | AF | `tin` | Tax Identification Number |
| Albania | AL | `nipt` | Numri i Identifikimit për Personin e Tatueshëm |
| Andorra | AD | `nrt` | Número de Registre Tributari |
| Angola | AO | `nif` | Número de Identificação Fiscal |
| Argentina | AR | `cuit` | Clave Única de Identificación Tributaria |
| Armenia | AM | `tin` | Tax Identification Number |
| Australia | AU | `abn` | Australian Business Number |
| | | `acn` | Australian Company Number |
| | | `arbn` | Australian Registered Body Number |
| Austria | AT | `fn` | Firmenbuchnummer |
| | | `uid` | Umsatzsteuer-Identifikationsnummer |
| Azerbaijan | AZ | `voen` | Vergi Ödəyicisinin Eyniləşdirmə Nömrəsi |
| Bahamas | BS | `tin` | Tax Identification Number |
| Bahrain | BH | `crn` | Company/Commercial Registration Number |
| Bangladesh | BD | `bin` | Business Identification Number |
| | | `vat` | Value Added Tax Number |
| Barbados | BB | `tin` | Tax Identification Number |
| Belgium | BE | `bce` | Banque-Carrefour des Entreprises |
| | | `kbo` | Kruispuntbank van Ondernemingen |
| Belize | BZ | `tin` | Tax Identification Number |
| Bermuda | BM | `crn` | Company/Commercial Registration Number |
| Bolivia | BO | `nit` | Número de Identificación Tributaria |
| | | `vat` | Value Added Tax Number |
| Bosnia and Herzegovina | BA | `id_broj` | ID Broj (Identification Number) |
| Botswana | BW | `crn` | Company/Commercial Registration Number |
| Brazil | BR | `cnpj` | Cadastro Nacional da Pessoa Jurídica |
| | | `vat` | Value Added Tax Number |
| Bulgaria | BG | `uic` | Unified Identification Code |
| Cambodia | KH | `tin` | Tax Identification Number |
| | | `vat` | Value Added Tax Number |
| Cameroon | CM | `nif` | Numéro d'Identification Fiscale |
| | | `rccm` | Registre du Commerce et du Crédit Mobilier |
| Canada | CA | `bin` | Business Identification Number |
| | | `vat` | Value Added Tax Number |
| Cayman Islands | KY | `crn` | Company/Commercial Registration Number |
| Chile | CL | `rut` | Registro Único Tributario |
| China | CN | `usc` | Unified Social Credit Code |
| Christmas Island | CX | `abn` | Australian Business Number |
| Colombia | CO | `nit` | Número de Identificación Tributaria |
| | | `rut` | Registro Único Tributario |
| Comoros | KM | `nif` | Numéro d'Identification Fiscale |
| Costa Rica | CR | `cedula_juridica` | Cédula Jurídica |
| Cote d'Ivoire | CI | `nif` | Numéro d'Identification Fiscale |
| Croatia | HR | `oib` | Osobni Identifikacijski Broj (Personal Identification Number) |
| Curaçao | CW | `crib` | Central Registratie en Informatiebureau |
| Cyprus | CY | `crn` | Company/Commercial Registration Number |
| Czech Republic | CZ | `ico` | Identifikační Číslo Organizace (Organization Identification Number) |
| Denmark | DK | `cvr` | Central Virksomhedsregister (Central Business Register) |
| Dominica | DM | `tin` | Tax Identification Number |
| Dominican Republic | DO | `rnc` | Registro Nacional de Contribuyentes (National Taxpayer Registry) |
| Ecuador | EC | `ruc` | Registro Único de Contribuyentes |
| Egypt | EG | `tin` | Tax Identification Number |
| | | `vat` | Value Added Tax Number |
| El Salvador | SV | `nit` | Número de Identificación Tributaria |
| | | `vat` | Value Added Tax Number |
| Estonia | EE | `rc` | Register Code |
| Ethiopia | ET | `tin` | Tax Identification Number |
| Fiji | FJ | `tin` | Tax Identification Number |
| Finland | FI | `y_tunnus` | Business ID |
| France | FR | `siren` | Système d'Identification du Répertoire des Entreprises (Enterprise Identification System) |
| | | `siret` | Système d'Identification du Répertoire des Établissements (Establishment Identification System) |
| Georgia | GE | `ic` | Identification Code |
| Germany | DE | `ust_idnr` | Umsatzsteuer-Identifikationsnummer |
| | | `crn` | Company/Commercial Registration Number |
| Ghana | GH | `tin` | Tax Identification Number |
| Gibraltar | GI | `crn` | Company/Commercial Registration Number |
| Greece | GR | `aom` | Αριθμός Οικονομικής Μονάδας (Economic Unit Number) |
| Guatemala | GT | `nit` | Número de Identificación Tributaria |
| | | `vat` | Value Added Tax Number |
| Haiti | HT | `nif` | Numéro d'Identification Fiscale |
| Honduras | HN | `rtn` | Registro Tributario Nacional (National Tax Registry) |
| Hong Kong | HK | `brn` | Business Registration Number |
| Hungary | HU | `tin` | Tax Identification Number |
| Iceland | IS | `id` | Identification Number |
| India | IN | `gstin` | Goods and Services Tax Identification Number |
| | | `cin` | Corporate Identification Number |
| | | `pan` | Personal Account Number |
| | | `vat` | Value Added Tax Number |
| Indonesia | ID | `npwp` | Nomor Pokok Wajib Pajak (Taxpayer Identification Number) |
| | | `vat` | Value Added Tax Number |
| Iraq | IQ | `tin` | Tax Identification Number |
| Ireland | IE | `cro` | Company Registration Office Number |
| Isle of Man | IM | `crn` | Company/Commercial Registration Number |
| Israel | IL | `crn` | Company/Commercial Registration Number |
| Italy | IT | `partita_iva` | Partita IVA |
| | | `cf` | Codice Fiscale |
| Jamaica | JM | `trn` | Tax Registration Number |
| Japan | JP | `hn` | Hojin Number (Corporate Number) |
| Jordan | JO | `tin` | Tax Identification Number |
| Kazakhstan | KZ | `bin` | Business Identification Number |
| Kenya | KE | `pin` | Personal Identification Number |
| | | `vat` | Value Added Tax Number |
| Korea, Republic of | KR | `brn` | Business Registration Number |
| Kuwait | KW | `crn` | Company/Commercial Registration Number |
| Kyrgyzstan | KG | `inn` | Идентификационный Номер Налогоплательщика (Taxpayer Identification Number) |
| Lao People's Democratic Republic | LA | `tin` | Tax Identification Number |
| Latvia | LV | `rn` | Reģistrācijas Numurs (Registration Number) |
| Lebanon | LB | `crn` | Company/Commercial Registration Number |
| Liberia | LR | `tin` | Tax Identification Number |
| Lithuania | LT | `cc` | Company Code |
| Luxembourg | LU | `matricule` | Matricule |
| Macedonia | MK | `tin` | Tax Identification Number |
| Madagascar | MG | `nif` | Numéro d'Identification Fiscale |
| Malaysia | MY | `ssm` | Suruhanjaya Syarikat Malaysia |
| | | `gstin` | Goods and Services Tax Identification Number |
| Malta | MT | `crn` | Company/Commercial Registration Number |
| | | `vat` | Value Added Tax Number |
| Marshall Islands | MH | `en` | Entity Number |
| Mauritania | MR | `nif` | Numéro d'Identification Fiscale |
| Mauritius | MU | `brn` | Business Registration Number |
| Mexico | MX | `rfc` | Registro Federal de Contribuyentes (Federal Taxpayer Registry) |
| | | `vat` | Value Added Tax Number |
| Moldova | MD | `idno` | Identification Number of Organization |
| Monaco | MC | `crn` | Company/Commercial Registration Number |
| Montenegro | ME | `crn` | Company/Commercial Registration Number |
| Morocco | MA | `if` | Identifiant Fiscal (Tax Identifier) |
| Mozambique | MZ | `pib` | Personal Identification of the Business |
| Namibia | NA | `vat` | Value Added Tax Number |
| Netherlands | NL | `kvk` | Kamer van Koophandel |
| | | `vat` | Value Added Tax Number |
| New Zealand | NZ | `gst` | Goods and Services Tax Number |
| Nicaragua | NI | `ruc` | Registro Único de Contribuyentes |
| Nigeria | NG | `tin` | Tax Identification Number |
| | | `vat` | Value Added Tax Number |
| Norway | NO | `orgnr` | Organisasjonsnummer |
| Oman | OM | `crn` | Company/Commercial Registration Number |
| Pakistan | PK | `ntn` | National Tax Number |
| Panama | PA | `ruc` | Registro Único de Contribuyentes |
| Peru | PE | `ruc` | Registro Único de Contribuyentes |
| Philippines | PH | `tin` | Tax Identification Number |
| Poland | PL | `nip` | Numer Identyfikacji Podatkowej |
| | | `krs` | Krajowy Rejestr Sądowy |
| Portugal | PT | `nif` | Número de Identificação Fiscal |
| Qatar | QA | `crn` | Company/Commercial Registration Number |
| Romania | RO | `cui` | Cod Unic de Înregistrare |
| Russia | RU | `inn` | Individual Taxpayer Number |
| | | `ogrn` | Primary State Registration Number |
| Saint Kitts & Nevis | KN | `tin` | Tax Identification Number |
| Saint Lucia | LC | `tin` | Tax Identification Number |
| Saudi Arabia | SA | `crn` | Company/Commercial Registration Number |
| Senegal | SN | `ninea` | Numéro d'Identification Nationale des Entreprises et des Associations |
| Singapore | SG | `uen` | Unique Entity Number |
| Slovakia | SK | `ico` | Identifikačné Číslo Organizácie |
| Slovenia | SI | `maticna` | Matična Številka |
| South Africa | ZA | `vat` | Value Added Tax Number |
| | | `tin` | Tax Identification Number |
| Spain | ES | `nif` | Numéro d'Identification Fiscale |
| | | `cif` | Código de Identificación Fiscal (Fiscal Identification Code) |
| Sri Lanka | LK | `brn` | Business Registration Number |
| Sweden | SE | `orgnr` | Organisationsnummer |
| Switzerland | CH | `uid` | Unternehmens-Identifikationsnummer |
| Thailand | TH | `tin` | Tax Identification Number |
| Tunisia | TN | `matricule` | Matricule Fiscale |
| Ukraine | UA | `edrpou` | ЄДРПОУ (Unified State Register of Enterprises and Organizations of Ukraine) |
| United Arab Emirates | AE | `trn` | Tax Registration Number |
| | | `vat` | Value Added Tax Number |
| United Kingdom | GB | `crn` | Company/Commercial Registration Number |
| | | `vat` | Value Added Tax Number |
| United States | US | `ein` | Employer Identification Number |
| Uruguay | UY | `rut` | Registro Único Tributario |
| Uzbekistan | UZ | `inn` | Individual Taxpayer Number |
| Venezuela | VE | `rif` | Registro de Información Fiscal |
| Vietnam | VN | `mst` | Mã số thuế (Tax Code) |
| Yemen | YE | `tin` | Tax Identification Number |
| Zambia | ZM | `tpin` | Taxpayer Identification Number |
| Zimbabwe | ZW | `bp` | Business Partner Number |
### Important Notes
* Some countries support multiple identity/registration types - all accepted types are listed
* Identity type codes are case-sensitive - use them exactly as shown
* For KYB submissions, individuals use the Individual Identity Types table while businesses use the Business Registration Types table
# Occupation Codes
Source: https://docs.fernhq.com/docs/create-and-verify-customers/occupation-codes
Occupation codes are required when creating a customer with KYC/KYB data. They are based on standardized industry classifications and help identify the customer’s primary line of work.
| Occupation | Code |
| ------------------------------------------------------------------------------------------------------ | ------ |
| Accountant and auditor | 132011 |
| Actor | 272011 |
| Actuary | 152011 |
| Acupuncturist | 291291 |
| Adhesive bonding machine operator and tender | 519191 |
| Administrative services manager | 113012 |
| Advertising and promotions manager | 112011 |
| Advertising sales agent | 413011 |
| Aerospace engineer | 172011 |
| Agent and business manager of artists, performers, and athletes | 131011 |
| Agricultural and food science technician | 194010 |
| Agricultural and food scientist | 191010 |
| Agricultural engineer | 172021 |
| Agricultural inspector | 452011 |
| Air traffic controller and airfield operations specialist | 532020 |
| Aircraft mechanic and service technician | 493011 |
| Aircraft pilots and flight engineer | 532010 |
| Aircraft structure, surfaces, rigging, and systems assembler | 512011 |
| Ambulance driver and attendant, except emergency medical technician | 533011 |
| Animal breeder | 452021 |
| Animal caretaker | 392021 |
| Animal control worker | 339011 |
| Animal trainer | 392011 |
| Architect, except landscape and naval | 171011 |
| Architectural and civil drafter | 173011 |
| Architectural and engineering manager | 119041 |
| Archivist, curator, and museum technician | 254010 |
| Artist and related worker | 271010 |
| Astronomer and physicist | 192010 |
| Athletes and sports competitor | 272021 |
| Atmospheric and space scientist | 192021 |
| Audiologist | 291181 |
| Audiovisual equipment installer and repairer | 492097 |
| Automotive body and related repairer | 493021 |
| Automotive glass installer and repairer | 493022 |
| Automotive service technician and mechanic | 493023 |
| Avionics technician | 492091 |
| Baggage porter, bellhop, and concierge | 396010 |
| Bailiff | 333011 |
| Baker | 513011 |
| Barber | 395011 |
| Bartender | 353011 |
| Bill and account collector | 433011 |
| Billing and posting clerk | 433021 |
| Bioengineer and biomedical engineer | 172031 |
| Biological scientist | 191020 |
| Biological technician | 194021 |
| Boilermaker | 472011 |
| Bookkeeping, accounting, and auditing clerk | 433031 |
| Brickmason, blockmason, and stonemason | 472020 |
| Broadcast announcer and radio disc jockey | 273011 |
| Broadcast, sound, and lighting technician | 274010 |
| Brokerage clerk | 434011 |
| Budget analyst | 132031 |
| Bus and truck mechanic and diesel engine specialist | 493031 |
| Business operations specialist, other | 131199 |
| Butcher and other meat, poultry, and fish processing worker | 513020 |
| Buyer and purchasing agent, farm products | 131021 |
| Cabinetmaker and bench carpenter | 517011 |
| Cardiovascular technologist and technician | 292031 |
| Cargo and freight agent | 435011 |
| Carpenter | 472031 |
| Carpet, floor, and tile installer and finisher | 472040 |
| Cashier | 412010 |
| Cement mason, concrete finisher, and terrazzo worker | 472050 |
| Chef and head cook | 351011 |
| Chemical engineer | 172041 |
| Chemical processing machine setter, operator, and tender | 519010 |
| Chemical technician | 194031 |
| Chemist and materials scientist | 192030 |
| Chief executive | 111011 |
| Child, family, and school social worker | 211021 |
| Childcare worker | 399011 |
| Chiropractor | 291011 |
| Civil engineer | 172051 |
| Claims adjuster, appraiser, examiner, and investigator | 131030 |
| Cleaner of vehicles and equipment | 537061 |
| Clergy | 212011 |
| Clinical and counseling psychologist | 193033 |
| Clinical laboratory technologist and technician | 292010 |
| Coaches and scout | 272022 |
| Coin, vending, and amusement machine servicer and repairer | 499091 |
| Commercial and industrial designer | 271021 |
| Commercial diver | 499092 |
| Communications equipment operator, other | 432099 |
| Compensation and benefits manager | 113111 |
| Compensation, benefits, and job analysis specialist | 131141 |
| Compliance officer | 131041 |
| Computer and information research scientist | 151221 |
| Computer and information systems manager | 113021 |
| Computer hardware engineer | 172061 |
| Computer network architect | 151241 |
| Computer numerically controlled tool operator and programmer | 519160 |
| Computer occupation, other | 151299 |
| Computer programmer | 151251 |
| Computer support specialist | 151230 |
| Computer systems analyst | 151211 |
| Computer, automated teller, and office machine repairer | 492011 |
| Conservation scientist and forester | 191030 |
| Construction and building inspector | 474011 |
| Construction equipment operator | 472070 |
| Construction laborer | 472061 |
| Construction manager | 119021 |
| Control and valve installer and repairer | 499010 |
| Conveyor, dredge, and hoist and winch operator | 5370XX |
| Cook | 352010 |
| Correctional officer and jailer | 333012 |
| Correspondence clerk | 434021 |
| Cost estimator | 131051 |
| Counselor, other | 211019 |
| Counter and rental clerk | 412021 |
| Courier and messenger | 435021 |
| Court reporter and simultaneous captioner | 273092 |
| Court, municipal, and license clerk | 434031 |
| Crane and tower operator | 537021 |
| Credit analyst | 132041 |
| Credit authorizer, checker, and clerk | 434041 |
| Credit counselor and loan officer | 132070 |
| Crossing guard and flagger | 339091 |
| Crushing, grinding, polishing, mixing, and blending worker | 519020 |
| Customer service representative | 434051 |
| Cutting worker | 519030 |
| Cutting, punching, and press machine setter, operator, and tender, metal and plastic | 514031 |
| Dancer and choreographer | 272030 |
| Data labeler and data entry keyer | 439021 |
| Database administrator and architect | 15124X |
| Dental and ophthalmic laboratory technician and medical appliance technician | 519080 |
| Dental assistant | 319091 |
| Dental hygienist | 291292 |
| Dentist | 291020 |
| Derrick, rotary drill, and service unit operator, oil and gas | 475010 |
| Desktop publisher | 439031 |
| Detective and criminal investigator | 333021 |
| Diagnostic medical sonographer | 292032 |
| Dietetic technician and ophthalmic medical technician | 29205X |
| Dietitian and nutritionist | 291031 |
| Dining room and cafeteria attendant and bartender helper | 359011 |
| Director, religious activities and educatio | 212021 |
| Disc jockey, except radio | 272091 |
| Dishwasher | 359021 |
| Dispatcher, except police, fire, and ambulance | 435032 |
| Door-to-door sales worker, news and street vendor, and related worker | 419091 |
| Driver/sales worker and truck driver | 533030 |
| Drywall installer, ceiling tile installer, and taper | 472080 |
| Earth driller, except oil and gas | 475023 |
| Economist | 193011 |
| Editor | 273041 |
| Education and childcare administrator | 119030 |
| Educational, guidance, and career counselor and advisor | 211012 |
| Electric motor, power tool, and related repairer | 492092 |
| Electrical and electronic engineering technologist and technician | 173023 |
| Electrical and electronics engineer | 172070 |
| Electrical and electronics installer and repairer, transportation equipment | 492093 |
| Electrical and electronics repairer, industrial and utility | 49209X |
| Electrical power-line installer and repairer | 499051 |
| Electrical, electronics, and electromechanical assembler | 512020 |
| Electrician | 472111 |
| Electronic equipment installer and repairer, motor vehicles | 492096 |
| Elementary and middle school teacher | 252020 |
| Elevator and escalator installer and repairer | 474021 |
| Eligibility interviewer, government programs | 434061 |
| Embalmer, crematory operator and funeral attendant | 3940XX |
| Emergency management director | 119161 |
| Emergency medical technician | 292042 |
| Emergency medicine physician | 291214 |
| Engine and other machine assembler | 512031 |
| Engineer, other | 172199 |
| Entertainer and performer, sports and related worker, other | 272099 |
| Entertainment and recreation manager | 119070 |
| Environmental engineer | 172081 |
| Environmental science and geoscience technician | 194040 |
| Environmental scientist and specialist, including health | 192041 |
| Etcher and engraver | 519194 |
| Excavating and loading machine and dragline operator, surface mining | 475022 |
| Executive secretary and executive administrative assistant | 436011 |
| Exercise physiologist | 291128 |
| Exercise trainer and group fitness instructor | 399031 |
| Explosives worker, ordnance handling expert, and blaster | 475032 |
| Extruding, forming, pressing, and compacting machine setter, operator, and tender | 519041 |
| Facilities manager | 113013 |
| Farmer, rancher, and other agricultural manager | 119013 |
| Fashion designer | 271022 |
| Fast food and counter worker | 353023 |
| Fence erector | 474031 |
| File clerk | 434071 |
| Financial and investment analyst | 132051 |
| Financial clerk, other | 433099 |
| Financial examiner | 132061 |
| Financial manager | 113031 |
| Fire inspector | 332020 |
| Firefighter | 332011 |
| First-line enlisted military supervisor | 552010 |
| First-line supervisor of construction trades and extraction worker | 471011 |
| First-line supervisor of correctional officer | 331011 |
| First-line supervisor of farming, fishing, and forestry worker | 451011 |
| First-line supervisor of firefighting and prevention worker | 331021 |
| First-line supervisor of food preparation and serving workers | 351012 |
| First-line supervisor of housekeeping and janitorial workers | 371011 |
| First-line supervisor of landscaping, lawn service, and groundskeeping workers | 371012 |
| First-line supervisor of mechanics, installers, and repairers | 491011 |
| First-line supervisor of non-retail sales workers | 411012 |
| First-line supervisor of office and administrative support workers | 431011 |
| First-line supervisor of police and detective | 331012 |
| First-line supervisor of production and operating worker | 511011 |
| First-line supervisor of protective service worker, other | 331099 |
| First-line supervisor of retail sales workers | 411011 |
| First-line supervisor of security worker | 331091 |
| Fish and game warden | 333031 |
| Fishing and hunting worker | 453031 |
| Flight attendant | 532031 |
| Floral designer | 271023 |
| Food and tobacco roasting, baking, and drying machine operator and tender | 513091 |
| Food batchmaker | 513092 |
| Food cooking machine operator and tender | 513093 |
| Food preparation and serving related worker, other | 359099 |
| Food preparation worker | 352021 |
| Food processing worker, other | 513099 |
| Food server, nonrestaurant | 353041 |
| Food service manager | 119051 |
| Forest and conservation worker | 454011 |
| Forming machine setter, operator, and tender, metal and plastic | 514020 |
| Fundraiser | 131131 |
| Funeral home manager | 119171 |
| Furnace, kiln, oven, drier, and kettle operator and tender | 519051 |
| Furniture finisher | 517021 |
| Gambling cage worker | 433041 |
| Gambling services worker | 393010 |
| General and operations manager | 111021 |
| Geoscientist and hydrologist, except geographer | 19204X |
| Glazier | 472121 |
| Grader and sorter, agricultural product | 452041 |
| Graphic designer | 271024 |
| Grinding, lapping, polishing, and buffing machine tool setter, operator, and tender, metal and plastic | 514033 |
| Hairdresser, hairstylist, and cosmetologist | 395012 |
| Hazardous materials removal worker | 474041 |
| Healthcare diagnosing or treating practitioner, other | 291299 |
| Healthcare social worker | 211022 |
| Heating, air conditioning, and refrigeration mechanic and installer | 499021 |
| Heavy vehicle and mobile equipment service technician and mechanic | 493040 |
| Helper--installation, maintenance, and repair worker | 499098 |
| Helper--production worker | 519198 |
| Helper, construction trade | 473010 |
| Highway maintenance worker | 474051 |
| Home appliance repairer | 499031 |
| Home health aide | 311121 |
| Host and hostess, restaurant, lounge, and coffee shop | 359031 |
| Hotel, motel, and resort desk clerk | 434081 |
| Human resources assistant, except payroll and timekeeping | 434161 |
| Human resources manager | 113121 |
| Human resources worker | 131070 |
| Industrial and refractory machinery mechanic | 49904X |
| Industrial engineer, including health and safety | 172110 |
| Industrial production manager | 113051 |
| Industrial truck and tractor operator | 537051 |
| Information and record clerk, other | 434199 |
| Information security analyst | 151212 |
| Inspector, tester, sorter, sampler, and weigher | 519061 |
| Insulation worker | 472130 |
| Insurance claims and policy processing clerk | 439041 |
| Insurance sales agent | 413021 |
| Insurance underwriter | 132053 |
| Interior designer | 271025 |
| Interpreter and translator | 273091 |
| Interviewer, except eligibility and loan | 434111 |
| Janitor and building cleaner | 37201X |
| Jeweler and precious stone and metal worker | 519071 |
| Judge, magistrate, and other judicial worker | 231020 |
| Judicial law clerk | 231012 |
| Laborer and freight, stock, and material mover, hand | 537062 |
| Landscape architect | 171012 |
| Landscaping and groundskeeping worker | 373011 |
| Laundry and dry-cleaning worker | 516011 |
| Lawyer | 231011 |
| Legal secretary and administrative assistant | 436012 |
| Legal support worker, other | 232099 |
| Legislator | 111031 |
| Librarian and media collections specialist | 254022 |
| Library assistant, clerical | 434121 |
| Library technician | 254031 |
| Licensed practical and licensed vocational nurse | 292061 |
| Life scientist, other | 191099 |
| Loan interviewer and clerk | 434131 |
| Locksmith and safe repairer | 499094 |
| Locomotive engineer and operator | 534010 |
| Lodging manager | 119081 |
| Logging worker | 454020 |
| Logistician | 131081 |
| Machine feeder and offbearer | 537063 |
| Machinist | 514041 |
| Magnetic resonance imaging technologist | 292035 |
| Maids and housekeeping cleaner | 372012 |
| Mail clerk and mail machine operator, except postal service | 439051 |
| Maintenance and repair worker, general | 499071 |
| Maintenance worker, machinery | 499043 |
| Management analyst | 131111 |
| Manager, other | 119199 |
| Manicurist and pedicurist | 395092 |
| Manufactured building and mobile home installer | 499095 |
| Marine engineer and naval architect | 172121 |
| Market research analyst and marketing specialist | 131161 |
| Marketing manager | 112021 |
| Marriage and family therapist | 211013 |
| Massage therapist | 319011 |
| Materials engineer | 172131 |
| Mathematician | 152021 |
| Mechanical engineer | 172141 |
| Media and communication equipment worker, other | 274099 |
| Media and communication worker, other | 273099 |
| Medical and health services manager | 119111 |
| Medical assistant | 319092 |
| Medical records specialist | 292072 |
| Medical scientist | 191040 |
| Medical secretary and administrative assistant | 436013 |
| Medical transcriptionist | 319094 |
| Meeting, convention, and event planner | 131121 |
| Mental health and substance abuse social worker | 211023 |
| Mental health counselor | 211014 |
| Merchandise displayer and window trimmer | 271026 |
| Metal furnace operator, tender, pourer, and caster | 514050 |
| Meter reader, utilities | 435041 |
| Military enlisted tactical operations and air/weapons specialist and crew member | 553010 |
| Military officer special and tactical operations leader | 551010 |
| Military, rank not specified | 554010 |
| Millwright | 499044 |
| Mining and geological engineer, including mining safety engineer | 172151 |
| Miscellaneous agricultural worker | 452090 |
| Miscellaneous construction and related worker | 474090 |
| Miscellaneous health technologist and technician | 292090 |
| Miscellaneous plant and system operator | 518090 |
| Miscellaneous social scientist and related worker | 193090 |
| Miscellaneous vehicle and mobile equipment mechanic, installer, and repairer | 493090 |
| Model maker and patternmaker, metal and plastic | 514060 |
| Model, demonstrator, and product promoter | 419010 |
| Molder and molding machine setter, operator, and tender, metal and plastic | 514070 |
| Molder, shaper, and caster, except metal and plastic | 519195 |
| Mortician, undertaker, and funeral arranger | 394031 |
| Motor vehicle operator, other | 533099 |
| Music director and composer | 272041 |
| Musician and singer | 272042 |
| Natural sciences manager | 119121 |
| Network and computer systems administrator | 151244 |
| New accounts clerk | 434141 |
| News analyst, reporter, and journalist | 273023 |
| Nuclear engineer | 172161 |
| Nuclear medicine technologist and medical dosimetrist | 29203X |
| Nuclear technician | 194051 |
| Nurse anesthetist | 291151 |
| Nurse midwife | 291161 |
| Nurse practitioner | 291171 |
| Nursing assistant | 311131 |
| Occupational health and safety specialist and technician | 195010 |
| Occupational therapist | 291122 |
| Occupational therapy assistant and aide | 312010 |
| Office and administrative support worker, other | 439199 |
| Office clerk, general | 439061 |
| Office machine operator, except computer | 439071 |
| Operations research analyst | 152031 |
| Optician, dispensing | 292081 |
| Optometrist | 291041 |
| Order clerk | 434151 |
| Orderly and psychiatric aide | 31113X |
| Other assembler and fabricator | 5120XX |
| Other community and social service specialist | 21109X |
| Other designer | 27102X |
| Other drafter | 17301X |
| Other educational instruction and library worker | 2590XX |
| Other engineering technologist and technician | 17302X |
| Other entertainment attendant and related worker | 3930XX |
| Other extraction worker | 4750XX |
| Other financial specialist | 1320XX |
| Other grounds maintenance worker | 37301X |
| Other healthcare practitioner and technical occupation | 299000 |
| Other healthcare support worker | 31909X |
| Other installation, maintenance, and repair worker | 49909X |
| Other life, physical, and social science technician | 1940XX |
| Other machine tool setter, operator, and tender, metal and plastic | 51403X |
| Other material moving worker | 5371XX |
| Other mathematical science occupation | 1520XX |
| Other metal worker and plastic worker | 514XXX |
| Other personal appearance worker | 39509X |
| Other physician | 2912XX |
| Other production equipment operator and tender | 51919X |
| Other production worker | 5191XX |
| Other protective service worker | 33909X |
| Other psychologist | 19303X |
| Other rail transportation worker | 5340XX |
| Other teacher and instructor | 2530XX |
| Other textile, apparel, and furnishings worker | 51609X |
| Other transportation worker | 5360XX |
| Other woodworker | 5170XX |
| Packaging and filling machine operator and tender | 519111 |
| Packer and packager, hand | 537064 |
| Painter and paperhanger | 472140 |
| Painting worker | 519120 |
| Paper goods machine setter, operator, and tender | 519196 |
| Paralegal and legal assistant | 232011 |
| Paramedic | 292043 |
| Parking attendant | 536021 |
| Parking enforcement worker | 333041 |
| Parts salesperson | 412022 |
| Passenger attendant | 536061 |
| Payroll and timekeeping clerk | 433051 |
| Personal care and service worker, other | 399099 |
| Personal financial advisor | 132052 |
| Personal service manager, other | 119179 |
| Pest control worker | 372021 |
| Petroleum engineer | 172171 |
| Pharmacist | 291051 |
| Pharmacy aide | 319095 |
| Pharmacy technician | 292052 |
| Phlebotomist | 319097 |
| Photographer | 274021 |
| Photographic process worker and processing machine operator | 519151 |
| Physical scientist, other | 192099 |
| Physical therapist | 291123 |
| Physical therapist assistant and aide | 312020 |
| Physician assistant | 291071 |
| Pipelayer | 472151 |
| Plasterer and stucco mason | 472161 |
| Plumber, pipefitter, and steamfitter | 472152 |
| Podiatrist | 291081 |
| Police officer | 333050 |
| Postal service clerk | 435051 |
| Postal service mail carrier | 435052 |
| Postal service mail sorter, processor, and processing machine operator | 435053 |
| Postmaster and mail superintendent | 119131 |
| Postsecondary teacher | 251000 |
| Power plant operator, distributor, and dispatcher | 518010 |
| Precision instrument and equipment repairer | 499060 |
| Prepress technician and worker | 515111 |
| Preschool and kindergarten teacher | 252010 |
| Presser, textile, garment, and related material | 516021 |
| Print binding and finishing worker | 515113 |
| Printing press operator | 515112 |
| Private detective and investigator | 339021 |
| Probation officer and correctional treatment specialist | 211092 |
| Procurement clerk | 433061 |
| Producer and director | 272012 |
| Production, planning, and expediting clerk | 435061 |
| Project management specialist | 131082 |
| Proofreader and copy marker | 439081 |
| Property appraiser and assessor | 132020 |
| Property, real estate, and community association manager | 119141 |
| Psychiatric technician | 292053 |
| Public relations and fundraising manager | 112030 |
| Public relations specialist | 273031 |
| Public safety telecommunicator | 435031 |
| Pumping station operator | 537070 |
| Purchasing agent, except wholesale, retail, and farm products | 131023 |
| Purchasing manager | 113061 |
| Radiation therapist | 291124 |
| Radio and telecommunications equipment installer and repairer | 492020 |
| Radiologic technologist and technician | 292034 |
| Radiologist | 291224 |
| Rail-track laying and maintenance equipment operator | 474061 |
| Railroad conductor and yardmaster | 534031 |
| Real estate broker and sales agent | 419020 |
| Receptionist and information clerk | 434171 |
| Recreation worker | 399032 |
| Recreational therapist | 291125 |
| Refuse and recyclable material collector | 537081 |
| Registered nurse | 291141 |
| Rehabilitation counselor | 211015 |
| Reinforcing iron and rebar worker | 472171 |
| Religious worker, other | 212099 |
| Reservation and transportation ticket agent and travel clerk | 434181 |
| Residential advisor | 399041 |
| Respiratory therapist | 291126 |
| Retail salesperson | 412031 |
| Rigger | 499096 |
| Roofer | 472181 |
| Roustabout, oil and gas | 475071 |
| Sailor and marine oiler | 535011 |
| Sales and related worker, other | 419099 |
| Sales engineer | 419031 |
| Sales manager | 112022 |
| Sales representative of services, except advertising, insurance, financial services, and travel | 413091 |
| Sales representatives, wholesale and manufacturing | 414010 |
| Sawing machine setter, operator, and tender, wood | 517041 |
| School bus driver | 533051 |
| School bus monitor | 339094 |
| School psychologist | 193034 |
| Secondary school teacher | 252030 |
| Secretary and administrative assistant, except legal, medical, and executive | 436014 |
| Securities, commodities, and financial services sales agent | 413031 |
| Security and fire alarm systems installer | 492098 |
| Security guard and gambling surveillance officer | 339030 |
| Septic tank servicer and sewer pipe cleaner | 474071 |
| Sewing machine operator | 516031 |
| Sheet metal worker | 472211 |
| Ship and boat captain and operator | 535020 |
| Ship engineer | 535031 |
| Shipping, receiving, and inventory clerk | 435071 |
| Shoe and leather worker | 516040 |
| Shuttle driver and chauffeur | 533053 |
| Skincare specialist | 395094 |
| Small engine mechanic | 493050 |
| Social and community service manager | 119151 |
| Social and human service assistant | 211093 |
| Social science research assistant | 194061 |
| Social worker, other | 211029 |
| Sociologist | 193041 |
| Software developer | 151252 |
| Software quality assurance analyst and tester | 151253 |
| Solar photovoltaic installer | 472231 |
| Special education teacher | 252050 |
| Speech-language pathologist | 291127 |
| Stationary engineer and boiler operator | 518021 |
| Statistical assistant | 439111 |
| Statistician | 152041 |
| Stocker and order filler | 537065 |
| Structural iron and steel worker | 472221 |
| Structural metal fabricator and fitter | 512041 |
| Substance abuse and behavioral disorder counselor | 211011 |
| Supervisor of personal care and service worker | 391000 |
| Supervisor of transportation and material moving worker | 531000 |
| Surgeon | 291240 |
| Surgical technologist | 292055 |
| Survey researcher | 193022 |
| Surveying and mapping technician | 173031 |
| Surveyor, cartographer, and photogrammetrist | 171020 |
| Switchboard operator, including answering service | 432011 |
| Tailor, dressmaker, and sewer | 516050 |
| Tax examiner and collector, and revenue agent | 132081 |
| Tax preparer | 132082 |
| Taxi driver | 533054 |
| Teaching assistant | 259040 |
| Technical writer | 273042 |
| Telecommunications line installer and repairer | 499052 |
| Telemarketer | 419041 |
| Telephone operator | 432021 |
| Television, video, and film camera operator and editor | 274030 |
| Teller | 433071 |
| Textile machine setter, operator, and tender | 516060 |
| Therapist, other | 291129 |
| Tire builder | 519197 |
| Title examiner, abstractor, and searcher | 232093 |
| Tool and die maker | 514111 |
| Tour and travel guide | 397010 |
| Training and development manager | 113131 |
| Training and development specialist | 131151 |
| Transit and intercity bus driver | 533052 |
| Transportation inspector | 536051 |
| Transportation security screener | 339093 |
| Transportation service attendant | 536030 |
| Transportation, storage, and distribution manager | 113071 |
| Travel agent | 413041 |
| Tree trimmer and pruner | 373013 |
| Tutor | 253041 |
| Umpire, referee, and other sports official | 272023 |
| Underground mining machine operator | 475040 |
| Unemployed, with no work experience in the last 5 years or earlier or never worked | 999999 |
| Upholsterer | 516093 |
| Urban and regional planner | 193051 |
| Usher, lobby attendant, and ticket taker | 393031 |
| Veterinarian | 291131 |
| Veterinary assistant and laboratory animal caretaker | 319096 |
| Veterinary technologist and technician | 292056 |
| Waiter or waitress | 353031 |
| Water and wastewater treatment plant and system operator | 518031 |
| Web and digital interface designer | 151255 |
| Web developer | 151254 |
| Weigher, measurer, checker, and sampler, recordkeeping | 435111 |
| Welding, soldering, and brazing worker | 514120 |
| Wholesale and retail buyer, except farm products | 131022 |
| Wind turbine service technician | 499081 |
| Woodworking machine setter, operator, and tender, except sawing | 517042 |
| Word processor and typist | 439022 |
| Writer and author | 273043 |
# Overview
Source: https://docs.fernhq.com/docs/create-and-verify-customers/overview
Customers are your end users. Fern supports businesses and individuals as end users. Before your customer can transact with Fern, they must complete a customer verification process, i.e. **Know Your Customer (KYC) or Know Your Business (KYB)**. Fern manages this process to ensure secure and compliant funds transfers, giving you confidence in every transaction.
# Proof of Address-Type
Source: https://docs.fernhq.com/docs/create-and-verify-customers/proof-of-address-type
Currently, Fern supports one proof of address type: `BANK_STATEMENT`
# Requirements for Businesses
Source: https://docs.fernhq.com/docs/create-and-verify-customers/requirements-for-businesses
Business customers must complete verification of the nature of the business, business registration, and associated persons. Fern oversees the entire verification process on your behalf, eliminating the need for you to manage it directly.
## Information collected
* **Business details**
* Legal business name
* DBA name (if applicable)
* Business type
* Business industry
* Whether the business is a DAO
* Business registered address
* Business operating address
* Can be different from registered address
* Country of business registration
* Business registration number
* Business formation date
* Website
* Business description
* Additional links
* Social media profiles
* **Source of funds**
* Source of funds
* In some cases, depending on the nature of the business, we require proof of source of funds
* Description of source of funds
* Compliance screening procedures
* Required if transmitting funds on behalf of others
* **Account usage**
* Expected monthly transaction volume in USD
* Account purpose
* If `OTHER` is selected, free text description of the account purpose is required
* Estimated annual revenue
* **Risk information**
* Operation in prohibited countries
* High-risk activities & explanation of these activities
* **Beneficial owner information**
* Refer to **Individual** requirements
* Email address
* Percentage ownership
* Date relationship with the business began
* **Controller information**
* Refer to **Individual** requirements
* Email address
* Title
* Date relationship with the business began
* **Business** **documents**
* Formation documents
* Ownership documents
* Business proof of physical address
**Typical time to approval:** 4-7 business days
If additional documents or information are needed (e.g., proof of business activities), our compliance team will contact your end-customer directly to complete the verification process.
### Specific document requirements
The Fern customer verification links will make it clear what information is required from the customer. Customers will be required to provide documents that meet these criteria:
Formation documents
#### The documents must:
* Include the entity name and business registration number
* Be filed with the secretary of state or similar government body
* Business name must match what was provided in the KYB form
#### Accepted documents include:
* Official Articles of Incorporation / Organization
* Official Certificate of Formation
* Official Certificate or Registration of Limited Liability Partnership
* Legal Entity Formation (for DAOs)
* Trust Deed or Trust Agreement (for Trusts)
Ownership documents
#### The documents must:
* Confirm all individual beneficial owners who own 25% or more of the underlying entity
* Clearly account for 100% of ownership
* Be officially verified:
* Self-generated documents: Must be dated and signed by a lawyer or third-party CPA
* Capitalization tables: No signature required if produced by well-known equity management platforms like Carta, AngelList, or Securitize
* If the entity has another entity as a benefiical owner, confirmation of the individuals with significant control over the entity, such as its directors or officers, will be required
#### Accepted documents include:
* Articles of Incorporation (listing shareholders, not just controller)
* Capitalization table
* Shareholder registry
* Operating agreement
* Membership schedule
* Stock purchase agreement
* Ownership attestation
* Directors registry signed by a lawyer or CPA
Business proof of address
**The documents must:**
* Confirm the current operating address
* Mention the applying entity by name
* Be issued in the last 90 days
* Contain an address that is not a PO box or a virtual address
**Accepted documents include:**
* Bank statement
Note: DAOs may provide a proof of physical residential address for their verified control person if the DAO does not have its own physical operating address.
#### File Size Requirements
* **File size:** Greater than 10KB and less than 5MB
* **Total API request size:** Maximum 100MB
* **Image resolution:** Minimum 200x200 pixels
### Additional Information Requests (RFI)
If Fern's compliance team needs additional information during the verification process, the customer status will change to `NEEDS_ADDITIONAL_INFORMATION`, and the customer will be contacted directly via email.
**Common RFI scenarios for businesses:**
* Unclear formation or ownership documents
* Missing beneficial owner verification
* Proof of business activities required
* Enhanced due diligence documentation
* Updated financial information
Customers can submit additional documents through the same `verificationLink` provided in the initial response.
# Requirements for Individuals
Source: https://docs.fernhq.com/docs/create-and-verify-customers/requirements-for-individuals
Individual customers are required to provide certain information to complete identity verification. Fern oversees the entire verification process on your behalf, eliminating the need for you to manage it directly.
## Information collected
* Legal first name
* Middle name (optional)
* Legal last name
* Phone number
* Nationality
* Residential address
* Date of birth
* National ID issuing country
* National ID number
* Government ID issuing country
* Government ID number
* Government-issued identity document
* Employment status
* Most recent occupation (see [Occupation codes](/docs/create-and-verify-customers/occupation-codes))
* Source of funds
* Description of source of funds
* Account purpose
* If `OTHER` is selected, free text description of the account purpose is required
* Expected monthly transaction volume (in USD)
* Proof of address
* Mandatory for access to SEPA rails
* API makes it possible to provide this optionally; if not provided, Customer will not have access to SEPA rails
* Fern-hosted KYC forms require the proof of address
#### File Size Requirements
* **File size:** Greater than 10KB and less than 5MB
* **Total API request size:** Maximum 100MB
* **Image resolution:** Minimum 200x200 pixels
### Additional Information Requests (RFI)
If Fern's compliance team needs additional information during the verification process, the customer status will change to `NEEDS_ADDITIONAL_INFORMATION`, and the customer will be contacted directly via email.
**Common RFI scenarios for individuals:**
* Expired or unclear government ID
* Additional proof of address needed
* Verification of source of funds
* Enhanced due diligence for high-risk profiles
Customers can submit additional documents through the same `verificationLink` provided in the initial response.
**Typical time to approval:** Less than 10 minutes, unless we receive an RFI from partners (which requires manual intervention)
# Restricted Customer Geographies
Source: https://docs.fernhq.com/docs/create-and-verify-customers/restricted-customer-geographies
Fern can support customers based in 150+ countries. Some regions are either not supported or are currently considered high-risk and require additional diligence for customer approval. These lists are subject to change.
## Unsupported regions
Fern cannot onboard customers from these regions for any of the Fern services:
* Belarus
* Cuba
* Iran
* Myanmar
* North Korea
* Russia
* Syria
* Ukrainian Territories:
* Crimea
* Donetsk
* Kherson
* Luhansk
* Sevastopol
* Zaporizhzhia
* US States:
* Alaska
* Hawaii
* Louisiana
* New York
Additionally, Fern cannot provide multi-currency virtual accounts for customers from these regions (although other services, including payment services, may be provided):
* Afghanistan
* Albania
* Algeria
* Bangladesh
* Belarus
* Central African Republic
* China
* Democratic Republic of the Congo
* Eritrea
* Ethiopia
* Gaza Strip
* Iraq
* Kenya
* Kosovo
* Lebanon
* Libya
* Mali
* Morocco
* Nepal
* Nicaragua
* Niger
* North Macedonia
* Pakistan
* Qatar
* Russia
* Slovenia
* Somalia
* South Sudan
* Sudan
* Ukraine
* Venezuela
* West Bank
* Yemen
* Zimbabwe
## High-risk regions
Customers from these regions may be subject to additional requests for information to determine whether Fern can support them with the Fern services. These determinations are made on a case-by-case basis.
* Afghanistan
* Albania
* Algeria
* Angola
* Bangladesh
* Barbados
* Bhutan
* Bosnia-Herzegovina
* Botswana
* Burkina Faso
* Burundi
* Cameroon
* Cayman Islands
* Central African Republic
* China
* Democratic Republic of the Congo
* Cote D’Ivoire
* Croatia
* Eritrea
* Ethiopia
* Gaza Strip
* Gibraltar
* Guinea Bissau
* Haiti
* Iraq
* Jamaica
* Jordan
* Kenya
* Kosovo
* Lao People’s Democratic Republic
* Lebanon
* Libya
* Mali
* Monaco
* Morocco
* Mozambique
* Namibia
* Nepal
* Nicaragua
* Niger
* Nigeria
* North Macedonia
* Pakistan
* Philippines
* Qatar
* Senegal
* Somalia
* South Africa
* South Sudan
* Sudan
* Tanzania
* Trinidad & Tobago
* Turkey
* Uganda
* Ukraine
* Vanuatu
* Venezuela
* Vietnam
* West Bank
* Yemen
* Zimbabwe
# Verification Issues
Source: https://docs.fernhq.com/docs/create-and-verify-customers/verification-issues
## Overview
When customers require additional information during verification, Fern provides detailed verification issues to help you understand what needs to be corrected. These issues are returned when a customer's status changes to `NEEDS_ADDITIONAL_INFORMATION`, giving you specific guidance on how to resolve verification problems.
Verification issues help you:
* Understand exactly what information needs to be corrected
* Provide clear guidance to your customers
* Reduce verification turnaround time
* Improve the customer verification experience
**Related guides:**
* For verification statuses see [Customer statuses](/docs/create-and-verify-customers/customer-statuses)
* For verification process see [Verification workflow](/docs/create-and-verify-customers/verification-workflow)
* For webhook notifications see [Webhook integration](/docs/webhooks/overview)
* For API operations see [Customer API](/api-reference/customers)
## When verification issues appear
Verification issues are included in API responses when a customer's status is `NEEDS_ADDITIONAL_INFORMATION`, `UNDER_REVIEW`, or `REJECTED`. You can access these issues through:
* **[GET `/customers/{id}` endpoint](/api-reference/customers/get-customer)** - Issues are included in the response
* **`customer.updated` webhook** - Issues are included in the webhook payload
The `verificationIssues` array provides actionable information to help customers resolve verification problems and complete their verification successfully.
## Verification issues schema
Each verification issue contains the following information:
```json theme={null}
{
...
"customerStatus": "NEEDS_ADDITIONAL_INFORMATION",
"verificationIssues": [
{
"code": "DOCUMENT_EXPIRED",
"message": "The provided document has expired. Please upload a valid ID.",
"timestamp": "2023-10-01T12:00:00Z"
},
{
"code": "DOC_QUALITY_POOR",
"message": "We couldn't verify your ID. Please upload clear, complete photos of your ID.",
"timestamp": "2023-10-01T12:00:00Z"
}
]
}
```
**Schema properties:**
* `code`: Standardized error code identifying the specific issue
* `message`: User-friendly description explaining what needs to be corrected
* `timestamp`: When the issue was detected
## Common verification issues
The table below shows some of the most common verification issues and their meanings:
| Issue Code | Description | Resolution |
| ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- |
| `DOCUMENT_MISSING_BACK` | We couldn't verify your ID. Please upload clear, complete photos of your ID. | Upload clear, valid documents as specified |
| `DOCUMENT_MISSING_FRONT` | We couldn't verify your ID. Please upload clear, complete photos of your ID. | Upload clear, valid documents as specified |
| `DOCUMENT_NUMBER_UNREADABLE` | We couldn't verify your ID. Please upload clear, complete photos of your ID. | Upload clear, valid documents as specified |
| `DOC_QUALITY_POOR` | We couldn't verify your ID. Please upload clear, complete photos of your ID. | Upload clear, valid documents as specified |
| `NAME_UNREADABLE` | We couldn't verify your ID. Please upload clear, complete photos of your ID. | Upload clear, valid documents as specified |
| `NO_FACE_PORTRAIT` | We couldn't verify your ID. Please upload clear, complete photos of your ID. | Upload clear, valid documents as specified |
| `MISSING_ID_DETAILS` | We couldn't verify your ID. Please upload clear, complete photos of your ID. | Upload clear, valid documents as specified |
| `DOCUMENT_EXPIRED` | The provided document has expired. Please upload a valid ID. | Upload clear, valid documents as specified |
| `NO_GOVERNMENT_ID` | No government ID found in submission. Please upload your ID. | Upload clear, valid documents as specified |
| `INCORRECT_ID_TYPE` | Incorrect ID type selected. Please select the correct type and resubmit. | Review your submission or contact support for assistance |
| `ID_REQUIRES_ADDITIONAL_VERIFICATION` | Additional verification is required for your ID. Please provide supplementary proof of identity and address. | Provide complete, valid address information |
| `ID_COUNTRY_MISMATCH` | The country of your ID doesn't match the country you selected. | Review your submission or contact support for assistance |
| `GOVERNMENT_ID_VERIFICATION_FAILED` | We couldn't verify your government ID. Please try again or use a different ID. | Review your submission or contact support for assistance |
| `DATABASE_CHECK_FAILED_ON_NAME_FIRST` | We couldn't verify the information provided with our records. | Review your submission or contact support for assistance |
| `DATABASE_CHECK_FAILED_ON_NAME_LAST` | We couldn't verify the information provided with our records. | Review your submission or contact support for assistance |
| `DATABASE_CHECK_FAILED_ON_SOCIAL_SECURITY_NUMBER` | We couldn't verify the information provided with our records. | Review your submission or contact support for assistance |
| `DATABASE_CHECK_FAILED_ON_STREET_NAME` | We couldn't verify your address with our records. | Provide complete, valid address information |
| `DATABASE_CHECK_FAILED_ON_CITY` | We couldn't verify your address with our records. | Provide complete, valid address information |
| `DATABASE_CHECK_FAILED_ON_SUBDIVISION` | We couldn't verify your address with our records. | Provide complete, valid address information |
| `DATABASE_CHECK_FAILED_ON_POSTAL_CODE` | We couldn't verify your address with our records. | Provide complete, valid address information |
| `ADDRESS_TOO_SHORT` | The address you provided is too short. Please enter your complete address. | Provide complete, valid address information |
| `INCONSISTENT_INFORMATION` | Inconsistent or incomplete information. Please review your details. | Review your submission or contact support for assistance |
| `INCONSISTENT_DETAILS` | Your information could not be verified due to inconsistent details. | Review your submission or contact support for assistance |
| `INVALID_PARAMETERS` | Please review and correct the information you provided. | Review and correct the information as indicated |
| `VERIFICATION_ISSUE` | A verification issue was detected. Please review your submission. | Review your submission or contact support for assistance |
| `API_ERROR` | An error occurred during verification. Please try again. | Review your submission or contact support for assistance |
| `NAME_VERIFICATION_FAILED` | The name on your document could not be verified. Please ensure your name matches exactly. | Review your submission or contact support for assistance |
| `ID_TYPE_MISMATCH` | The ID type doesn't match the expected type. Please select the correct ID type. | Review your submission or contact support for assistance |
| `BIRTH_DATE_MISMATCH` | The date of birth on your document doesn't match your provided information. | Review your submission or contact support for assistance |
| `ID_DATA_MISMATCH` | The information on your ID doesn't match the provided details. Please review and correct. | Review and correct the information as indicated |
| `ID_NUMBER_NOT_VERIFIED` | Your ID number could not be verified. Please check and resubmit. | Review your submission or contact support for assistance |
| `MISSING_NAME` | The name is missing from your document. Please provide a document with your full name. | Review your submission or contact support for assistance |
| `DOCUMENT_NOT_FOUND` | No document was found in your submission. Please upload your ID document. | Upload clear, valid documents as specified |
| `UNREADABLE_DOCUMENT` | Your document is unreadable. Please upload a clearer image. | Upload clear, valid documents as specified |
| `UNRECOGNIZED_DOCUMENT` | Your document type is not recognized. Please upload a valid government-issued ID. | Upload clear, valid documents as specified |
| `MISSING_DOCUMENT_NUMBER` | The document number is missing or unreadable. Please upload a clearer image. | Upload clear, valid documents as specified |
| `MISSING_ISSUE_DATE` | The issue date is missing from your document. Please upload a complete document. | Upload clear, valid documents as specified |
| `MISSING_EXPIRY_DATE` | The expiry date is missing from your document. Please upload a complete document. | Upload clear, valid documents as specified |
| `DOCUMENT_FRONT_OR_BACK_MISSING` | Please upload both the front and back of your ID document. | Upload clear, valid documents as specified |
| `DOCUMENT_BACK_MISSING` | The back of your document is missing. Please upload both sides. | Upload clear, valid documents as specified |
| `ID_NOT_ALLOWED` | This ID type is not accepted for verification. Please use a different form of ID. | Review your submission or contact support for assistance |
| `FACE_PREVIOUSLY_ONBOARDED` | This identity has already been registered. Please contact support if you believe this is an error. | Contact support for assistance |
| `ID_PREVIOUSLY_SEEN` | This ID has already been used for verification. Please contact support if you believe this is an error. | Contact support for assistance |
| `ID_PREVIOUSLY_ATTEMPTED` | This ID was previously submitted. Please contact support if you need assistance. | Contact support for assistance |
| `SUSPICIOUS_USER_BEHAVIOUR` | Unusual activity was detected during verification. Please try again or contact support. | Contact support for assistance |
| `SCREEN_DETECTED` | Please use a physical document rather than a photo of a screen. | Review your submission or contact support for assistance |
| `AML_MATCH` | Additional compliance review is required. Our team will be in touch. | Review your submission or contact support for assistance |
| `ADDRESS_DOCUMENT_DOCUMENT_NOT_ISSUED_RECENTLY` | Your address document is too old. Please provide a document issued within the last 3 months. | Provide complete, valid address information |
| `ADDRESS_DOCUMENT_MISSING_NAME` | Your address document is missing your name. Please provide a document showing your full name. | Provide complete, valid address information |
| `ADDRESS_DOCUMENT_MISSING_ADDRESS` | Your address document is missing the address. Please provide a complete document. | Provide complete, valid address information |
| `ADDRESS_DOCUMENT_UNRECOGNIZED_DOCUMENT` | Your address document is not recognized. Please provide a utility bill, bank statement, or government letter. | Provide complete, valid address information |
| `ADDRESS_DOCUMENT_NAME_VERIFICATION_FAILED` | The name on your address document doesn't match. Please ensure names match across all documents. | Provide complete, valid address information |
| `DATABASE_LOOKUP_ISSUE` | We encountered an issue verifying your information. Please try again. | Review your submission or contact support for assistance |
| `THIRD_PARTY_API_FAILED` | Verification service is temporarily unavailable. Please try again later. | Review your submission or contact support for assistance |
| `API_DATA_REQUIREMENTS_NOT_MET` | Some required information is missing. Please complete all required fields. | Review your submission or contact support for assistance |
| `WORKFLOW_CONFIG_ERROR` | An error occurred during verification. Please try again or contact support. | Contact support for assistance |
| `ID_WARNING` | An issue was detected with your ID document. Please review and resubmit. | Review your submission or contact support for assistance |
| `AML_WARNING` | Additional review is required to complete verification. | Review your submission or contact support for assistance |
| `FRAUD_WARNING` | Additional verification is required. Please contact support if this persists. | Contact support for assistance |
| `ADDITIONAL_WARNING` | Additional information is required to complete verification. | Review your submission or contact support for assistance |
If you receive a `VERIFICATION_ISSUE` code, this indicates our system detected an issue but couldn't provide a specific error code. Please contact support for further investigation and assistance resolving the verification problem.
## Resolving verification issues
When you receive verification issues, you can resolve them by updating the customer's information using the [PATCH `/customers/{id}` endpoint](/api-reference/customers/update-customer-kyc-data). This allows you to correct any problematic data and automatically restart the verification process.
**Resolution workflow:**
1. **Parse the issues array** - Extract the specific codes and messages from `verificationIssues`
2. **Display clear guidance** - Show user-friendly messages to your customers
3. **Collect corrected information** - Allow customers to provide updated data or documents
4. **Update customer data** - Use [PATCH `/customers/{id}`](/api-reference/customers/update-customer-kyc-data) to submit corrections
5. **Automatic restart** - Verification process restarts automatically after the update
## How to resolve verification issues
Use the [PATCH `/customers/{id}` endpoint](/api-reference/customers/update-customer-kyc-data) to update customer information and resolve verification issues. The endpoint accepts the same fields as customer creation, allowing you to correct any problematic data.
**Common resolution actions:**
* **Document issues**: Upload new, higher-quality document images
* **Information mismatches**: Correct name, address, or other personal details
* **Missing data**: Provide additional required information
* **Expired documents**: Upload current, valid identification
Once you update the customer data, the verification process automatically restarts. The customer status will change from `NEEDS_ADDITIONAL_INFORMATION` to `UNDER_REVIEW`, and you'll receive a new `customer.updated` webhook notification.
When customers update their information to resolve verification issues, the verification process automatically restarts. You'll receive another `customer.updated` webhook when the status changes.
# Verification Workflow
Source: https://docs.fernhq.com/docs/create-and-verify-customers/verification-workflow
## Overview
This guide explains the complete verification process from submission to approval for both individual (KYC) and business (KYB) customers. The verification workflow combines data validation, document verification, and compliance screening to ensure customer identity and meet regulatory requirements.
Understanding this workflow helps you build better integrations, set appropriate customer expectations, and handle various verification scenarios effectively. The process involves multiple verification providers working in parallel to provide comprehensive identity and compliance checks.
**Related guides:**
* For verification statuses see [Customer statuses](/docs/create-and-verify-customers/customer-statuses)
* For webhook notifications see [Webhook integration](/docs/webhooks/overview)
* For API operations see [Customer API](/api-reference/customers)
## What is verification
Customer verification is the process of confirming identity and compliance requirements before granting access to financial services. This process involves:
1. **Data collection:** Gathering customer information and documents
2. **Submission:** Sending data to verification providers
3. **Review:** Automated and manual verification checks
4. **Decision:** Approval, rejection, or request for additional information
5. **Activation:** Granting platform access upon approval
## Common verification scenarios
### Straightforward approval
**Flow:**
1. Customer submits complete, valid data
2. Verification is complete under 10 minutes for KYC
3. Status: `UNDER_REVIEW` → `ACTIVE`
**Developer experience:**
* Single webhook: status change to `ACTIVE`
* Total time: Under 10 minutes
* No additional action required
### Request for information (RFI)
**Flow:**
1. Customer submits data
2. Verification identifies issue (e.g., blurry document image)
3. Status: `UNDER_REVIEW` → `NEEDS_ADDITIONAL_INFORMATION`
4. Customer uploads better quality image
5. System re-submits automatically
6. Verification is run again → Approves
7. Status: `NEEDS_ADDITIONAL_INFORMATION` → `UNDER_REVIEW` → `ACTIVE`
**Developer experience:**
* Multiple webhooks: RFI notification, status changes
* Total time: up to under 15 minutes, excluding the time for the customer to provide new information (including RFI resolution)
* Action required: Facilitate customer data update using guidance from `verificationIssues` array
**Common RFI reasons:**
* Document image quality insufficient
* Address cannot be verified
* Expired documents
* Missing beneficial owner information (KYB)
* Ownership percentages do not add to 100% (KYB)
### Rejection
**Flow:**
1. Customer submits data
2. Provider identifies unresolvable issue
3. Multiple RFI attempts fail to resolve issue
4. Manual review: Permanent rejection
5. Status: `UNDER_REVIEW` → `NEEDS_ADDITIONAL_INFORMATION` → `REJECTED`
**Developer experience:**
* Final rejection webhook
* Customer cannot use platform
* Support contact required for appeal or clarification
**Common rejection reasons:**
* Identity documents could not be verified
* Sanctions or watchlist match
* High-risk jurisdictions
* Fraudulent information detected
* Compliance policy violations
## Monitoring verification progress
### Webhooks
**Setup:** Configure webhook endpoint to receive real-time notifications
**Benefits:**
* Real-time status updates
* No polling required
* Efficient resource usage
* Immediate response to status changes
**Learn more:** [Webhook integration guide](/docs/webhooks/overview)
## Best practices
### For developers
1. **Use webhooks:** Real-time notifications are more efficient than polling
2. **Implement idempotency:** Handle duplicate webhook deliveries gracefully
3. **Validate data before submission:** Reduce RFI likelihood with client-side validation
4. **Set user expectations:** Inform users about typical verification timelines
5. **Handle all statuses:** Build UI for CREATED, UNDER\_REVIEW, RFI, ACTIVE, and REJECTED
6. **Log everything:** Maintain audit logs of verification attempts and status changes
7. **Test error paths:** Test RFI and rejection flows, not just happy path
### For data quality
1. **Document quality matters:** High-resolution, clear images reduce RFI rate
2. **Complete data upfront:** Provide all required fields to avoid delays
3. **Validate address formats:** Use address validation APIs before submission
4. **Double-check beneficial owners:** Missing UBOs are the number one KYB RFI cause
# Virtual Accounts Overview
Source: https://docs.fernhq.com/docs/fern-virtual-accounts/overview
Learn about Fern virtual accounts and automated onramps
Fern offers virtual accounts in several currencies for business and individual customers. Virtual accounts are named fiat accounts that can send and/or receive fiat currencies.
**For businesses, Fern offers named accounts that can collect, hold, and send the following fiat currencies:**
* USD
* EUR
* GBP
* AUD
* NZD
* CAD
* PLN
* HKD
* SGD
* CNH
* MXN
* THB
* IDR
* JPY
**For individuals, Fern offers named accounts that can collect and automatically onramp the following fiat currencies:**
* USD
* EUR
* MXN
# Events
Source: https://docs.fernhq.com/docs/webhooks/events
Fern's webhooks are organized into several event categories based on the type of resource or process. Each event has a specific event type string (for example, customer.created) that identifies the nature of the event. The available event types and their meanings are listed below:
### Event Types (by Categories):
| **Event Category** | **Event Type** | **Description** |
| ---------------------- | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| Customer Events | | — |
| | customer.created | Triggered when a new customer is initially created. |
| | customer.updated | Triggered when a customer’s status or details change. |
| Payment Account Events | | — |
| | payment\_account.created | Triggered when a new payment account is added/created. |
| | payment\_account.deleted | Triggered when a payment account is removed/deleted. |
| Transaction Events | | — |
| | transaction.created | Triggered when a transaction is initiated (created). |
| | transaction.updated | Triggered when a transaction’s status changes (e.g. moves from created to processing, completed, etc). |
| | deposit.created | Triggered when a deposit is made to a customer's account (e.g FERN\_CRYPTO\_WALLET, FERN\_FIAT\_ACCOUNT). Same payload as transaction.created. |
| | deposit.updated | Triggered when a transaction corresponding to deposit has a status change. Same payload as transaction.updated. |
### Event Structure:
All webhook event payloads share a common structure. The HTTP POST request body is a JSON object with the following top-level fields:
* **id (string)**: A unique identifier for the event notification. This can be used to detect duplicate deliveries.
* **apiVersion (string)**: The API version for the payload format (e.g. "v1").
* **type (string)**: The event type name (as listed above, e.g. "customer.created").
* **createdAt (string)**: Timestamp (ISO 8601 format) when the event occurred.
* **resource (object)**: The payload data specific to the event, containing the resource or entity information. The content of this object varies by event type:
* For customer events, the resource includes details about the customer (e.g. customerId, customerStatus, name, email, etc.), which matches the response of the `GET` Customer end-point response.
* For payment account events, the resource includes details of the payment account, which matches the `GET` Payment-Accounts end-point response
* For transaction events, the resource includes details of the transaction, which matches the `GET` Transaction end-point response
# Webhooks Overview
Source: https://docs.fernhq.com/docs/webhooks/overview
Fern uses webhooks to notify your application about events that happen in your Fern account. Webhooks are HTTP POST requests that Fern sends to a URL you specify.
## Why Use Webhooks?
Webhooks allow you to:
* Get real-time notifications about transaction status changes
* Update your database when customers complete verification
* Trigger business logic based on Fern events
* Maintain data consistency between Fern and your systems
## Getting Started
1. **Configure Your Endpoint**: Set up an HTTPS endpoint to receive webhooks
2. **Verify Webhooks**: Implement signature verification for security
3. **Handle Events**: Process incoming webhook events appropriately
4. **Manage Retries**: Handle failed deliveries with proper retry logic
## Security
All webhooks are signed with your webhook secret to ensure authenticity. Always verify the signature before processing webhook data.
# Retries
Source: https://docs.fernhq.com/docs/webhooks/retries
Fern automatically retries webhook deliveries if your server does not respond with a 2xx HTTP status code.
### Retry Policy
Each webhook event will be attempted up to 4 times total (1 initial + 3 retries) using an exponential backoff strategy:
| Attempt | Delay Before Retry |
| ------- | -------------------- |
| 1st | Immediate (no delay) |
| 2nd | 5 seconds |
| 3rd | 30 seconds |
| 4th | 1 minute |
If all attempts fail (i.e., your endpoint continues to return a non-2xx response or times out), the webhook will be marked as undelivered and no further attempts will be made.\\
> We recommend that your webhook handlers are idempotent and respond quickly (within 5 seconds). To ensure reliability, log incoming webhook ids (from the payload `id` ) and avoid side effects on duplicate deliveries.
# Sample Payloads
Source: https://docs.fernhq.com/docs/webhooks/sample-payloads
Below are example webhook payloads for each event type, illustrating the structure and fields you can expect:
### Customer Created Event:
### Customer Updated Event:
```json theme={null}
{
"id": "03b7030f-1111-4d76-9352-cdebd82112c8",
"apiVersion": "v1",
"type": "customer.updated",
"createdAt": "2023-01-01T12:00:00Z",
"resource": {
"customerId": "03b7030f-6da1-4d76-9352-cdebd82112c8",
"customerStatus": "ACTIVE",
"customerType": "INDIVIDUAL",
"name": "John Doe",
"email": "johndoe@example.com",
"verificationLink": "https://kyb.example.com/verify/abc123",
"updatedAt": "2023-10-01T12:00:00Z",
"organizationId": "8469411c-48c1-4e26-a032-44688be9cb4b"
},
"updatedAt": "2023-01-01T12:10:00Z"
}
```
### Payment Account Created Event:
```json theme={null}
{
"id": "03b7030f-1111-1111-9352-cdebd82112c8",
"apiVersion": "v1",
"type": "payment_account.created",
"createdAt": "2023-01-03T10:15:00Z",
"updatedAt": "2023-01-03T10:15:00Z",
"resource": {
"paymentAccountId": "03b7030f-6da1-4d76-9352-cdebd82112c8",
"paymentAccountType": "EXTERNAL_BANK_ACCOUNT",
"nickname": "Savings Account",
"createdAt": "2023-01-03T10:15:00Z",
"customerId": "c3f1ec5a-4f18-4fd3-bbea-c33ebfceff0a",
// These objects will only be populated if the account of that type existed:
"externalBankAccount": {
"bankAccountType": "CHECKING",
"bankAccountOwnerName": "John Doe",
"bankAccountOwnerEmail": "john@example.com",
"bankName": "Chase Bank",
"bankAccountCurrency": "USD",
"bankAccountMask": "***6789",
"bankAccountPaymentMethod": "ACH"
},
"externalCryptoWallet": {
"cryptoWalletType": "EVM",
"chain": "base",
"address": "0x1234567890123456789012345678901234567890"
},
"fernCryptoWallet": {
"cryptoWalletType": "EVM",
"address": "0x1234567890123456789012345678901234567890"
},
"bankAccountFormLink": "https://app.fernhq.com/bank_account/abc"
}
}
```
### Payment Account Deleted Event:
```json theme={null}
{
"id": "03b7030f-1111-1111-1111-cdebd82112c8",
"apiVersion": "v1",
"type": "payment_account.deleted",
"createdAt": "2023-01-03T10:15:00Z",
"updatedAt": "2023-01-03T10:20:00Z",
"resource": {
"paymentAccountId": "03b7030f-6da1-4d76-9352-cdebd82112c8",
"paymentAccountType": "EXTERNAL_BANK_ACCOUNT",
"nickname": "Savings Account",
"createdAt": "2023-01-03T10:15:00Z",
"customerId": "c3f1ec5a-4f18-4fd3-bbea-c33ebfceff0a",
// These objects will only be populated if the account of that type existed:
"externalBankAccount": { ... },
"externalCryptoWallet": { ... },
"fernCryptoWallet": { ... }
}
}
```
### Transaction Created Event:
```json theme={null}
{
"id": "03b7030f-2222-4d76-8888-1111111111aa",
"apiVersion": "v1",
"type": "transaction.created",
"createdAt": "2023-01-07T09:30:00Z",
"resource": {
"transactionId": "1d8beb26-b4d1-47ee-8e5d-0d3905f200c7",
"transactionStatus": "CREATED",
"correlationId": "03b7030f-6da1-4e76-9352-3debd82112c8",
"source": {
"sourcePaymentAccountId": "072a8b7b-38c7-429a-a6cf-35dae7f2fb77",
"sourceCurrency": "USD",
"sourcePaymentMethod": "ACH",
"sourceAmount": "100.00"
},
"destination": {
"destinationPaymentAccountId": "072a8b7b-38c7-429a-a6cf-35dae7f2fb77",
"destinationPaymentMethod": "ETHEREUM",
"destinationCurrency": "USDC",
"exchangeRate": "1.2",
"destinationAmount": "100"
},
"fees": {
"feeCurrency": "USD",
"fernFee": {
"feeAmount": "5.45",
"feeUSDAmount": "5.45"
},
"developerFee": {
"feeAmount": "5.45",
"feeUSDAmount": "5.45"
}
},
"transferInstructions": {
"type": "fiat",
"transferPaymentMethod": "ACH",
"transferMessage": "Payment for order #12345",
"transferBankName": "First National Bank",
"transferBankAddress": "123 Bank St, Finance City",
"transferBankAccountNumber": "987654321",
"transferRoutingNumber": "123456789",
"transferBankBeneficiaryName": "John Doe"
},
"createdAt": "2023-08-01T12:00:00Z",
"updatedAt": "2023-08-01T12:00:00Z"
}
}
```
### Transaction Updated Event:
```json theme={null}
{
"id": "03b7030f-3333-1111-1111-1111111112c8",
"apiVersion": "v1",
"type": "transaction.updated",
"createdAt": "2023-01-07T09:45:00Z",
"resource": {
"transactionId": "1d8beb26-b4d1-47ee-8e5d-0d3905f200c7",
"transactionStatus": "PROCESSING",
"correlationId": "03b7030f-6da1-4e76-9352-3debd82112c8",
"source": {
"sourcePaymentAccountId": "072a8b7b-38c7-429a-a6cf-35dae7f2fb77",
"sourceCurrency": "USD",
"sourcePaymentMethod": "ACH",
"sourceAmount": "100.00"
},
"destination": {
"destinationPaymentAccountId": "072a8b7b-38c7-429a-a6cf-35dae7f2fb77",
"destinationPaymentMethod": "ETHEREUM",
"destinationCurrency": "USDC",
"exchangeRate": "1.2",
"destinationAmount": "100"
},
"fees": {
"feeCurrency": "USD",
"fernFee": {
"feeAmount": "5.45",
"feeUSDAmount": "5.45"
},
"developerFee": {
"feeAmount": "5.45",
"feeUSDAmount": "5.45"
}
},
"transferInstructions": {
"type": "fiat",
"transferPaymentMethod": "ACH",
"transferMessage": "Payment for order #12345",
"transferBankName": "First National Bank",
"transferBankAddress": "123 Bank St, Finance City",
"transferBankAccountNumber": "987654321",
"transferRoutingNumber": "123456789",
"transferBankBeneficiaryName": "John Doe"
},
"createdAt": "2023-08-01T12:00:00Z",
"updatedAt": "2023-08-01T12:00:00Z"
}
}
```
In the transaction examples above, a `transaction.created` event is sent when the transaction is first initiated (with status `CREATED`), and later a `transaction.updated` event may be sent when the status progresses (in this case, to `PROCESSING`; additional `transaction.updated` events would be sent for subsequent status changes like `COMPLETED` or `FAILED`).
# null
Source: https://docs.fernhq.com/docs/webhooks/verification
#### Signature Headers
Each webhook HTTP request includes the following headers to assist with verification:
* `x-api-signature` – The HMAC SHA-256 signature of the payload (hex-encoded). This is what you will compare against your own computed signature.
* `x-api-timestamp` – The UNIX timestamp (in seconds or milliseconds) at which the request was sent. This is used in the signature computation and to prevent replay attacks.
Make sure to record the `x-api-timestamp` and ensure it is within an acceptable range (for example, within 1 minutes of your server’s current time) before trusting the webhook. If the timestamp is too far out-of-sync, it could indicate a replay attack or an extremely delayed request, and you may want to ignore it. Also, use the payload `id` to guard against processing the same event twice.
#### Signature Generation (TypeScript)
Fern generates the `x-api-signature` header by computing an HMAC using SHA-256. The signing string is composed of the timestamp and the request body, separated by a dot. In pseudo-code, Fern does:
```javascript theme={null}
stringToSign = "."
signature = HMAC_SHA256(secret, stringToSign)
```
The resulting signature is encoded as a hexadecimal string and sent in the header. Important: The exact raw body of the request must be used in this computation. Do not modify the body (even pretty-printing JSON or changing whitespace) before computing the HMAC on your side, as any change will alter the signature.
Here’s an example of how to generate the signature in TypeScript (Node.js environment) using the secret, timestamp, and body:
```javascript theme={null}
import * as crypto from "crypto";
const generateSignature = (
body: string, // raw JSON string of the request body
timestamp: string, // timestamp string from header
secret: string // your webhook secret
): string => {
const payloadToSign = `${timestamp}.${body}`;
return crypto
.createHmac("sha256", secret)
.update(payloadToSign)
.digest("hex");
};
```
In this code, we concatenate the timestamp and the body with a period and then create an HMAC using the `SHA-256` algorithm with your webhook secret. The output is a hexadecimal string. Fern performs this same computation for each webhook it sends. Your goal in verification is to perform the same computation and compare the result with the signature provided by Fern.
#### Signature Validation (TypeScript)
To validate a webhook in your handler, follow these steps:
1. **Retrieve the headers and body**: Get the `x-api-signature` and `x-api-timestamp` from the request headers, and get the raw request body string.
2. **Recompute the signature**: Use your secret and the received timestamp and body to compute the expected signature (using a function like `generateSignature` above).
3. **Compare signatures securely**: Check if the computed signature matches the X-Api-Signature from the header. Use a constant-time comparison to avoid timing attacks.
4. **Check timestamp freshness**: Verify that the timestamp from `x-api-timestamp` is recent (e.g., within the last few minutes). If it’s too old or far in the future, you may reject the request as a replay attempt.
5. **Process the webhook if valid**: Only if the signature is valid and the timestamp is acceptable should you proceed to process the webhook (e.g., update your database or trigger other actions). If verification fails, you should reject the request (e.g., respond with 4xx status) or ignore it.\\
Below is an example implementation in TypeScript for validating the signature of a request:
```javascript theme={null}
import * as crypto from "crypto";
const isValidSignature = (
body: string, // raw JSON string of the request body
timestamp: string, // timestamp string from X-Api-Timestamp header
signature: string, // hex string from X-Api-Signature header
secret: string // your webhook secret
): boolean => {
const expectedSignature = generateSignature(body, timestamp, secret);
// Use timing-safe comparison to avoid timing attack vulnerability
const sigBuffer = Buffer.from(signature, "hex");
const expectedSigBuffer = Buffer.from(expectedSignature, "hex");
return (
sigBuffer.length === expectedSigBuffer.length &&
crypto.timingSafeEqual(sigBuffer, expectedSigBuffer)
);
};
// Example usage in an Express.js route handler
app.post("/my-webhook-endpoint", express.raw({ type: "application/json" }), (req, res) => {
const signature = req.header("x-api-signature");
const timestamp = req.header("x-api-timestamp");
const rawBody = req.body.toString(); // assuming body is kept as raw Buffer
if (!signature || !timestamp || !isValidSignature(rawBody, timestamp, signature, WEBHOOK_SECRET)) {
console.error("Invalid webhook signature – request possibly forged!");
return res.sendStatus(400); // reject if signature doesn't match
}
// Optionally, also check the timestamp here for staleness
const now = Date.now();
const reqTime = Number(timestamp);
if (isNaN(reqTime) || Math.abs(now - reqTime*1000) > 5 * 60 * 1000) { // example: 5 minute tolerance
console.error("Webhook timestamp outside of tolerance – possible replay attack!");
return res.sendStatus(400);
}
// Signature is valid and timestamp is recent – process the webhook
const event = JSON.parse(rawBody);
handleWebhookEvent(event);
res.sendStatus(200);
});
```
In the above example, `generateSignature` is the function defined in the previous section. We compare the signatures using `crypto.timingSafeEqual` which helps prevent timing attacks by making sure the comparison takes the same amount of time regardless of how much of the string matches. We also ensure the buffers are of equal length before comparing (as a safety check).
# Core Concepts
Source: https://docs.fernhq.com/getting-started/core-concepts
The Fern API has several core concepts. Here, we describe these concepts at a high-level and how they relate to each other.
```mermaid theme={null}
flowchart TD
A[Customers] -->|Can have, 1:many| B[PaymentAccounts]
A -->|Can have, 1:many| C[Quotes]
C -->|Reference, 1:1| D[Transactions]
C -->|Reference, optional| B[PaymentAccounts]
```
Fern's core API concepts are:
* [Customers](../api-reference/customers) — Using the Fern API, you can create your individual and business users as customers. Customers are uniquely identified by email address. Customers must be verified in order to use Fern quotes and transactions.
* [Payment accounts](../api-reference/payment-accounts) — You can create payment accounts for your customers and their contacts (for third-party transfers). Depending on the [fiat currency and payment method](../fiat-currency-support) of the account, you may need to collect different information about the customer's account to successfully link it to the customer. Once a payment account has been successfully created, you can initiate transactions with that account.
* [Quotes](../api-reference/quotes) — Quotes enable you to specify critical details about a transaction. You receive exchange rates and other information as part of the API response.
* You must create a quote before you create a transaction, and you will use the quote ID when creating a transaction.
* Quotes can only be created for approved customers.
* Once you create a transaction with a quote, that quote can no longer be used. To generate a new transaction, you will have to create a new quote.
* [Transactions](../api-reference/transactions) — Transactions confirm the details of a quote. You create transactions using quote IDs.
* Transaction API responses include instructions that provide details on where your customer should transfer funds in order to proceed with the next steps of the transaction.
# Developer Dashboard
Source: https://docs.fernhq.com/getting-started/developer-dashboard
Fern's **developer dashboard** is an easy-to-use UI to view and manage your customers and transactions. The dashboard is accessible at [dashboard.fernhq.com](https://dashboard.fernhq.com/).
Core features of the dashboard:
* API key creation
* Webhook subscription
* Managing organization branding
* Managing billing
* Customers table that displays your customers and their status
* Transactions table that displays all transactions initiated by your customers
* More coming soon!
# Earning Revenue With Fern
Source: https://docs.fernhq.com/getting-started/earn-with-fern
Fern is designed to create revenue generation opportunities for our developer partners.
* **Currency conversion:** For on/offramps, FX, and crypto swaps, you can set a **developer fee** indicating the amount that you'd like us (Fern) to deduct from the transaction. We will settle this revenue payment with you on a monthly basis, in either USD or USDC.
* Developer fees are deducted before funds reach the user's destination account. If you set an empty or zero developer fee, the customer will get the full amount in their account.
* **Multi-currency accounts and wallets:** You can charge your end users for the creation of multi-currency accounts and wallets.
* **Yield:** Some Fern products enable your users to earn yield on funds at rest. You can specify a percentage amount that you'd like to earn on yield generated, as well as the amount you'd like to go back to your users.
* **Cards:** Fern shares interchange fee with partners integrating our cards solution.
We want you to be successful, and to grow with you as your business grows.
# Fern Overview
Source: https://docs.fernhq.com/getting-started/introduction
Fern is a seamless currency conversion and payments API that enables developers to integrate onramps, offramps, FX, crypto exchange, and other useful features into their applications.
Fern works with licensed liquidity providers and financial institutions to offer global currency support in one standardized API.
## Fern API core features
* **Multiplex API** — Any-to-any currency conversion across all supported crypto and fiat currencies
* **Wallets API** — Provision wallets for your users for onramping, offramping, and managing deposits
* **Multi-currency virtual accounts API** — Named virtual accounts for business and individual customers, enabling fiat acceptance in 15+ currencies
* **Fern compliance program** — Easily onboard businesses and individuals globally with Fern's KYC/B forms branded with your company name and logo. Fern's internal compliance team will directly manage and review customer applications.
* **Developer experience** — High-touch customer support, scalable API design, and a focus on reliability and responsiveness
## Getting started
The Fern API is currently in **private beta**. Once you've decided to build with Fern, onboarding is straightforward:
Create an account at [dashboard.fernhq.com](https://dashboard.fernhq.com/). Tell us a bit about your use case, and select a billing plan.
If you're a Builder tier subscriber, pre-fund your billing wallet with USDC to access certain API functionality such as KYC or wallet creation. For subscribers on all other tiers, you can pre-fund billing wallets if desired; otherwise, we invoice you monthly.
You can create API keys for sandbox (coming soon), pre-production, and production environments.
Get started integrating the Fern API!
# Automate Fund Transfers With Automation Rules
Source: https://docs.fernhq.com/guides/automate-fund-transfers-with-automation-rules
## Overview
Automation Rules enable you to automate fund movements without manual intervention. Instead of initiating each transaction manually, you can define rules that automatically convert and transfer funds based on triggers you configure.
Automation Rules are particularly useful for:
1. **Scheduled transfers**: Set up recurring transactions (daily, weekly, monthly) to automatically move funds on a schedule. Perfect for regular cash-outs or treasury management.
2. **Threshold-based sweeps**: Automatically trigger transactions when an account balance reaches a specified amount. Ideal for maintaining optimal wallet balances or automated offramping.
## Prerequisites
Before creating automation rules, you must have:
1. **Created a customer**: Use the [Customers API](/api-reference/customers/create-customer) to create either an individual or business customer. The customer does not need to be `ACTIVE` (verified) to set up automation rules.
2. **Created payment accounts**: Set up both source and destination payment accounts via the [Payment Accounts API](/api-reference/payment-accounts/create-payment-account). You'll need:
* A **source payment account** (where funds come from) - this must be a Fern crypto wallet
* A **destination payment account** (where funds go to) - this can be an external bank account, Fern crypto wallet, or external crypto wallet
3. **Payment account IDs**: Have the `paymentAccountId` values ready for both your source and destination accounts. You'll need these when creating the automation rule.
For guidance on creating payment accounts, see:
* [Create Fern wallets](/guides/create-fern-wallets) for crypto wallets
## Create an automation rule
Create an automation rule using the [Automation Rules API](/api-reference/automation-rules/create-automation-rule). You'll need to specify:
* `name`: A descriptive name for your rule
* `customerId`: The customer who owns this automation rule
* `transactionTemplate`: Configuration for the transactions this rule will create
* `trigger`: Conditions that will execute this rule
**Sample request for a threshold-based rule:**
```json theme={null}
{
"name": "Auto sweep USDC to USD when balance reaches $5000",
"customerId": "4d0b92ee-b48f-471f-8825-61761c0c6eb7",
"transactionTemplate": {
"source": {
"sourcePaymentAccountId": "238e98ce-2305-57e0-83f1-c3286e7db76c",
"sourcePaymentMethod": "ETHEREUM",
"sourceCurrency": "USDC"
},
"destination": {
"destinationPaymentAccountId": "8f3a21bc-7609-48d2-9c42-1e5d8a9f2c7e",
"destinationPaymentMethod": "ACH",
"destinationCurrency": "USD"
},
"amount": {
"type": "FLAT",
"value": "5000"
},
"developerFee": {
"developerFeeType": "USD",
"developerFeeAmount": "5.00"
}
},
"trigger": {
"type": "THRESHOLD_BASED",
"thresholdAmount": "5000"
}
}
```
**Sample request for a time-based rule:**
```json theme={null}
{
"name": "Weekly USDC to EUR conversion",
"customerId": "4d0b92ee-b48f-471f-8825-61761c0c6eb7",
"transactionTemplate": {
"source": {
"sourcePaymentAccountId": "238e98ce-2305-57e0-83f1-c3286e7db76c",
"sourcePaymentMethod": "ETHEREUM",
"sourceCurrency": "USDC"
},
"destination": {
"destinationPaymentAccountId": "8f3a21bc-7609-48d2-9c42-1e5d8a9f2c7e",
"destinationPaymentMethod": "SEPA",
"destinationCurrency": "EUR"
},
"amount": {
"type": "PCT",
"value": "100"
}
},
"trigger": {
"type": "TIME_BASED",
"cronSchedule": "0 0 * * 1"
}
}
```
**Sample response:**
```json theme={null}
{
"id": "rule_abc123",
"name": "Auto sweep USDC to USD when balance reaches $5000",
"customerId": "4d0b92ee-b48f-471f-8825-61761c0c6eb7",
"transactionTemplate": {
"source": {
"sourcePaymentAccountId": "238e98ce-2305-57e0-83f1-c3286e7db76c",
"sourcePaymentMethod": "ETHEREUM",
"sourceCurrency": {
"label": "USDC",
"chain": "ETHEREUM",
"contractAddress": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"currencyDecimals": 6
}
},
"destination": {
"destinationPaymentAccountId": "8f3a21bc-7609-48d2-9c42-1e5d8a9f2c7e",
"destinationPaymentMethod": "ACH",
"destinationCurrency": {
"label": "USD"
}
},
"amount": {
"type": "FLAT",
"value": "5000"
}
},
"trigger": {
"type": "THRESHOLD_BASED",
"thresholdAmount": "5000"
},
"createdAt": "2025-10-06T14:23:45.123Z"
}
```
## List automation rules
Retrieve all automation rules for a customer or filter by source payment account.
**Sample request:**
```bash theme={null}
GET /automation-rules?customerId=4d0b92ee-b48f-471f-8825-61761c0c6eb7
```
You can also filter by a specific source payment account:
```bash theme={null}
GET /automation-rules?customerId=4d0b92ee-b48f-471f-8825-61761c0c6eb7&sourcePaymentAccountId=238e98ce-2305-57e0-83f1-c3286e7db76c
```
## Get a specific automation rule
Retrieve details about a specific automation rule by its ID using the [Automation Rules API](/api-reference/automation-rules) `GET` endpoint.
**Sample request:**
```bash theme={null}
GET /automation-rules/rule_abc123
```
## Update an automation rule
Modify an existing automation rule to change its configuration. You must provide the complete rule configuration in the update request.
Only the destination parameters, developer fee and amount fields can be updated.
**Sample request:**
```json theme={null}
{
"id": "rule_abc123",
"name": "Updated - increased threshold to $10,000",
"customerId": "4d0b92ee-b48f-471f-8825-61761c0c6eb7",
"transactionTemplate": {
"source": {
"sourcePaymentAccountId": "238e98ce-2305-57e0-83f1-c3286e7db76c",
"sourcePaymentMethod": "ETHEREUM",
"sourceCurrency": "USDC"
},
"destination": {
"destinationPaymentAccountId": "8f3a21bc-7609-48d2-9c42-1e5d8a9f2c7e",
"destinationPaymentMethod": "ACH",
"destinationCurrency": "USD"
},
"amount": {
"type": "FLAT",
"value": "10000"
}
},
"trigger": {
"type": "THRESHOLD_BASED",
"thresholdAmount": "10000"
}
}
```
## Delete an automation rule
Remove an automation rule when it's no longer needed using the `DELETE` endpoint.
**Sample request:**
```bash theme={null}
DELETE /automation-rules/rule_abc123
```
## Understanding automation rule components
### Transaction template
The transaction template defines what transaction will be executed when the rule triggers. It includes:
* **Source**: The payment account and currency funds will come from
* **Destination**: The payment account and currency funds will go to
* **Amount**: How much to transfer (flat amount or percentage of balance)
* **Developer fee** (optional): Additional fees you want to charge
### Amount types
**FLAT**: Transfer a specific fixed amount
```json theme={null}
{
"type": "FLAT",
"value": "1000"
}
```
**PCT**: Transfer a percentage of the account balance (0-100)
```json theme={null}
{
"type": "PCT",
"value": "50"
}
```
### Trigger types
**THRESHOLD\_BASED**: Executes when the source account balance reaches or exceeds the specified amount
```json theme={null}
{
"type": "THRESHOLD_BASED",
"thresholdAmount": "5000"
}
```
**TIME\_BASED**: Executes on a schedule defined by a cron expression
```json theme={null}
{
"type": "TIME_BASED",
"cronSchedule": "0 0 * * *"
}
```
**Common cron schedule examples**
* `0 0 * * *` - Daily at midnight UTC
* `0 0 * * 1` - Every Monday at midnight UTC
* `0 12 * * *` - Daily at noon UTC
* `0 0 1 * *` - First day of every month at midnight UTC
* `0 9 * * 1-5` - Weekdays at 9 AM UTC
* `*/15 * * * *` - Every 15 minutes
### Developer fees
You can optionally charge additional fees on top of Fern's standard fees. The `developerFee` object should be of the following form using the `SOURCE_CURRENCY` type:
**SOURCE\_CURRENCY**: Charge a fee in the source currency
```json theme={null}
{
"developerFeeType": "SOURCE_CURRENCY",
"developerFeeAmount": "10.00"
}
```
## Best practices
1. **Start with clear naming conventions**: Use descriptive names that indicate the purpose, frequency, or trigger condition of each rule. This makes management easier as you scale.
2. **Consider time zones**: Cron schedules use UTC time. Factor this in when setting up time-based rules to match your business operations.
3. **Plan for currency conversion**: Remember that transactions may involve currency conversion with associated fees. Review the exchange rates and fees using the [Exchange Rates API](/api-reference/exchange-rates) before setting up rules.
# Nigeria
Source: https://docs.fernhq.com/guides/country-specific-requirements/nigeria
## General information
| Field | Value |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| Supported payment rails | NIBSS, NEFT |
| Settlement time | Real-time |
| Supported transaction types | - First-party payin
- First-party payout
- Third-party payin
- Third-party payout
|
| Supported for customer types | Business, Individual |
| 2-digit ISO country code | `NG` |
## Payment account creation
Payment account creation requires:
* `bankName` must match one of the bank names referenced below
* `bankAccountCurrency` : `NGN`
* `bankAccountPaymentMethod` : `NG_NIBSS_NEFT`
* `nubanNumber`
Sample payment account creation request:
```json theme={null}
{
"paymentAccountType": "EXTERNAL_BANK_ACCOUNT",
"customerId": "072a8b7b-38c7-429a-a6cf-35dae7f2fb77",
"externalBankAccount": {
"bankName": "First City Monument Bank PLC",
"bankAccountCurrency": "NGN",
"bankAddress": {
"country": "NG",
"addressLine1": "Primrose Tower",
"addressLine2": "17A Tinubu Street",
"city": "Marina",
"state": "Lagos",
"postalCode": "102273",
"locale": "en-US"
},
"bankAccountType": "CHECKING",
"bankAccountPaymentMethod": "NG_NIBSS_NEFT",
"bankAccountOwner": {
"email": "john@example.com",
"firstName": "John",
"lastName": "Doe",
"address": {
"country": "US",
"addressLine1": "350 5th Avenue",
"addressLine2": "Floor 21",
"city": "New York",
"state": "NY",
"postalCode": "10016",
"locale": "en-US"
},
"type": "INDIVIDUAL"
},
"nubanNumber": "123456789012"
},
"isThirdParty": false
}
```
### Accepted bank names
| Bank name | Account owner type |
| ----------------------------- | ------------------ |
| First City Monument Bank PLC | INDIVIDUAL |
| Afribank Nigeria Plc | INDIVIDUAL |
| Access Bank PLC | INDIVIDUAL |
| CITI Bank | INDIVIDUAL |
| Fidelity Bank PLC | INDIVIDUAL |
| Enterprise Bank Limited | INDIVIDUAL |
| First Bank Of Nigeria PLC | INDIVIDUAL |
| Ecobank Nigeria PLC | INDIVIDUAL |
| GT Bank | INDIVIDUAL |
| Keystone Bank PLC | INDIVIDUAL |
| Heritage Bank PLC | INDIVIDUAL |
| Jaiz Bank | INDIVIDUAL |
| Sterling Bank PLC | INDIVIDUAL |
| Suntrust Bank | INDIVIDUAL |
| United Bank For Africa PLC | INDIVIDUAL |
| Standard Chartered Bank PLC | INDIVIDUAL |
| Polaris Bank PLC | INDIVIDUAL |
| Union Bank Of Nigeria PLC | INDIVIDUAL |
| Providus Bank | INDIVIDUAL |
| Wema Bank PLC | INDIVIDUAL |
| Zenith International Bank PLC | INDIVIDUAL |
| Stanbic IBTC Bank PLC | INDIVIDUAL |
| Unity Bank PLC | INDIVIDUAL |
| CITI Bank | BUSINESS |
| Fidelity Bank PLC | BUSINESS |
| First City Monument Bank PLC | BUSINESS |
| Access Bank PLC | BUSINESS |
| Ecobank Nigeria PLC | BUSINESS |
| Afribank Nigeria Plc | BUSINESS |
| GT Bank | BUSINESS |
| First Bank Of Nigeria PLC | BUSINESS |
| Enterprise Bank Limited | BUSINESS |
| Keystone Bank PLC | BUSINESS |
| Heritage Bank PLC | BUSINESS |
| Jaiz Bank | BUSINESS |
| Providus Bank | BUSINESS |
| Polaris Bank PLC | BUSINESS |
| Stanbic IBTC Bank PLC | BUSINESS |
| Sterling Bank PLC | BUSINESS |
| Unity Bank PLC | BUSINESS |
| Suntrust Bank | BUSINESS |
| Union Bank Of Nigeria PLC | BUSINESS |
| United Bank For Africa PLC | BUSINESS |
| Standard Chartered Bank PLC | BUSINESS |
| Wema Bank PLC | BUSINESS |
| Zenith International Bank PLC | BUSINESS |
# Country Requirements Overview
Source: https://docs.fernhq.com/guides/country-specific-requirements/overview
Country-specific compliance and regulatory requirements
# Country-Specific Requirements
Different countries have unique regulatory requirements for financial services. Fern handles compliance for supported jurisdictions, but it's important to understand specific requirements that may affect your integration.
## Regulatory Compliance
Fern ensures compliance with:
* Anti-Money Laundering (AML) regulations
* Know Your Customer (KYC) requirements
* Local banking regulations
* Cross-border transaction rules
## Supported Countries
Fern supports customers from many countries, with specific requirements varying by jurisdiction. Some countries may have:
* Enhanced due diligence requirements
* Additional documentation needs
* Transaction limits or restrictions
* Specific verification procedures
## Implementation Considerations
When integrating Fern in different markets, consider:
* Local regulatory requirements
* Customer experience expectations
* Document types accepted in each country
* Language and localization needs
# Verify Customer via API
Source: https://docs.fernhq.com/guides/create-and-verify-customers/api-verification
Complete end-to-end guide for integrating individual customer verification (KYC) into your application
## Overview
Know Your Customer (KYC) verification is the process of verifying the identity of individual customers to comply with anti-money laundering (AML) and financial regulations. This comprehensive guide walks you through integrating KYC verification for individual customers into your application, from creating customer profiles to handling document uploads and monitoring verification status.
By the end of this guide, you'll understand how to create customers, collect required data, submit information for verification, monitor verification status, and respond to requests for additional information. The entire process typically takes under 10 minutes from initial submission to approval. If manual intervention occurs, then the overall process can take between 1-3 business days.
This integration enables you to verify customer identities before they access financial services, ensuring compliance while maintaining a smooth user experience. You'll implement a complete verification flow using API endpoints, webhooks, and document uploads.
**Related customer verification guides:**
* For business verification see [KYB integration guide](/guides/create-and-verify-customers/verify-business-customers-via-api)
* For webhook setup see [Webhook integration](/docs/webhooks/overview)
* For customer status definitions see [Customer statuses](/docs/create-and-verify-customers/customer-statuses)
* For API reference see [Customer API reference](/api-reference/customers)
## Prerequisites
Before you begin, ensure you have:
* API credentials (API key or JWT token) - [Get credentials](/getting-started/developer-dashboard)
* Webhook endpoint configured (recommended) - [Webhook](/docs/webhooks/overview)
* Sandbox environment access for testing
* Development environment capable of making HTTPS requests
* File upload handling (for document images/PDFs)
**Estimated integration time**: 4-6 hours for complete implementation
This guide uses placeholder URLs like `api.fernhq.com`. Replace these with your actual API base URLs when implementing.
## Verification timeline
Understanding the typical timeline helps set proper expectations:
* **Data collection**: Immediate (user fills form in your application)
* **Verification processing**: Under 10 minutes after submission
* **Additional information requests**: May add 2-3 days if documents need clarification
* **Total time**: Under 15 minutes from initial submission to approval
### Customer status flow
```
CREATED → UNDER_REVIEW → ACTIVE
↓
NEEDS_ADDITIONAL_INFORMATION → (update data) → UNDER_REVIEW
```
For complete status definitions, see [Customer statuses](../concepts/customer-statuses.md).
## Step-by-step integration
### Create individual customer
Create a customer profile to begin the verification process. This initial step registers the customer in your system with basic information.
**Sample response:**
```json theme={null}
{
"id": "customer_abc123def456",
"type": "INDIVIDUAL",
"status": "CREATED",
"email": "jane.smith@example.com",
"firstName": "Jane",
"lastName": "Smith",
"verificationLink": "https://forms.fernhq.com/verify-customer/:customerID",,
"createdAt": "2025-11-05T10:00:00Z"
}
```
Customer is created with status `CREATED`. Save the `customer.id` - you'll need it for the next steps.
### Collect required KYC data
Collect the required personal information, address, and documents from your customer. You can build a custom form in your application or direct customers to the `verificationLink` from Step 1.
**Required information:**
* Legal name (first, last, middle)
* Date of birth
* Phone number (international format)
* Complete residential address
* National ID information
* Employment and financial details
* Government-issued ID documents
See [Required data fields](#required-data-fields) section for complete field definitions.
For the best user experience, collect information progressively rather than requiring all fields at once. Start with basic information, then request documents after initial data validation.
### Submit KYC data for verification
Once you've collected all required data, submit it using the PATCH endpoint to initiate verification.
**Endpoint:** `PATCH /customers/:customerId`
For complete request/response schemas, see [Customer API reference](../../../api-reference/customers.md).
#### When you can use PATCH
**PATCH is allowed when:**
* Customer status is `CREATED` - freely update data before verification starts
* Customer status is `NEEDS_ADDITIONAL_INFORMATION` - update requested data to resolve verification issues
**PATCH is blocked when:**
* Customer status is `UNDER_REVIEW` - verification in progress, data is locked
* Customer status is `ACTIVE`, `REJECTED`, or `DEACTIVATED` - contact support for changes
When PATCH is blocked, the API returns a `PATCH_NOT_ALLOWED` error (400 status code).
#### Using PATCH
The PATCH endpoint accepts the same customer data fields documented in [Required data fields](#required-data-fields). You can submit all data at once or update specific fields.
To submit data, make a PATCH request to `/customers/:customerId` with the customer data in the request body. The API reference provides the complete schema.
Customer status will automatically transition to `UNDER_REVIEW` upon successful data submission. You cannot modify data while status is `UNDER_REVIEW` (verification in progress). Always handle `PATCH_NOT_ALLOWED` errors gracefully.
### Monitor verification status
Monitor the customer's verification status using webhooks.
See the complete [Webhook integration guide](../../webhooks/README.md) for setup instructions.
### Handle requests for additional information
When verification status becomes `NEEDS_ADDITIONAL_INFORMATION`, the verification provider needs additional documents or clarifications.
**What to do:**
1. Refer to webhook notifications for more detail on what is required
2. Collect additional data from customer
3. Resubmit updated data using PATCH
Request for Additional Information (RFI) typically occurs when document quality is poor or information doesn't match across sources. Providing clear instructions to customers upfront reduces RFI rates.
### Verification complete
When verification is approved, customer status becomes `ACTIVE` and the customer can access your platform's services.
Once a customer is `ACTIVE`, they remain verified unless circumstances require re-verification. Store the customer ID for all future transactions.
## Required data fields
### Personal information
| Field | Type | Required | Description | Example |
| ----------------- | ------ | -------- | ----------------------------------- | -------------- |
| `legalFirstName` | string | Yes | Legal first name (as appears on ID) | "Jane" |
| `legalLastName` | string | Yes | Legal last name (as appears on ID) | "Smith" |
| `legalMiddleName` | string | No | Legal middle name | "Marie" |
| `phoneNumber` | string | Yes | Phone in E.164 format | "+14155551234" |
| `dateOfBirth` | string | Yes | ISO 8601 date (YYYY-MM-DD) | "1990-05-15" |
| `nationality` | string | Yes | ISO 3166-1 alpha-2 country code | "US" |
### Address
| Field | Type | Required | Description | Example |
| --------------------- | ------ | -------- | ----------------------- | ----------------- |
| `streetLine1` | string | Yes | Street address | "123 Main Street" |
| `streetLine2` | string | No | Apartment, suite, unit | "Apt 4B" |
| `city` | string | Yes | City name | "San Francisco" |
| `stateRegionProvince` | string | Yes | 2-letter state code | "CA" |
| `postalCode` | string | Yes | Zip/postal code | "94102" |
| `countryCode` | string | Yes | ISO 3166-1 alpha-2 code | "US" |
| `locale` | string | No | Language and region | "en-US" |
### National identification
* **POST (create customer):** When providing `kycData` in the POST request, all three fields (`nationalIdType`, `nationalIdNumber`, and `nationalIdIssuingCountry`) are required and must be provided together.
* **PATCH (update customer):** These fields remain optional. However, if you provide any one of these fields, you must provide all three together. If you don't provide any of them, they remain optional.
| Field | Type | Required | Description | Example |
| -------------------------- | ------ | -------- | ---------------------- | ---------------------------- |
| `nationalIdType` | string | Yes | Type of ID | "SSN", "TIN", "NATIONAL\_ID" |
| `nationalIdNumber` | string | Yes | ID number | "123-45-6789" |
| `nationalIdIssuingCountry` | string | Yes | Country that issued ID | "US" |
### Employment and financial
| Field | Type | Required | Description | Valid Values |
| ---------------------------- | ------- | -------- | -------------------------- | ----------------------------------------------------------------- |
| `employmentStatus` | string | Yes | Current employment status | "EMPLOYED", "SELF\_EMPLOYED", "UNEMPLOYED", "RETIRED", "STUDENT" |
| `mostRecentOccupation` | string | Yes | Job title or occupation | "Software Engineer", "Teacher", etc. |
| `sourceOfFunds` | string | Yes | Primary income source | "EMPLOYMENT", "BUSINESS", "INVESTMENTS", "INHERITANCE", "SAVINGS" |
| `accountPurpose` | string | Yes | How account will be used | "PERSONAL\_USE", "BUSINESS\_USE", "INVESTMENT" |
| `expectedMonthlyPaymentsUsd` | string | Yes | Expected monthly volume | "UNDER\_10K", "10K\_TO\_50K", "50K\_TO\_100K", "OVER\_100K" |
| `isIntermediary` | boolean | Yes | Acting on behalf of others | `true` or `false` |
## Document requirements
### Required document types
**Minimum**: 1 government-issued photo ID
Please refer to [Customer API reference](../../../api-reference/customers.md) for more detail.
**Note**: Documents must be an image of the actual document. There is a high-chance of failure with any copy of a document being submitted. The image must be clear with all edges visible.
#### Accepted ID types:
* GOVERNMENT\_ID
* PROOF\_OF\_ADDRESS
#### Sample of Accepted ID subtypes:
* PASSPORT
* NATIONAL\_ID
#### Additional documents (recommended to speed up verification):
* Proof of Address (bank statement)
### Document format
```javascript theme={null}
{
type: 'GOVERNMENT_ID', // Document type (see types above)
subtype: 'PASSPORT', // Document subtype (see types above)
documentIdNumber: 'P12345678', // Document number
countryCode: 'US', // ISO 3166-1 alpha-2 code
issuanceDate: '2030-12-31', // ISO 8601 date
expirationDate: '2030-12-31', // ISO 8601 date
frontIdImage: 'text', // BASE64 encoded image data
backIdImage: 'text' // BASE64 encoded image data
proofOfAddressImage: 'text' // BASE64 encoded image data
description: 'text' // Notes about the document
}
```
### Document image requirements
Poor quality images are the number one cause of verification delays. Ensure all images meet the requirements below.
#### Technical requirements:
* **Format**: JPG, PNG, or PDF
* **Size**: 100 KB - 10 MB per file
* **Resolution**: Minimum 200x200 pixels
* **Color**: Full color advised (no black and white)
#### Quality guidelines:
* Clear and legible - All text must be readable
* Well-lit - No shadows or glare
* Complete - All four corners visible
* Unobstructed - No fingers or objects covering document
* Current - Not expired
* Avoid blurry, dark, cropped, or screenshot images
#### How to generate base64-encoded fields:
You can generate a base64-encoded string from a file using the following command:
```sh theme={null}
echo -n 'data:;base64,'$(base64 -i path/to/your-file | tr -d '\n')
```
* Replace `` with the correct MIME type for your file (e.g., `image/jpeg`, `image/png`, `application/pdf`).
* Replace `path/to/your-file` with your actual file path.
* The output can be used for any field that requires a base64-encoded file.
**⚠️ Make sure that the file type and the MIME type in the prefix match.** For example, if your file is a JPEG image, use `data:image/jpeg;base64,` and a `.jpg` or `.jpeg` file.
## Error handling
### Common errors
#### PATCH not allowed (400)
**Error:**
```json theme={null}
{
"error": "PATCH_NOT_ALLOWED",
"message": "Cannot update KYC data: verification is currently in progress",
"statusCode": 400
}
```
**Cause**: Attempting to update customer data while status is `UNDER_REVIEW`, `ACTIVE`, or `DEACTIVATED`.
**Solution**: Wait for verification to complete. Check customer status before attempting PATCH.
#### Validation errors (400)
**Error:**
```json theme={null}
{
"error": "BAD_REQUEST",
"message": "Validation failed: phoneNumber must be in E.164 format",
"statusCode": 400
}
```
**Cause**: Invalid data format (e.g., phone number not in E.164 format, invalid date format).
**Solution**: Validate data client-side before submission:
#### Authentication errors (401)
**Error:**
```json theme={null}
{
"error": "UNAUTHORIZED",
"message": "Invalid or expired API key",
"statusCode": 401
}
```
**Solution**: Verify your API key is correct and not expired. Implement token refresh logic for JWT tokens.
# Verify Business Customers Via API
Source: https://docs.fernhq.com/guides/create-and-verify-customers/verify-business-customers-via-api
Complete end-to-end guide for integrating business customer verification (KYB) into your application
## Overview
Business customer verification, or Know Your Business (KYB), enables you to verify business entities and their beneficial owners to comply with financial regulations. This verification process is required before businesses can access financial services and includes verification of both the business itself and all individuals who own 25% or more of the company or exercise significant control.
This guide walks you through the complete KYB verification flow: creating business profiles, collecting required business information and documents, handling beneficial owner verification, monitoring verification status, and responding to requests for additional information.
KYB verification is more complex than individual verification due to the need to verify multiple stakeholders, understand ownership structures, and collect extensive business formation documents. The process typically takes 3-10 business days, with additional time if more information is needed for complex corporate structures.
**Related customer verification guides:**
* For individual verification see [Individual customer verification (KYC)](/docs/create-and-verify-customers/api-verification)
* For webhook integration see [Webhook integration guide](/docs/webhooks/overview)
* For customer statuses reference see [Customer statuses documentation](/docs/create-and-verify-customers/customer-statuses)
## Prerequisites
Before you begin, ensure you have:
* API credentials (API key or JWT token) - see [Get your API credentials](/getting-started/developer-dashboard)
* Webhook endpoint configured (recommended) - see [Webhook setup guide](/docs/webhooks/overview)
* Development environment capable of making HTTPS requests
* File upload handling for business and beneficial owner documents
* Multi-step form implementation for complex business data collection
## Step-by-step guide
### Create business customer
Create a business customer profile to begin the verification process.
**Endpoint**: `POST customers`
**Sample response:**
```json theme={null}
{
"id": "customer_biz123abc456",
"type": "BUSINESS",
"status": "CREATED",
"email": "contact@acmecorp.com",
"businessName": "Acme Corporation",
"verificationLink": "https://forms.fernhq.com/verify-customer/:customerID",
"createdAt": "2025-11-05T10:00:00Z"
}
```
Business customer is created with status `CREATED`. Save the `customer.id` - you'll need it for all subsequent steps.
### Collect required business data
Collect comprehensive business information including company details, ownership structure, and beneficial owners.
**Required information categories:**
* Business profile (legal name, DBA, type, address, contact)
* Tax and registration (tax ID, incorporation date, jurisdiction)
* Business documents (formation documents, licenses, certificates)
* Beneficial owners (individuals with 25%+ ownership or control)
* Financial information (revenue, business purpose)
You must collect beneficial owner information for all individuals who own 25% or more of the business OR exercise significant control over the business. Missing or incomplete beneficial owner data is the most common cause of requests for additional information.
See the [Required data fields](#required-data-fields) section for complete field definitions and the [Beneficial owner requirements](#beneficial-owner-requirements) section for detailed beneficial owner information.
### Submit business data for verification
Once you've collected all required data, submit it using the PATCH endpoint to initiate verification.
**Endpoint:** `PATCH /customers/:customerId`
For complete request/response schemas, see [Customer API reference](/api-reference/customers/update-customer-kyc-data).
#### When you can use PATCH
**PATCH is allowed when:**
* Business status is `CREATED` - freely update data before verification starts
* Business status is `NEEDS_ADDITIONAL_INFORMATION` - update requested data to resolve verification issues
**PATCH is blocked when:**
* Business status is `UNDER_REVIEW` - verification in progress, data is locked
* Business status is `ACTIVE`, `REJECTED`, or `DEACTIVATED` - contact support for changes
When PATCH is blocked, the API returns a `PATCH_NOT_ALLOWED` error (400 status code).
#### Using PATCH for business customers
The PATCH endpoint accepts business data including:
* Business information (name, type, tax ID, incorporation details)
* Business address and contact information
* Beneficial owners (all individuals with 25%+ ownership or control)
* Business documents
See [Required data fields](#required-data-fields) for complete field definitions. The API reference provides the complete schema including beneficial owner structure.
**Important notes:**
* Business status automatically transitions to `UNDER_REVIEW` upon successful data submission
* You cannot modify data while status is `UNDER_REVIEW` (verification in progress)
* Missing or incomplete beneficial owner data is the most common cause of requests for additional information
* Always include all beneficial owners in a single submission
* Always handle `PATCH_NOT_ALLOWED` errors gracefully
### Monitor verification status
Monitor the business verification status using webhooks.
### Handle requests for additional information
Business verification frequently requires additional information, especially for complex corporate structures or missing beneficial owner documents.
**Common triggers for requests for additional information:**
* Missing beneficial owner data (most common)
* Unclear ownership structure (percentages don't add to 100%)
* Expired business documents
* Poor quality document images
* Conflicting information (address mismatch, name variations)
### Verification complete
When business verification is approved, status becomes `ACTIVE` and the business can access your platform's services.
## Beneficial owner requirements
### Who is a beneficial owner?
A beneficial owner is any individual who:
* Owns 25% or more of the business equity, OR
* Exercises significant control over the business (C-level executives, board members)
You must identify and verify all beneficial owners. Missing or incomplete beneficial owner data significantly delays verification and triggers requests for additional information.
### Ownership percentage validation
Ownership percentages should generally add up to 100% (or close to it). Significant discrepancies trigger requests for additional information.
## Document requirements
### Business documents
**Required documents:**
* Certificate of Incorporation or equivalent formation document
* Business License or registration certificate (if applicable)
* Proof of Business Address (bank statement)
**Optional documents** (may speed up verification):
* Articles of Organization
* Operating Agreement or Bylaws
* Tax Registration Certificate
* Professional Licenses (for regulated industries)
* Bank Account Verification Letter
### Business document format
```javascript theme={null}
{
type: 'ARTICLES_OF_INCORPORATION',
description: 'text', // Text
documentImage: 'text', // BASE64 encoded image data
}
```
### Document image requirements
Same requirements as individual verification documents (see KYC Integration Guide), with additional considerations:
* **Multi-page documents**: Upload as single PDF or multiple images
* **Scanned documents**: Ensure scans are clear and complete
* **Certified copies**: Original or certified copies preferred
* **Language**: Documents in non-English languages may require certified translation
#### How to generate base64-encoded fields:
You can generate a base64-encoded string from a file using the following command:
```sh theme={null}
echo -n 'data:;base64,'$(base64 -i path/to/your-file | tr -d '\n')
```
* Replace `` with the correct MIME type for your file (e.g., `image/jpeg`, `image/png`, `application/pdf`).
* Replace `path/to/your-file` with your actual file path.
* The output can be used for any field that requires a base64-encoded file.
**⚠️ Make sure that the file type and the MIME type in the prefix match.** For example, if your file is a JPEG image, use `data:image/jpeg;base64,` and a `.jpg` or `.jpeg` file.
## Error handling
### Common business verification errors
#### Missing beneficial owner data
**Error:**
```json theme={null}
{
"error": "BAD_REQUEST",
"message": "Validation failed: At least one beneficial owner must be provided",
"statusCode": 400
}
```
**Solution**: Ensure `beneficialOwners` array has at least one complete entry.
#### Invalid ownership percentages
**Error:**
```json theme={null}
{
"error": "BAD_REQUEST",
"message": "Validation failed: Ownership percentages should total up to a maximum of 100%",
"statusCode": 400
}
```
**Solution**: Review ownership structure. Percentages should be realistic and add up to no more than 100%.
# Verify Business Customers Via Hosted Form
Source: https://docs.fernhq.com/guides/create-and-verify-customers/verify-business-customers-via-hosted-form
## Overview
Fern has hosted forms that simplify the KYC/KYB data collection for your Customers. We often see our partners use Fern hosted forms during initial implementation to get out an MVP of the experience, and then transitioning to building their own verification forms over time. This guide shows you how to use the Fern hosted forms to verify your customers.
**Related verification guides:**
* For using Fern's hosted KYB forms see [Verify Business customers via hosted form](/guides/create-and-verify-customers/verify-business-customers-via-hosted-form)
* For API-based individual (KYC) verification see [Verify Individual customers via API](/guides/create-and-verify-customers/api-verification)
* For list of KYB requirements see [Requirements for businesses](/docs/create-and-verify-customers/requirements-for-businesses)
## Step-by-step guide
Create a business customer via the [Customers API](../../api-reference/customers). If the customer creation call succeeds, the response will include a hosted verification link that you can share with your customer directly. Customer status will be `CREATED`.
**Sample business customer POST request :**
```json theme={null}
{
"customerType": "BUSINESS",
"email": "contact@builder.com",
"businessName": "Bob's Building Business"
}
```
**Sample response:**
```json theme={null}
{
"customerId": "8250d155-8785-4697-b6db-1d3800d0da5f",
"customerStatus": "CREATED",
"email": "contact@builder.com",
"customerType": "BUSINESS",
"name": "Bobs Building Business",
"verificationLink": "https://forms.fernhq.com/verify-customer/8250d155-8785-4697-b6db-1d3800d0da5f",
"updatedAt": "2025-10-27T16:44:49.873Z",
"organizationId": "73fc5722-ae38-4530-a45f-db2df8f69810"
}
```
You can share the hosted KYB form link (`verificationLink`) directly with your business contact for completion, or your team can complete the form on your customer's behalf.
The hosted KYB form will collect:
* Legal business name and DBA
* Business type and industry (NAICS code)
* Business description and website
* Formation date and registration number
* Registered and operating addresses
* Source of funds and account purpose
* Expected transaction volume and annual revenue
* Risk assessment information
**Beneficial Owners and Controllers:**
* Information for all individuals who own 25% or more of the business
* Information for at least one control person (CEO, CFO, Managing Member, etc.)
* Each person's complete KYC information
**Business Documents:**
* Formation documents
* Ownership documents
* Business proof of address (bank statement dated within 90 days)
Once the customer completes the form, their status will change from `CREATED` to `UNDER_REVIEW`.
**What business customers need to prepare:**
* Business formation documents
* Business registration number (EIN for US businesses)
* Ownership structure documentation
* Business bank statement or proof of address
* Government-issued photo IDs for all beneficial owners and controllers
* Proof of address for all beneficial owners and controllers
* Business description and financial information
**Typical completion time:** 10-15 minutes
Once the primary contact submits the initial business form, **Fern will automatically send separate verification links** to the email addresses provided for each beneficial owner and controller.
Each individual must open their unique link and complete their own corresponding KYC form.
**What each beneficial owner/controller needs to prepare:**
* Government-issued photo ID (passport, driver's license, or national ID)
* Proof of address document (bank statement, utility bill, etc., dated within 90 days)
* Personal information (phone, date of birth, address)
* National identification number (SSN, TIN, or equivalent)
The business customer's status will change from `CREATED` to `UNDER_REVIEW` only after *all* associated persons (the primary contact, all beneficial owners, and the control person) have successfully submitted their required forms.
**Typical completion time for all forms:** 10-15 minutes (per person).
You can use the [Customers API](../../api-reference/customers) `GET` endpoint to check for updates to the customer status. Status updates will also be communicated via webhooks.
**Sample response:**
```json theme={null}
{
"customerId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"customerStatus": "ACTIVE",
"email": "contact@acmecorp.com",
"customerType": "BUSINESS",
"name": "Acme Corporation",
"businessName": "Acme Corporation",
"verificationLink": "https://forms.fernhq.com/verify-customer/f47ac10b-58cc-4372-a567-0e02b2c3d479",
"updatedAt": "2025-04-29T16:43:09.261Z",
"organizationId": "73fc5722-ae38-4530-a45f-db2df8f69810"
}
```
If any additional information is needed to verify your business customer, the Fern compliance team will contact them directly to minimize compliance overhead for your team. Once the business is fully approved, their status will change to `ACTIVE`.
For a full list of customer statuses, refer to [Customer Statuses](/docs/create-and-verify-customers/additional-details#customer-statuses).
# Verify Customers Via Hosted Form
Source: https://docs.fernhq.com/guides/create-and-verify-customers/verify-customers-via-hosted-form
## Overview
Fern has hosted forms that simplify the KYC data collection for your Customers. We often see our partners use Fern hosted forms during initial implementation to get out an MVP of the experience, and then transitioning to building their own KYC forms over time. This guide shows you how to use the Fern hosted forms to verify your customers.
**Related verification guides:**
* For API-based individual (KYC) verification see [Verify Individual customers via API](/guides/create-and-verify-customers/api-verification)
* For using Fern's hosted KYB forms see [Verify Business customers via hosted form](/guides/create-and-verify-customers/verify-business-customers-via-hosted-form)
* For list of KYC requirements see [Requirements for individuals](/docs/create-and-verify-customers/requirements-for-individuals)
## Step-by-step guide
#### Create an individual customer
Create an individual customer via the [Customers API](../../api-reference/customers/create-customer). If the customer creation call succeeds, the response will include a hosted verification link that you can share with your customer directly. Customer status will be `CREATED`.
**Sample individual customer POST request :**
```json theme={null}
{
"customerType": "INDIVIDUAL",
"email": "bob@builder.com",
"firstName": "Bob",
"lastName": "The Builder"
}
```
**Sample response:**
```json theme={null}
{
"customerId": "5be4866c-4d85-4861-903d-a6295dfdf1e1",
"customerStatus": "CREATED",
"email": "bob@builder.com",
"customerType": "INDIVIDUAL",
"name": "Bob The Builder",
"verificationLink": "https://forms.fernhq.com/verify-customer/5be4866c-4d85-4861-903d-a6295dfdf1e1",
"updatedAt": "2025-04-29T13:31:25.954Z",
"organizationId": "73fc5722-ae38-4530-a45f-db2df8f69810"
}
```
#### Customer completes verification via verification link
You can share the hosted KYC form link (`verificationLink`) directly with your end user for completion, or your team can complete the form on your customer's behalf.
The hosted KYC form will collect:
* Personal information (legal name, phone, date of birth, address)
* National ID information (SSN/TIN or equivalent)
* Government-issued photo ID (upload)
* Employment and occupation details
* Source of funds and account purpose
* Expected transaction volume
* Proof of address (required for SEPA access)
Once the customer completes the form, their status will change from `CREATED` to `UNDER_REVIEW`.
**What customers need to prepare:**
* Government-issued photo ID (passport, driver's license, or national ID)
* Proof of address document (bank statement, utility bill, or government correspondence dated within 90 days)
* Employment and financial information
* National identification number (SSN, TIN, or equivalent)
**Typical completion time:** Less than 5 minutes
#### Get customer status
You can use the [Customers API](../../api-reference/customers) `GET` endpoint to check for updates to the customer status. Status updates will also be communicated via webhooks.
**Sample response:**
```json theme={null}
{
"customerId": "5be4866c-4d85-4861-903d-a6295dfdf1e1",
"customerStatus": "ACTIVE",
"email": "bob@builder.com",
"customerType": "INDIVIDUAL",
"name": "Bob The Builder",
"verificationLink": "https://forms.fernhq.com/verify-customer/5be4866c-4d85-4861-903d-a6295dfdf1e1",
"updatedAt": "2025-04-29T16:43:09.261Z",
"organizationId": "73fc5722-ae38-4530-a45f-db2df8f69810"
}
```
If any additional information is needed to verify your customer, the Fern compliance team will contact them directly to minimize compliance overhead for your team. Once the customer is fully approved, their status will change to `ACTIVE`.
For a full list of customer statuses, refer to [Customer Statuses](/docs/create-and-verify-customers/additional-details#customer-statuses).
# Crypto-to-Crypto Movement
Source: https://docs.fernhq.com/guides/crypto-crypto
Learn how to execute cryptocurrency transactions across different chains
**Prerequisites**: Before implementing crypto transactions, ensure you have:
* A verified Fern developer account with API key configured
* An existing customer account with appropriate KYC verification
* Crypto payment accounts (wallets) for source and destination
## Overview
The Fern API enables seamless cryptocurrency transactions between different (supported) tokens and across multiple blockchain networks. This guide walks you through the conceptual flow of executing a crypto-to-crypto transaction.
## Transaction Types
Fern supports three types of crypto-to-crypto transactions, each serving different use cases:
**1. Crypto Transfer**: Transfer the same token between different accounts on the same blockchain (e.g., USDC → USDC on Ethereum)
**2. Crypto Bridge**: Move the same token from one blockchain to another (e.g., USDC from Ethereum → USDC on Solana)
**3. Crypto Swap**: Exchange one token for another on the same blockchain (e.g., PAXG → USDC on Solana)
The API flow remains consistent across all crypto-crypto transaction types - only the request parameters change.
For more details on chains/crypto-currencies, check the [Coverage : Cryptocurrency & Chain Support](/coverage/cryptocurrency-support)
## Transaction Flow
Ensure customer exists with required crypto payment accounts
Lock in the exchange rate for 5 minutes
Create transaction using the quote ID
Track transaction until completion
## Implementation Guide
### Step 1: Prerequisites
Before initiating a transaction, ensure you have:
1. **Customer Account** - Create a verified customer following the [Customer Creation Guide](/guides/create-and-verify-customers/api-verification)
2. **Payment Accounts** - Set up crypto wallets as described in the [Payment Accounts Guide](/guides/create-fern-wallets)
A single Fern crypto wallet (EVM/SVM type) can hold multiple tokens across all [supported chains](/coverage/cryptocurrency-support)
### Step 2: Create Quote
Once the user decides to proceed, create a quote to lock in the exchange rate. Quotes are valid for 5 minutes and guarantee the rate during that window.
**Same-Chain Transfer Example:**
```json theme={null}
{
"customerId": "customer_uuid",
"source": {
"sourcePaymentAccountId": "fern_crypto_wallet_payment_account_id",
"sourcePaymentMethod": "ETHEREUM",
"sourceCurrency": "USDC",
"sourceAmount": "100.00"
},
"destination": {
"destinationPaymentAccountId": "fern_or_external_crypto_wallet_payment_account_id",
"destinationPaymentMethod": "ETHEREUM",
"destinationCurrency": "USDC"
}
}
```
**Source Payment Account Requirements:**
* `sourcePaymentAccountId` is **OPTIONAL** - omitting it will make our system provide a new temp. wallet address to facilitate the transaction
* When provided, it must be a `FERN_CRYPTO_WALLET` type payment account
**Destination Payment Account Requirements:**
* `destinationPaymentAccountId`: Fern or External crypto wallets payment accounts, can be used
Moving USDC from Ethereum to Solana (without `sourcePaymentAccountId`)
```json theme={null}
{
"customerId": "customer_uuid",
"source": {
"sourcePaymentMethod": "ETHEREUM",
"sourceCurrency": "USDC",
"sourceAmount": "100.00"
},
"destination": {
"destinationPaymentAccountId": "fern_or_external_crypto_wallet_payment_account_id",
"destinationPaymentMethod": "SOLANA",
"destinationCurrency": "USDC"
}
}
```
Swapping PAXG to USDC on Solana (using specific FERN\_CRYPTO\_WALLET):
```json theme={null}
{
"customerId": "customer_uuid",
"source": {
"sourcePaymentAccountId": "fern_crypto_wallet_payment_account_id",
"sourcePaymentMethod": "SOLANA",
"sourceCurrency": "PAXG",
"sourceAmount": "0.05"
},
"destination": {
"destinationPaymentAccountId": "fern_or_external_crypto_wallet_payment_account_id",
"destinationPaymentMethod": "SOLANA",
"destinationCurrency": "USDC"
}
}
```
You can optionally charge platform fees by including the `developerFee` field:
```json theme={null}
{
"customerId": "customer_uuid",
"source": {
"sourcePaymentAccountId": "fern_crypto_wallet_payment_account_id",
"sourcePaymentMethod": "ETHEREUM",
"sourceCurrency": "USDC",
"sourceAmount": "100.00"
},
"destination": {
"destinationPaymentAccountId": "fern_or_external_crypto_wallet_payment_account_id",
"destinationPaymentMethod": "ETHEREUM",
"destinationCurrency": "USDC"
},
"developerFee": {
"developerFeeType": "USD",
"developerFeeAmount": "1.00"
}
}
```
The `developerFee` field is completely optional. If you don't want to charge your customers, simply omit this field entirely from your request.
* `id` - Unique quote identifier (use this to create transaction)
* `status` - Quote status (ACTIVE, EXPIRED, EXECUTED)
* `sourceAmount` - Amount to be debited
* `destinationAmount` - Amount user will receive
* `exchangeRate` - Rate locked for this quote
* `fernFee` - Fern's processing fee
* `networkFee` - Blockchain network fees
* `developerFee` - Your platform fee (if configured)
* `expiresAt` - Quote expiration timestamp
For complete api reference, see the [Create Quote API Reference](/api-reference/quotes/create).
### Step 3: Execute Transaction
After user confirmation, create a transaction using the quote ID:
**Request Body:**
```json theme={null}
{
"quoteId": "quote_uuid",
"correlationId": "your_internal_reference_id"
}
```
The `correlationId` is optional but recommended for tracking transactions in your system.
See the [Create Transaction API Reference](/api-reference/transactions/create-transaction) for details.
### Step 4: Monitor Transaction
Track the transaction status to update your user interface accordingly. Transaction statuses include:
* `PENDING` - Transaction created, awaiting processing
* `PROCESSING` - Transaction in progress
* `COMPLETED` - Transaction successful
* `FAILED` - Transaction failed
* `CANCELLED` - Transaction cancelled
Use the [Get Transaction API Reference](/api-reference/transactions/get-transaction) to poll for status updates.
Transactions typically complete within minutes but may take longer during network congestion. Implement appropriate timeout and retry logic.
## Automation
For recurring transactions or dollar-cost averaging strategies, use the [Automation Rules API](/guides/automate-fund-transfers-with-automation-rules) to set up:
* **Time-based transactions**: Execute transactions on a schedule (daily, weekly, monthly)
* **Threshold-based transactions**: Trigger transactions when certain balance conditions are met
## Related Resources
Complete API documentation for all endpoints
Guide for onboarding customers with KYC
Managing crypto wallets and external accounts
Full list of supported tokens and chains
## Support
Use the [Support](/help-and-support) page to contact us.
Please include the below details to make it easier for our team to debug the issue:
* quoteId
* transactionId
* customerId
# Automated Onramps
Source: https://docs.fernhq.com/guides/fern-virtual-accounts/automated-onramps
**For individuals, Fern offers named accounts that can collect and automatically onramp the following fiat currencies**
* USD
* EUR
* MXN
## Step-by-step guide
### Create a payment account for a verified customer
Once your customer has been created and successfully verified, you can use the [Payment Accounts](../../api-reference/payment-accounts) endpoint to create a new payment account of type `FERN_AUTO_FIAT_ACCOUNT` for the customer. \
\
The destination payment account provided at creation must be a crypto wallet belonging to the customer that they wish any funds to settle into.\
\
The response should look like the below and contain the account details necessary to make transfers to the account on the payment rails available.
#### Response
```json theme={null}
{
"paymentAccountId": "03b7030f-6da1-4d76-9352-cdebd82112c8",
"paymentAccountType": "FERN_AUTO_FIAT_ACCOUNT",
"nickname": "USD onramp Account",
"createdAt": "2025-07-09T08:15:29.184Z",
"customerId": "03b7030f-6da1-4d76-9352-cdebd82112c8",
"fernAutoFiatAccount": {
"bankAccountOwnerName": "John Doe",
"bankName": "Chase Bank",
"bankAccountCurrency": "USD",
"bankAccountPaymentMethods": [
"ACH",
"WIRE"
],
"bankAccountNumber": "12346789",
"routingNumber": "12346789",
"iban": "GB29NWBK60161331926819",
"bicSwift": "SMCOGB2LXXX",
"destinationPaymentAccountId": "03b7030f-6da1-4d76-9352-cdebd82112c8",
"destinationCurrency": "USDC"
}
}
```
### Deposit funds
At any time of your choosing send funds to the account via the account details listed using one of the allowed payment methods. This part does not require interaction with the Fern API and can be done directly from the customer bank account.\
\
These funds will automatically settle into the destination payment account and currency chosen at creation.
### Funds arrive
Funds should arrive into the account within the standard processing time of the payment rail used for deposit.\
\
Once the transaction is processing or completed a transaction will be created in the system to track the customer deposit.\
\
Track the progress of a transaction by calling the [**Transactions**](../../api-reference/transactions/get-transaction) endpoint or visiting the [**Developer dashboard**](https://dashboard.fernhq.com/).
For a full list of transaction statuses, refer to [**Transaction Statuses**](../../api-reference/transactions/get-transaction#response-transaction-status).
#### Request
```curl theme={null}
curl --location 'https://api.fernhq.com/transactions' \
--header 'Authorization: Bearer '
```
```javascript theme={null}
const myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer ");
const requestOptions = {
method: "GET",
headers: myHeaders,
redirect: "follow"
};
fetch("https://api.fernhq.com/transactions", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));
```
```python theme={null}
import http.client
conn = http.client.HTTPSConnection("api.fernhq.com")
payload = ''
headers = {
'Authorization': 'Bearer '
}
conn.request("GET", "/transactions", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```
#### Response
```json theme={null}
{
"transactionId": "477f21e2-1b67-5828-a43d-dab19316a711",
"transactionStatus": "COMPLETED",
"source": {
"sourceCurrency": {
"label": "USD"
},
"sourcePaymentMethod": "ACH",
"sourceAmount": "11",
"sourcePaymentAccountId": "550f6386-9ae0-4aa8-87f1-74f628e32836",
},
"destination": {
"destinationPaymentAccountId": "9e67ed18-4b77-41e6-8839-5d00e0b4df22",
"destinationPaymentMethod": "BASE",
"destinationCurrency": {
"label": "USDC"
},
"exchangeRate": "1",
"destinationAmount": "10.478",
},
"fees": {
"feeCurrency": {
"label": "USD"
},
"fernFee": {
"feeAmount": "0",
"feeUSDAmount": "0"
},
"developerFee": {
"feeAmount": "0",
"feeUSDAmount": "0"
}
},
"createdAt": "2025-04-08T20:30:09.129Z"
}
```
# First-Party Offramps
Source: https://docs.fernhq.com/guides/first-party-offramps
## Overview
Fern's first-party offramps enable your customers to convert any ERC-20 token into a fiat currency, delivering funds to their bank account via local payment rails.
## Step-by-step guide
### Create a customer
Use the [Customer API](../api-reference/customers) to create your end customer in the Fern system. You must have `customerId` to proceed with the next steps in the process. Your customer does **not** need to be `ACTIVE` to have associated payment accounts and crypto wallets.
### Create a payment account for your customer
Once you have the customer's `customerId`, you can create a [payment account](../api-reference/payment-accounts) for the customer. For first-party offramps, the destination account is generally an external bank account. You can create an external bank account either by sending the relevant bank account creation details via API or by using a custom-branded hosted bank account form.
**To create a payment account using the bank account form:**
* Create a payment account link using the `POST` endpoint:
* Set `paymentAccountType` to `EXTERNAL_BANK_ACCOUNT`
* Use the correct `customerId`
* Optionally include a `nickname` for the account if desired
* The response will include a URL you can share with your customer to enter their payment account details.
* Once the customer has entered their payment account details, you will receive a webhook that the payment account has been created (which will include the `paymentAccountId`) or list all payment accounts for the customer to find the specific account and `paymentAccountId` . You will need the `paymentAccountId` for the next steps.
**To create a payment account via API:**
* Create a payment account using the `POST` endpoint:
* Set `paymentAccountType` to `EXTERNAL_BANK_ACCOUNT`
* Use the correct `customerId`
* Optionally include a `nickname` for the account if desired
* Include the `externalBankAccount` object with all required fields
* The response will include the `paymentAccountId` that you can use for next steps.
### Generate quote for the offramp
Before initiating an offramp transaction, you must create a [quote](../api-reference/quotes). The quote returns relevant information such as exchange rate, Fern fees assessed on the transaction, and a `quoteId` that you can use when creating a transaction. To create a quote for your customer, your customer needs to be `ACTIVE`. Quotes expire after 5 minutes. The exchange rates in quotes are not guaranteed and exchange will settle at market rates when a transaction is initiated.
**To create a quote for a first-party offramp:**
* Create a quote using the `POST` endpoint:
* Include `customerId`
* For the `source` object, include the `sourceCurrency`, `sourcePaymentMethod`, and `sourceAmount`. You do not need to include the `sourcePaymentAccount` for an offramp. If this is an offramp of USDC, you would enter `sourceCurrency` as `USDC` and `sourcePaymentMethod` as the source chain (e.g. `BASE`).
* For the `destination` object, include the `destinationPaymentAccountId` (which would be the payment account created in step 2), `destinationPaymentMethod` (associated with the payment account in question), and the `destinationCurrency`. The latter two fields can be derived from the payment account itself. If you didn't store this information, you can retrieve the payment account and find the relevant information to include in your quote.
* The quote response will include `quoteId` , estimated exchange rate, the amount expected to receive, and the fees. You'll need `quoteId` for the next step.
### Submit transaction
If the quote looks good to you, you can submit a [transaction](../api-reference/transactions) using the previously generated `quoteId`. Creating a transaction in the Fern API generates a set of transfer instructions. For first-party offramps, these transfer instructions will include a crypto wallet address where you/your customer can transfer funds to initiate the rest of the transaction.
### Monitor transaction status
You can track the progress of a transaction in 3 ways:
1. Call the [Transactions API](../api-reference/transactions#get-transactions-transactionid) endpoint using the `transactionId` to see the most recent status of the transaction
2. Subscribe to [webhooks](/docs/webhooks) for real-time notifications on status changes
3. Refer to the [Developer dashboard](https://dashboard.fernhq.com/) to see your customers and their transactions
For a full list of transaction statuses, refer to [Transaction Statuses](../api-reference/transactions/get-transaction#response-transaction-status).
# First-Party Onramps
Source: https://docs.fernhq.com/guides/first-party-onramps
## Overview
Fern's first-party onramps enable your customers to convert fiat into crypto, delivering funds directly to their wallets. Fern onramps are accessible via API, allowing you to design a seamless and customized user experience.
To implement onramps, use the [**Payment Accounts API**](../api-reference/payment-accounts), [**Quotes API**](../api-reference/quotes), and [**Transactions API**](../api-reference/transactions). Specify a fiat currency as the source and a cryptocurrency as the destination to configure the transaction as an onramp.
## Step-by-step guide
### Create a bank account for a verified customer
Once your customer has been created and successfully verified, you can use the [**Bank Accounts**](../api-reference/payment-accounts) endpoint to create a new bank account for the customer.
Ensure that the beneficiary name matches your customer's name and the account type is accurate. Otherwise, there is a risk the funds will be returned to the sending bank account.
### Generate quote
To fetch a proposed price for a currency conversion, use the [**Quotes**](../api-reference/quotes) endpoint. This endpoint generates a quote for your specified currency route, guaranteeing the price for **5 mins**. Quotes provide transparent details, including the exact receiving amount and any applicable fees.
For more details, check out the [**Quotes**](../api-reference/quotes) section.
#### Request
```curl theme={null}
curl --location 'https://api.fernhq.com/quotes/' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ' \
--data '{
"customerId": "b8643416-7a36-4437-95af-c32ba3b44257",
"source": {
"sourcePaymentAccountId": "550f6386-9ae0-4aa8-87f1-74f628e32836",
"sourceCurrency": "USD",
"sourcePaymentMethod": "ACH",
"sourceAmount": "11"
},
"destination": {
"destinationPaymentAccountId": "9e67ed18-4b77-41e6-8839-5d00e0b4df22",
"destinationPaymentMethod": "BASE",
"destinationCurrency": "USDC"
}
}'
```
```javascript theme={null}
const myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "Bearer ");
const raw = JSON.stringify({
"customerId": "b8643416-7a36-4437-95af-c32ba3b44257",
"source": {
"sourcePaymentAccountId": "550f6386-9ae0-4aa8-87f1-74f628e32836",
"sourceCurrency": "USD",
"sourcePaymentMethod": "ACH",
"sourceAmount": "11"
},
"destination": {
"destinationPaymentAccountId": "9e67ed18-4b77-41e6-8839-5d00e0b4df22",
"destinationPaymentMethod": "BASE",
"destinationCurrency": "USDC"
}
});
const requestOptions = {
method: "POST",
headers: myHeaders,
body: raw,
redirect: "follow"
};
fetch("https://api.fernhq.com/quotes/", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));
```
```python theme={null}
import http.client
import json
conn = http.client.HTTPSConnection("api.fernhq.com")
payload = json.dumps({
"customerId": "b8643416-7a36-4437-95af-c32ba3b44257",
"source": {
"sourcePaymentAccountId": "550f6386-9ae0-4aa8-87f1-74f628e32836",
"sourceCurrency": "USD",
"sourcePaymentMethod": "ACH",
"sourceAmount": "11"
},
"destination": {
"destinationPaymentAccountId": "9e67ed18-4b77-41e6-8839-5d00e0b4df22",
"destinationPaymentMethod": "BASE",
"destinationCurrency": "USDC"
}
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer '
}
conn.request("POST", "/quotes/", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```
#### Response
```json theme={null}
{
"quoteId": "672cec1f-8224-41ca-b77a-46307ae0f213",
"expiresAt": "2025-04-08T20:36:09.129Z",
"estimatedExchangeRate": "1",
"destinationAmount": "10.478",
"minGuaranteedDestinationAmount": "10.478",
"fees": {
"feeCurrency": {
"label": "USD"
},
"fernFee": {
"feeAmount": "0.522",
"feeUSDAmount": "0.522"
},
"developerFee": {
"feeAmount": "0",
"feeUSDAmount": "0"
}
}
}
```
### Submit transaction
To create a transaction, use the **quote ID** to generate an onramp transaction. Once the transaction is created, you'll receive transfer instructions to share with your customer. Once funds are received at the transfer bank account, the destination currency is sent to the specified destination address, completing the transaction within seconds or minutes.
For more details, check out the [**Transactions**](../api-reference/transactions) section.
#### Request
```curl theme={null}
curl --location 'https://api.fernhq.com/transactions/' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ' \
--data '{
"quoteId": "672cec1f-8224-41ca-b77a-46307ae0f213"
}'
```
```javascript theme={null}
const myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "Bearer ");
const raw = JSON.stringify({
"quoteId": "672cec1f-8224-41ca-b77a-46307ae0f213"
});
const requestOptions = {
method: "POST",
headers: myHeaders,
body: raw,
redirect: "follow"
};
fetch("https://api.fernhq.com/transactions/", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));
```
```python theme={null}
import http.client
import json
conn = http.client.HTTPSConnection("api.fernhq.com")
payload = json.dumps({
"quoteId": "672cec1f-8224-41ca-b77a-46307ae0f213"
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer '
}
conn.request("POST", "/transactions/", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```
#### Response
```json theme={null}
{
"transactionId": "477f21e2-1b67-5828-a43d-dab19316a711",
"transactionStatus": "AWAITING_TRANSFER",
"source": {
"sourceCurrency": {
"label": "USD"
},
"sourcePaymentMethod": "ACH",
"sourceAmount": "11",
"sourcePaymentAccountId": "550f6386-9ae0-4aa8-87f1-74f628e32836",
},
"destination": {
"destinationPaymentAccountId": "9e67ed18-4b77-41e6-8839-5d00e0b4df22",
"destinationPaymentMethod": "BASE",
"destinationCurrency": {
"label": "USDC"
},
"exchangeRate": "1",
"destinationAmount": "10.478",
"minGuaranteedDestinationAmount": "10.478"
},
"fees": {
"feeCurrency": {
"label": "USD"
},
"fernFee": {
"feeAmount": "0.522",
"feeUSDAmount": "0.522"
},
"developerFee": {
"feeAmount": "0",
"feeUSDAmount": "0"
}
},
"createdAt": "2025-04-08T20:30:09.129Z",
"correlationId": "",
"transferInstructions": {
"type": "fiat",
"transferPaymentMethod": "ACH",
"transferMessage": "ABCXXXXXXXXXXXX",
"transferBankName": "Test Bank",
"transferBankAddress": "500 Main St., Some City, SC 99999",
"transferBankAccountNumber": "123456123456",
"transferBankBeneficiaryName": "Bank Name",
"transferACHRoutingNumber": "123456789"
}
}
```
### Monitor transaction status
Track the progress of a transaction by calling the [**Transactions**](../api-reference/transactions/get-transaction) endpoint or visiting the [**Developer dashboard**](https://dashboard.fernhq.com/). You can also subscribe to webhooks for real-time notifications on status changes (coming soon).
For a full list of transaction statuses, refer to [**Transaction Statuses**](../api-reference/transactions/get-transaction#response-transaction-status).
#### Request
```curl theme={null}
curl --location 'https://api.fernhq.com/transactions/477f21e2-1b67-5828-a43d-dab19316a711' \
--header 'Authorization: Bearer '
```
```javascript theme={null}
const myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer ");
const requestOptions = {
method: "GET",
headers: myHeaders,
redirect: "follow"
};
fetch("https://api.fernhq.com/transactions/477f21e2-1b67-5828-a43d-dab19316a711", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));
```
```python theme={null}
import http.client
conn = http.client.HTTPSConnection("api.fernhq.com")
payload = ''
headers = {
'Authorization': 'Bearer '
}
conn.request("GET", "/transactions/477f21e2-1b67-5828-a43d-dab19316a711", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```
#### Response
```json theme={null}
{
"transactionId": "477f21e2-1b67-5828-a43d-dab19316a711",
"transactionStatus": "AWAITING_TRANSFER",
"source": {
"sourceCurrency": {
"label": "USD"
},
"sourcePaymentMethod": "ACH",
"sourceAmount": "11",
"sourcePaymentAccountId": "550f6386-9ae0-4aa8-87f1-74f628e32836",
},
"destination": {
"destinationPaymentAccountId": "9e67ed18-4b77-41e6-8839-5d00e0b4df22",
"destinationPaymentMethod": "BASE",
"destinationCurrency": {
"label": "USDC"
},
"exchangeRate": "1",
"destinationAmount": "10.478",
"minGuaranteedDestinationAmount": "10.478"
},
"fees": {
"feeCurrency": {
"label": "USD"
},
"fernFee": {
"feeAmount": "0.522",
"feeUSDAmount": "0.522"
},
"developerFee": {
"feeAmount": "0",
"feeUSDAmount": "0"
}
},
"createdAt": "2025-04-08T20:30:09.129Z",
"correlationId": "",
"transferInstructions": {
"type": "fiat",
"transferPaymentMethod": "ACH",
"transferMessage": "ABCXXXXXXXXXXXX",
"transferBankName": "Test Bank",
"transferBankAddress": "500 Main St., Some City, SC 99999",
"transferBankAccountNumber": "123456123456",
"transferBankBeneficiaryName": "Bank Name",
"transferACHRoutingNumber": "123456789"
}
}
```
# External Bank Account
Source: https://docs.fernhq.com/guides/payment-accounts/create-external-bank-account
Learn how to create external bank accounts for your customers to enable fiat payments
**Prerequisites**: Before creating external bank accounts, ensure you have:
* A verified Fern developer account with API key configured
* An existing customer account with appropriate KYC verification
* Valid bank account details from your customer
## Overview
External bank accounts allow your customers to receive fiat payments directly to their existing bank accounts. This endpoint creates a payment account linked to an external bank account that your customer owns, supporting various payment methods including ACH, Wire transfers, SEPA, and many regional payment rails.
## Account Types
Fern supports external bank accounts for different use cases:
**1. Personal Bank Accounts**: Individual customer accounts (checking, savings)
**2. Business Bank Accounts**: Corporate accounts with business verification
**3. Multi-Currency Support**: Bank accounts in various supported currencies (USD, EUR, GBP, etc.)
The API flow remains consistent across all account types - only the request parameters and validation requirements change.
For more details on supported countries and currencies, check the [Coverage: Countries & Currencies](/coverage/countries-currencies)
## Account Setup Flow
Ensure customer exists with required KYC/KYB verification
Gather bank account information and owner details securely
Submit bank account details via API
Complete additional verification if account status is PENDING
## Implementation Guide
### Step 1: Prerequisites
Before creating an external bank account, ensure you have:
1. **Customer Account** - Create a verified customer following the [Customer Creation Guide](/guides/create-and-verify-customers/api-verification)
2. **Bank Account Details** - Collect all required banking information from your customer
3. **Owner Information** - Gather complete beneficiary details including address
Bank account validation requirements vary by country and currency. Ensure you collect the appropriate banking identifiers for the target region.
### Step 2: Create External Bank Account
Submit the bank account details to create a new payment account. The system will validate the bank information and create either an active account or return a form link for additional verification.
#### Request
```json theme={null}
POST /v1/payment-accounts
// Reference: CreatePaymentAccountRequestSchema
{
"paymentAccountType": "EXTERNAL_BANK_ACCOUNT",
"customerId": "customer_uuid",
"nickname": "Primary Checking Account",
"externalBankAccount": {
"bankName": "Wells Fargo NA",
"bankAccountCurrency": "USD",
"bankAccountType": "CHECKING",
"bankAccountPaymentMethod": "WIRE",
"routingNumber": "111111111",
"accountNumber": "1111111111",
"bankAccountOwner": {
"email": "johndoe@example.com",
"type": "PERSONAL",
"firstName": "John",
"lastName": "Doe",
"address": {
"addressLine1": "111 Hope St",
"city": "New York",
"state": "NY",
"postalCode": "10001",
"country": "US"
}
},
"bankAddress": {
"addressLine1": "420 Montgomery Street",
"city": "San Francisco",
"state": "CA",
"postalCode": "94104",
"country": "US"
}
}
}
```
#### Response
**Active Account:**
```json theme={null}
// Reference: PaymentAccountResponseSchema
{
"paymentAccountId": "11111111-2222-3333-4444-555555555555",
"paymentAccountType": "EXTERNAL_BANK_ACCOUNT",
"nickname": "Wells Fargo Checking",
"createdAt": "2025-10-30T12:00:00Z",
"customerId": "ad995c64-28b7-47a3-a628-e21973597186",
"paymentAccountStatus": "ACTIVE",
"externalBankAccount": {
// Reference: ExternalBankAccountResponseSchema
"bankAccountType": "CHECKING",
"bankAccountOwnerName": "John Doe",
"bankAccountOwnerEmail": "johndoe@example.com",
"bankName": "Wells Fargo NA",
"bankAccountCurrency": { "label": "USD" },
"bankAccountMask": "***1111",
"bankAccountPaymentMethod": "WIRE"
},
"isThirdParty": false
}
```
**Pending with Form Link:**
```json theme={null}
// Reference: CreatePaymentAccountResponseSchema
{
"paymentAccountId": "11111111-2222-3333-4444-555555555555",
"paymentAccountType": "EXTERNAL_BANK_ACCOUNT",
"nickname": "Wells Fargo Checking",
"customerId": "ad995c64-28b7-47a3-a628-e21973597186",
"paymentAccountStatus": "PENDING",
"isThirdParty": false,
"bankAccountFormLink": "https://forms.fernhq.com/payment-account/11111111-80fa-465f-8b95-040a6c6b7470"
}
```
## Step 3: Handle Verification
When the account status is `PENDING`, direct your customer to complete additional verification:
Use the `bankAccountFormLink` to redirect customers to our hosted verification form
Poll the [Get Payment Account API](/api-reference/payment-accounts/get) or use webhooks to monitor status changes
Once verification is complete, the account status will change to `ACTIVE`
## Step 4: Use the Account
After the account is `ACTIVE`, you can:
* [Create transactions](/api-reference/transactions/create) to send funds to the account
* [Check account balance](/api-reference/payment-accounts/get-balance) (for Fern-managed accounts)
* [List all transactions](/api-reference/transactions/list) for the account
## Additional Information
#### Banking Identifiers
Different countries require specific banking identifiers. Include the appropriate fields based on your target region:
```json theme={null}
{
"routingNumber": "111000025",
"accountNumber": "1234567890",
"wireRoutingNumber": "026009593" // Optional, for wire transfers
}
```
```json theme={null}
{
"sortCode": "123456",
"accountNumber": "12345678",
"iban": "GB29NWBK60161331926819" // Optional
}
```
```json theme={null}
{
"iban": "DE89370400440532013000",
"bicSwift": "COBADEFFXXX"
}
```
```json theme={null}
{
"transitNumber": "12345",
"institutionNumber": "111",
"accountNumber": "1234567"
}
```
```json theme={null}
{
"bsbNumber": "123-456",
"accountNumber": "123456789"
}
```
**India:** `ifscCode`\
**Mexico:** `clabeNumber`\
**China:** `cnapsCode`\
**Nigeria:** `nubanNumber`\
**Brazil:** `pixCode`, `taxNumber`\
**Hong Kong:** `clearingCode`
## Webhooks
Set up webhooks to receive real-time notifications about account status changes:
## Related Resources
Complete payment accounts API documentation
Guide for onboarding customers with verification
Create and manage transactions to bank accounts
Full list of supported countries and currencies
## Support
Use the [Support](/help-and-support) page to contact us.
Please include these details to help our team debug issues faster:
* paymentAccountId
* customerId
* Error response (if any)
* Target country/currency
# Fern Crypto Wallets
Source: https://docs.fernhq.com/guides/payment-accounts/create-fern-wallets
Learn how to create fern crypto wallets payment accounts for your customers
## Overview
To create Fern wallets for your customers, customers need to be created via the [Customers API](/api-reference/customers). Your end customer does not need to be `ACTIVE` (approved) in order to have an active Fern wallet. As soon as the customer has been created and you have the customer's ID, you can use this to create a Fern wallet on the relevant chain(s).
## Step-by-step guide
Create a customer using the [Customers API](/api-reference/customers). Specify customer type, name, and email address. A successful request will return a response that includes the `customerId`.
Fern wallets can be created using the [Payment accounts API](/api-reference/payment-accounts). Specify `paymentAccountType` as `FERN_CRYPTO_WALLET` and include the `customerId` in the request. Because you are creating a Fern crypto wallet, you also need to send the `fernCryptoWallet` object with `cryptoWalletType`. Today, Fern only supports EVM wallets for creation, so the correct `cryptoWalletType` will be `EVM`. This will create a Fern crypto wallet that has the same address on all supported EVM chains.
## Request Structure
**Endpoint:** `POST /v1/payment-accounts`
**Required Fields:**
* `paymentAccountType`: Must be `"FERN_CRYPTO_WALLET"`
* `customerId`: UUID of the customer
* `fernCryptoWallet.cryptoWalletType`: Currently only `"EVM"` supported
**Optional Fields:**
* `nickname`: Friendly name for the wallet
* `organizationId`: Defaults to authenticated organization
**Sample request body:**
```json theme={null}
{
"paymentAccountType": "FERN_CRYPTO_WALLET",
"customerId": "4d0b92ee-b48f-471f-8825-61761c0c6eb7",
"fernCryptoWallet": {
"cryptoWalletType": "EVM"
}
}
```
## Response Structure
**Success Response (201 Created):**
**Key Response Fields:**
* `paymentAccountId`: Unique identifier for API operations
* `paymentAccountStatus`: Always `"ACTIVE"` for Fern wallets
* `fernCryptoWallet.address`: Blockchain address (same on all EVM chains)
* `fernCryptoWallet.cryptoWalletType`: Wallet type (`"EVM"`)
* `isThirdParty`: Always `false` (Fern managed)
**Sample response:**
```json theme={null}
{
"paymentAccountType": "FERN_CRYPTO_WALLET",
"paymentAccountId": "238e98ce-2305-57e0-83f1-c3286e7db76c",
"createdAt": "2025-05-07T13:55:06.697Z",
"fernCryptoWallet": {
"cryptoWalletType": "EVM",
"address": "0xb9a71467bc058c744b07285ec12533ac88095270"
},
"isThirdParty": false
}
```
This wallet can now be used as the destination for onramps, or a source for offramps. If you plan to use this wallet to interact with other Fern APIs, keep track of the returned `paymentAccountId` .
# Help & Support
Source: https://docs.fernhq.com/help-and-support
We're dedicated to ensuring a seamless integration experience and ongoing support as you scale your business with Fern. You can reach us through:
* **Discord** (discord.gg/fernhq)
* **Email support** ([support@fernhq.com](mailto:support@fernhq.com))
* **Startup/Enterprise tier subscribers: Dedicated Slack/Telegram channel** with our team for any and all of your questions
Our business hours are 9AM to 6PM Eastern Time, Monday to Friday. While our team prioritizes responses during these hours, we also respond outside of business hours whenever possible. For platform-wide P1 incidents, we’re here 24/7 to ensure swift resolution.
# Exchange Rates
Source: https://docs.fernhq.com/transactions/exchange-rates
Fern works with several providers to facilitate currency exchange. For cryptocurrencies, we surface the best rate from underlying exchanges. For on/offramps, Fern surfaces an FX rate that is usually within a small spread from the Reuters Open Bid rate between USD and the other fiat currency.
## Guaranteed Quotes
Transactions with `guaranteedQuote` set to `true` that involve foreign exchange (FX) will have an additional 5bps spread applied to the exchange rate. This spread allows Fern to guarantee the output amount for the duration of the quote.
# SWIFT Payouts
Source: https://docs.fernhq.com/transactions/swift-payouts
Fern supports SWIFT payouts for B2B payments. During payment account creation, select `SWIFT` as the `bankAccountPaymentMethod`.
SWIFT is supported for businesses only and requires a minimum transaction size equivalent to \$1,000 USD. SWIFT support is also not automatically granted for every approved Customer. If you want to activate SWIFT rails for your Customer, please send the Fern team a message through one of our [Support channels](../help-and-support).