> ## Documentation Index
> Fetch the complete documentation index at: https://docs.iron.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Outsourcing

> Provide identification data on your customers directly to Iron's API instead of using our verification providers.

This requires an outsourcing agreement with Iron.

## Outsourcing Agreement

To use the Outsourcing API Endpoint, a signed **KYC/KYB Data Sharing Agreement** must be in place between your organization and Iron. This agreement is a prerequisite for submitting customer identification data directly via the API.

### Why is the agreement required?

Iron operates under strict anti-money laundering (AML) and counter-terrorist financing (CTF) regulations across multiple jurisdictions. The Outsourcing Agreement establishes a formal legal framework that:

* **Defines data collection standards** — Specifies the identity documents, customer information, and verification methods your organization must use when collecting KYC/KYB data on Iron's behalf.
* **Ensures regulatory compliance** — Confirms that both parties maintain the necessary licenses, authorizations, and internal controls required by applicable laws.
* **Sets data quality and security requirements** — Establishes obligations around accuracy, completeness, authenticity, and secure transmission of customer data via the API Endpoint.
* **Governs data protection** — Ensures customer data is handled in compliance with applicable data protection laws, with each party acting as an independent data controller.
* **Enables independent verification** — Clarifies that Iron conducts its own verification and risk assessment on all received data. The agreement does not exempt Iron from its own compliance obligations.

### Key considerations

* **Timing matters:** Only customer data collected after the agreement is executed is fully compliant for Iron's onboarding process. Data collected before the agreement may require supplementary verification. See the [Data Collection Timeline](#data-collection-timeline) below for details.
* **Approved identity verification providers:** Your identity verification provider(s) must be proposed to and approved by Iron before data sharing begins.
* **Data Completion Loop:** KYB submissions missing documents or proofs of address are created as `Pending` with a resume `url` that collects the missing items (see [Incomplete Submissions](/kyb#incomplete-submissions)). If Iron finds gaps later during review, you will be notified to collect and resubmit the data via the API.

To initiate the Outsourcing Agreement process, contact the Iron team at [developers@iron.xyz](mailto:developers@iron.xyz).

## Onboarding Lifecycle

### Optimizing Customer Identification

Leverage existing customer identity data to streamline onboarding. In optimal scenarios, this eliminates the need for redirects or third-party verification flows.

### Regulatory Framework and Data Usage

The outsourcing agreement establishes a framework for sharing customer identification data with Iron for KYC/KYB purposes. However, data collected prior to the agreement falls outside its scope. Regulatory requirements mandate that we independently verify critical identification elements through our authorized KYC providers.

### Data Collection Timeline

Example: Outsourcing agreement executed at 13:00 (UTC) on January 1, 2026:

| Data Type          | Collection Time           | Status                                      |
| ------------------ | ------------------------- | ------------------------------------------- |
| **Post-Agreement** | After 13:00, Jan 1, 2025  | Fully compliant for Iron's approval process |
| **Pre-Agreement**  | Before 13:00, Jan 1, 2025 | Requires supplementary verification         |

## Technical Details

### Onboarding via API

The process mirrors the [standard onboarding flow](/onboarding), with one exception: when creating an Identification, a body must be provided.

The request body uses a `type` discriminator at the top level: set it to `"Person"` for KYC or `"Business"` for KYB. For Person, all other fields are siblings of `type`. For Business, company fields nest under `company_data`, with `phone`, `ip_address`, and `questionnaire` alongside it.

#### KYC

<CodeGroup>
  ```bash theme={null}
  curl --request POST \
       --header 'accept: application/json; charset=utf-8' \
       --header 'Idempotency-Key: <unique-request-id>' \
       --header 'x-api-key: <your-api-key>' \
       --url 'https://api.sandbox.iron.xyz/api/customers/<customer_id>/identifications/v2' \
       --data-raw '{
         "type": "Person",
         "first_name": "John",
         "last_name": "Smith",
         "full_name": "John Smith",
         "date_of_birth": "1990-01-01",
         "email_address": "[email protected]",
         "phone_number": "+12125551234",
         "sharing_consent": true,
         "consent_collected_at": "2025-04-01T15:38:21.775210Z",
         "intended_use": "PurchaseDigitalAssets",
         "address": {
           "street_1": "123 Main St",
           "street_2": "Apt 1",
           "city": "Anytown",
           "state": "CA",
           "zip_code": "12345",
           "country": "US"
         },
         "identity": {
           "identity_country_code": "US",
           "identity_number": "123456789",
           "identity_document_type": "Passport",
           "identity_document_front": "<base64-encoded-image>",
           "identity_document_back": "<base64-encoded-image>",
           "selfie": "<base64-encoded-image>",
           "selfie_collected_at": "2025-04-03T13:11:02.263587Z",
           "ip_address": "203.0.113.42",
           "nationality": "US"
         },
         "kyc_questionnaire": {
           "employment_status": "Employed",
           "yearly_gross_income": "From40001To50000",
           "source_of_wealth": "Salary",
           "expected_monthly_transaction_count": "Between5And10",
           "expected_monthly_transaction_volume": "MoreThan500LessThan2000"
         },
         "tax_identification_number": "123-45-6789",
         "documents": [
           {
             "name": "proof_of_address.pdf",
             "file": "<base64-encoded-document>",
             "type": "ProofOfAddress"
           }
         ]
       }'
  ```
</CodeGroup>

<Warning>
  **US citizens and residents must include `tax_identification_number`.** Provide the customer's Social Security Number (SSN) or Individual Taxpayer Identification Number (ITIN). A US person submitted without it fails with `400` and the message `Tax identification number is required for US residents`.
</Warning>

<Note>
  `tax_identification_number` is a separate top-level field from `identity.identity_number`. Put the number from the ID document (passport or license) in `identity.identity_number`, and the SSN or ITIN in `tax_identification_number`. Set `identity.identity_country_code` to the customer's country (`US` for US persons) so the requirement is applied. Dashes are allowed: `123-45-6789` and `123456789` are equivalent.
</Note>

#### KYB

<CodeGroup>
  ```bash theme={null}
  curl --request POST \
       --header 'accept: application/json; charset=utf-8' \
       --header 'Idempotency-Key: <unique-request-id>' \
       --header 'x-api-key: <your-api-key>' \
       --url 'https://api.sandbox.iron.xyz/api/customers/<customer_id>/identifications/v2' \
       --data-raw '{
         "type": "Business",
         "phone": "+12125559876",
         "ip_address": "203.0.113.42",
         "company_data": {
           "company_info": {
             "company_name": "Acme Corp",
             "registration_number": "7086953",
             "country": "US",
             "incorporation_date": "2021-01-15",
             "legal_address": "123 Commerce St, Suite 100, Anytown, CA 12345",
             "postal_address": "PO Box 456, Anytown, CA 12345",
             "address": {
               "street_1": "123 Commerce St",
               "street_2": "Suite 100",
               "city": "Anytown",
               "state": "CA",
               "zip_code": "12345",
               "country": "US"
             },
             "email": "info@acmecorp.com",
             "tax_identification_number": "12-3456789",
             "website": "https://www.acmecorp.com",
             "company_type": "LimitedLiabilityCompany"
           },
           "beneficiaries": [
             {
               "roles": ["UltimateBeneficialOwner", "Director"],
               "share_percentage": "50.00",
               "beneficiary_info": {
                 "type": "Person",
                 "first_name": "John",
                 "last_name": "Smith",
                 "date_of_birth": "1990-01-01",
                 "email_address": "john@acmecorp.com",
                 "phone_number": "+12125551234",
                 "tax_identification_number": "123-45-6789",
                 "tax_jurisdiction_country_code": "US",
                 "birth_place": {
                   "place": "Anytown",
                   "state": "CA",
                   "country": "US"
                 },
                 "address": {
                   "street_1": "456 Elm St",
                   "city": "Anytown",
                   "state": "CA",
                   "zip_code": "12345",
                   "country": "US"
                 },
                 "identity": {
                   "identity_country_code": "US",
                   "identity_document_type": "DriverLicense",
                   "identity_document_front": "<base64-encoded-image>",
                   "identity_document_back": "<base64-encoded-image>",
                   "selfie": "<base64-encoded-image>",
                   "selfie_collected_at": "2026-07-01T12:00:00Z",
                   "nationality": "US"
                 }
               }
             }
           ],
           "documents": [
             {
               "type": "IncorporationCert",
               "country": "US",
               "file": "<base64-encoded-document>"
             },
             {
               "type": "IncorporationArticles",
               "country": "US",
               "file": "<base64-encoded-document>"
             }
           ]
         },
         "questionnaire": {
           "type": "Generic",
           "planned_activities": {
             "purpose_and_intended_use": "ReceivingBusinessIncome",
             "estimated_monthly_volume": "FiftyToOneHundredThousand",
             "estimated_monthly_transactions": "TenToTwentyFive",
             "sends_funds_on_customer_behalf": false
           },
           "source_of_funds": {
             "source_of_funds": "BusinessRevenue",
             "source_of_funds_description": "Revenue from enterprise analytics subscriptions",
             "customer_funds_handling_details": "Receives payments into its own account only; does not hold or transmit customer funds"
           },
           "business_details": {
             "industry_type": "InformationTechnologyAndSoftware",
             "business_model_description": "SaaS platform providing analytics tools to enterprise clients",
             "main_business_countries": ["US", "GB"],
             "has_licenses_or_registrations": true,
             "requires_aml_program": false,
             "estimated_annual_revenue": "From1MTo10M"
           }
         }
       }'
  ```
</CodeGroup>

##### Sole proprietor variants

For sole proprietorships, set `company_type` to `"SoleProprietorship"` and `questionnaire.type` to `"SoleProp"`. The proprietor is submitted as a single beneficiary with the `UltimateBeneficialOwner` role at 100% share. See [Sole Proprietor Onboarding](/kyb#sole-proprietor-onboarding) for the full data breakdown.

<AccordionGroup>
  <Accordion title="US sole proprietor">
    ```json theme={null}
    {
      "type": "Business",
      "phone": "+12175550100",
      "ip_address": "203.0.113.42",
      "company_data": {
        "company_info": {
          "company_name": "Jane's Consulting",
          "alternative_names": null,
          "registration_number": "DBA-12345678",
          "country": "US",
          "incorporation_date": "2020-01-15",
          "legal_address": "123 Main St, Springfield, IL 62701",
          "postal_address": "123 Main St, Springfield, IL 62701",
          "address": {
            "street_1": "123 Main St",
            "street_2": null,
            "city": "Springfield",
            "state": "IL",
            "zip_code": "62701",
            "country": "US"
          },
          "email": "jane@janesconsulting.com",
          "tax_identification_number": "12-3456789",
          "website": "https://janesconsulting.com",
          "company_type": "SoleProprietorship"
        },
        "beneficiaries": [
          {
            "roles": ["UltimateBeneficialOwner"],
            "share_percentage": 100,
            "beneficiary_info": {
              "type": "Person",
              "first_name": "Jane",
              "middle_name": null,
              "last_name": "Doe",
              "date_of_birth": "1985-06-15",
              "tax_identification_number": "123-45-6789",
              "address": {
                "street_1": "123 Main St",
                "street_2": null,
                "city": "Springfield",
                "state": "IL",
                "zip_code": "62701",
                "country": "US"
              },
              "email_address": "jane@janesconsulting.com",
              "phone_number": "+12175550100",
              "tax_jurisdiction_country_code": "US",
              "birth_place": { "place": "Chicago", "state": "IL", "country": "US" },
              "identity": {
                "identity_country_code": "US",
                "identity_number": null,
                "identity_document_type": "Passport",
                "identity_document_front": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAFklEQVR42mP4z8BAEmIY1TCqYfhqAACQ+f8B8u7oVwAAAABJRU5ErkJggg==",
                "identity_document_back": null,
                "nationality": "US"
              }
            }
          }
        ],
        "documents": [
          {
            "type": "IncorporationCert",
            "country": "US",
            "file": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAFklEQVR42mP4f+A0SYhhVMOohuGrAQDBXYofzKX3pgAAAABJRU5ErkJggg=="
          }
        ]
      },
      "questionnaire": {
        "type": "SoleProp",
        "planned_activities": {
          "purpose_and_intended_use": "ReceivingBusinessIncome",
          "estimated_monthly_volume": "TenToTwentyFiveThousand",
          "estimated_monthly_transactions": "LessThanTen"
        },
        "source_of_funds": { "source_of_funds": "BusinessRevenue" },
        "business_details": {
          "industry_type": "LegalAndProfessionalServices",
          "business_model_description": "Independent consulting services for small businesses",
          "main_business_countries": ["US"],
          "estimated_annual_revenue": "Under100K"
        }
      }
    }
    ```
  </Accordion>

  <Accordion title="Non-US sole proprietor (UK)">
    ```json theme={null}
    {
      "type": "Business",
      "phone": "+442071234567",
      "ip_address": "203.0.113.42",
      "company_data": {
        "company_info": {
          "company_name": "Jane's Consulting Ltd",
          "alternative_names": null,
          "registration_number": "SC123456",
          "country": "GB",
          "incorporation_date": "2020-01-15",
          "legal_address": "10 Downing Street, London, SW1A 2AA",
          "postal_address": "10 Downing Street, London, SW1A 2AA",
          "address": {
            "street_1": "10 Downing Street",
            "street_2": null,
            "city": "London",
            "state": "London",
            "zip_code": "SW1A 2AA",
            "country": "GB"
          },
          "email": "jane@janesconsulting.co.uk",
          "tax_identification_number": "GB123456789",
          "website": "https://janesconsulting.co.uk",
          "company_type": "SoleProprietorship"
        },
        "beneficiaries": [
          {
            "roles": ["UltimateBeneficialOwner"],
            "share_percentage": 100,
            "beneficiary_info": {
              "type": "Person",
              "first_name": "Jane",
              "middle_name": null,
              "last_name": "Doe",
              "date_of_birth": "1985-06-15",
              "tax_identification_number": "GB987654321",
              "address": {
                "street_1": "10 Downing Street",
                "street_2": null,
                "city": "London",
                "state": null,
                "zip_code": "SW1A 2AA",
                "country": "GB"
              },
              "email_address": "jane@janesconsulting.co.uk",
              "phone_number": "+442071234567",
              "tax_jurisdiction_country_code": "GB",
              "birth_place": { "place": "Manchester", "state": "England", "country": "GB" },
              "identity": {
                "identity_country_code": "GB",
                "identity_number": null,
                "identity_document_type": "Passport",
                "identity_document_front": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAFklEQVR42mP4z8BAEmIY1TCqYfhqAACQ+f8B8u7oVwAAAABJRU5ErkJggg==",
                "identity_document_back": null,
                "nationality": "GB"
              },
              "proof_of_address": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAFUlEQVR42mNgYPhPIhrVMKph2GoAAJLb/wHQPqPSAAAAAElFTkSuQmCC"
            }
          }
        ],
        "documents": [
          {
            "type": "IncorporationCert",
            "country": "GB",
            "file": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAFklEQVR42mP4f+A0SYhhVMOohuGrAQDBXYofzKX3pgAAAABJRU5ErkJggg=="
          }
        ]
      },
      "questionnaire": {
        "type": "SoleProp",
        "planned_activities": {
          "purpose_and_intended_use": "ReceivingBusinessIncome",
          "estimated_monthly_volume": "TenToTwentyFiveThousand",
          "estimated_monthly_transactions": "LessThanTen"
        },
        "source_of_funds": { "source_of_funds": "BusinessRevenue" },
        "business_details": {
          "industry_type": "LegalAndProfessionalServices",
          "business_model_description": "Independent consulting services for small businesses",
          "main_business_countries": ["GB"],
          "estimated_annual_revenue": "Under100K"
        }
      }
    }
    ```
  </Accordion>
</AccordionGroup>

See the createCustomerIdentification endpoint for more details on each parameter.

## Triggering EDD

To proactively trigger Enhanced Due Diligence for a customer (e.g. high-volume or high-risk jurisdiction), include the `edd_questionnaire` object in your Person params. This initializes the identification with the full EDD flow, including Source of Funds collection.

<CodeGroup>
  ```json theme={null}
  {
    "type": "Person",
    "first_name": "John",
    "last_name": "Smith",
    "full_name": "John Smith",
    "edd_questionnaire": {
      "occupation": "FinancialServices",
      "approximate_net_worth": "Between100001And300000",
      "source_of_funds_proof": "<base64-encoded-document>"
    }
  }
  ```
</CodeGroup>

| Field                   | Values                                                                                                                                                     |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `occupation`            | `Agriculture`, `ArtsAndEntertainment`, `Construction`, `Education`, `FinancialServices`, `InformationAndTechnology`, `Retail`, `RealEstate`, `Other`       |
| `approximate_net_worth` | `UpTo25000`, `Between25001And50000`, `Between50001And100000`, `Between100001And300000`, `Between300001And500000`, `Between500001And1000000`, `Over1000001` |
| `source_of_funds_proof` | Base64-encoded document (jpg, png, pdf, doc, docx, xls, xlsx, odt, ods, txt). Max 10 MB.                                                                   |

When `edd_questionnaire` is provided, `with_edd` is set to `true` on the identification response. See [Tracking EDD Status](/onboarding#tracking-edd-status) for how to interpret the identification status with EDD.

<Note>
  EDD is only available for individual customers (KYC). Business customers (KYB) are not supported.
</Note>
