> ## 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:** If Iron identifies missing or insufficient information during its review, you will be notified to collect and resubmit the required data via the API.

To initiate the Outsourcing Agreement process, contact the Iron team at [support@iron.xyz](mailto:support@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. All other fields are siblings of `type` in the same object.

#### 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",
         "company_name": "Acme Corp",
         "registration_number": "HRB 123456",
         "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",
         "email": "[email protected]",
         "phone": "+12125559876",
         "tax_identification_number": "12-3456789",
         "website": "https://www.acmecorp.com",
         "company_type": "LimitedLiabilityCompany",
         "address": {
           "street_1": "123 Commerce St",
           "street_2": "Suite 100",
           "city": "Anytown",
           "state": "CA",
           "zip_code": "12345",
           "country": "US"
         },
         "beneficiaries": [
           {
             "roles": ["UltimateBeneficialOwner", "Director"],
             "share_percentage": "50.00",
             "beneficiary_info": {
               "first_name": "John",
               "last_name": "Smith",
               "date_of_birth": "1990-01-01",
               "email_address": "[email protected]",
               "phone_number": "+12125551234",
               "identity_country_code": "US",
               "nationality_country_code": "US",
               "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"
               }
             }
           }
         ],
         "documents": [
           {
             "type": "IncorporationCert",
             "country": "US",
             "file": "<base64-encoded-document>"
           },
           {
             "type": "ShareholderRegistry",
             "country": "US",
             "file": "<base64-encoded-document>"
           }
         ],
         "questionnaire": {
           "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"
           },
           "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_licenses_or_registrations": false
           }
         }
       }'
  ```
</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",
      "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",
      "phone": "+12175550100",
      "tax_identification_number": "12-3456789",
      "website": "https://janesconsulting.com",
      "company_type": "SoleProprietorship",
      "ip_address": "192.168.1.100",
      "beneficiaries": [
        {
          "roles": ["UltimateBeneficialOwner"],
          "share_percentage": 100,
          "beneficiary_info": {
            "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,
              "selfie": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAFUlEQVR42mNg+M9AGhrVMKph+GoAAJHq/wGVf9hPAAAAAElFTkSuQmCC",
              "selfie_collected_at": "2026-01-05T12:00:00Z",
              "nationality": "US"
            },
            "proof_of_address": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAFUlEQVR42mNgYPhPIhrVMKph2GoAAJLb/wHQPqPSAAAAAElFTkSuQmCC"
          }
        }
      ],
      "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",
      "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",
      "phone": "+442071234567",
      "tax_identification_number": "GB123456789",
      "website": "https://janesconsulting.co.uk",
      "company_type": "SoleProprietorship",
      "ip_address": "192.168.1.100",
      "beneficiaries": [
        {
          "roles": ["UltimateBeneficialOwner"],
          "share_percentage": 100,
          "beneficiary_info": {
            "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,
              "selfie": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAFUlEQVR42mNg+M9AGhrVMKph+GoAAJHq/wGVf9hPAAAAAElFTkSuQmCC",
              "selfie_collected_at": "2026-01-05T12:00:00Z",
              "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>
